2017-06-21 5 views
3

Ich mag würde y insbesondere von ODE y'' - y' - 2y = 4x^2Gleichsetzen symbolische Koeffizienten

Ich habe das folgende Skript suchen:

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) 

ich die für A2 = -2 richtige Antwort. Aber ich bekam nicht für A0 (sollte -3 sein) und A1 (sollte 2 sein). Wie bekomme ich sie automatisch?

P.S Ich verwende MATLAB R2013a.

Antwort

2

Statt solve 3 Mal aufzurufen, einmal auf jede Gleichung von C, sollten Sie es einmal auf das gesamte System von Gleichungen nennen, so dass die richtige Substitutionen Sie für jede Variable ein numerisches Ergebnis sind getan zu geben:

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

A0 = 
-3 

A1 = 
2 

A2 = 
-2 
+0

Vielen Dank gnovice. Es funktioniert perfekt. Danke auch an Sardar Usama, der mir erklärt, wie man dieses Problem effektiv löst. Da ich die alte Version von Matlab verwende, funktioniert es nicht. – User1961