Ich lerne immer noch Scilab (5.5.2), also schreibe ich und laufe Testcodes, um mich mit der Software vertraut zu machen.Odd Verhalten von ODE in Scilab: Gleichung dy/dx = A ist nicht richtig gelöst
das numerische Differentialgleichungslöser Um zu testen, begann ich leicht aus der Gleichung dy/dx = A, die y = ax + c (Geradengleichung) als Lösung.
Dies ist der Code, den ich schrieb:
// Function y = A*x+1
function ydot=fn(x, A)
ydot=A
endfunction
A=2;
//Initial conditions
x0=0;
y0=A*x0+1;
//Numerical Solution
x=[0:5];
y= ode(y0,x0,x,fn);
//Analytical solution
y2 = A*x+1;
clf(); plot(x, y); plot(x, y2, '-k');
//End
Und das sind die unerwarteten Ergebnisse:
y = 1. 2,7182824 7,3890581 20,085545 54,598182
148,41327y2 = 1. 3. 5. 7. 9. 11.
Es scheint, dass y = e^x. Kann jemand erklären, was falsch läuft oder was ich falsch gemacht habe?
ich schätze, dass, werde ich den Code testen Sie vorschlagen. –
Und nach einer Weile, wie funktioniert es, wenn A ein Vektor ist? –
Haben Sie es versucht? Es sollte egal sein, welches Objekt Sie in der Parameterliste übergeben. – LutzL