2017-06-21 6 views
3
de mise en équivalence

Je voudrais demander y particulier de ODE y'' - y' - 2y = 4x^2coefficients symboliques

J'ai fait le script suivant:

syms x A0 A1 A2 
ypa = A2*x^2+A1*x+A0; % y_p assume 
cyp = diff(ypa,2) - diff(ypa) - 2*ypa % according to ODE 
P1 = 4*x^2; P2 = cyp ; % Equating P1 and P2 
C = coeffs(P1 - P2,x); 
A0 = solve(C(1),A0) 
A1 = solve(C(2),A1) 
A2 = solve(C(3),A2) 

Je suis la bonne réponse pour A2 = -2. Mais je n'ai pas obtenu pour A0 (devrait être -3) et A1 (devrait être 2). Comment les obtenir automatiquement?

P.S J'utilise MATLAB R2013a.

Répondre

2

Au lieu d'appeler solve 3 fois, une fois sur chaque équation de C, vous devriez l'appeler une fois sur l'ensemble du système d'équations pour que les substitutions appropriées sont faites pour vous donner un résultat numérique pour chaque variable:

>> [A0, A1, A2] = solve(C) 

A0 = 
-3 

A1 = 
2 

A2 = 
-2 
+0

Merci beaucoup gnovice. Cela fonctionne parfaitement. Merci aussi à Sardar Usama qui m'explique comment résoudre ce problème instinctivement. Depuis que j'utilise l'ancienne version de Matlab, ça ne marche pas. – User1961