K
kriizz
Gast
Guten Abend,
ich bin hier am verzweifeln.
Ich sitze seit ca. 1 Woche am gleichen Problem und habe google auch schon durch. Ich verstehe es einfach nicht.
Ich hoffe hier kann mir einer sagen, was ich falsch mache.
Ich habe eine Differentialgleichung : y'(t) = k*y(t)*(s-y(t)) -g(t)
k ist ein Faktor. S die Schranke ( logistische Diffgl.) g(t) eine Störgröße die hier irrelevant ist.
Diese Diffgl. soll ich mit dem Eulerverfahren lösen.
Ich habe auch verstanden, wie das Eulerverfahren funktioniert. Nur wird meine DGL nicht so gezeichnet wie sie es soll.
Mein Prof hat aus dieser Gleichung f(t,y) = t*y(t) - y²(t) -y(t).
Ich verstehe den Grundsatz aber nicht, wieso ich hier en t einbauen soll, obwohl ich oben nur eine konstante habe.
HIer mein Quellcode von den Methoden die rechnen:
Kann mir bitte jemand meinen Fehler sagen??
Oder mir zumindest einen Ansatz geben, mit dem ich weiter machen kann.
MfG
Chris
ich bin hier am verzweifeln.
Ich sitze seit ca. 1 Woche am gleichen Problem und habe google auch schon durch. Ich verstehe es einfach nicht.
Ich hoffe hier kann mir einer sagen, was ich falsch mache.
Ich habe eine Differentialgleichung : y'(t) = k*y(t)*(s-y(t)) -g(t)
k ist ein Faktor. S die Schranke ( logistische Diffgl.) g(t) eine Störgröße die hier irrelevant ist.
Diese Diffgl. soll ich mit dem Eulerverfahren lösen.
Ich habe auch verstanden, wie das Eulerverfahren funktioniert. Nur wird meine DGL nicht so gezeichnet wie sie es soll.
Mein Prof hat aus dieser Gleichung f(t,y) = t*y(t) - y²(t) -y(t).
Ich verstehe den Grundsatz aber nicht, wieso ich hier en t einbauen soll, obwohl ich oben nur eine konstante habe.
HIer mein Quellcode von den Methoden die rechnen:
Code:
private double function(double x, double y) {
return k*y*(s-y); // a*Math.pow(Math.sin((2*Math.PI*f/n)*x/2),2)*Math.sin(2*Math.PI*f*x);
}
public double[][] calculate() {
double h = 0.1;//(stunden-intervallStart)/n;
xy[0][0] = x0;
xy[0][1] = y0;
for(int i = 0; i <= stunden; i++) {
xy[i+1][0] = xy[i][0] + h;
xy[i+1][1] = xy[i][1]+h*function(xy[i][0],xy[i][1]);
}
return xy;
}
Kann mir bitte jemand meinen Fehler sagen??
Oder mir zumindest einen Ansatz geben, mit dem ich weiter machen kann.
MfG
Chris