Scilab Programmieraufgaben

Neue Frage »

David85 Auf diesen Beitrag antworten »
Scilab Programmieraufgaben
Hallo an alle,

Ich bin Student im 2. Semester und hab mehrere Programmieraufgabe bekommen.
Die Aufgaben sollen in Scilab gelöst werden.
Bin leider nicht so der beste in Programmieren und wollte mal fragen ob zu meinen überlegungen jemand eine Idee hätte oder einen lösungsansatz hat.

Folgende Aufgabenstellungen:

1.Die Numerische Ableitung einer Funktion kann durch den Differenzenquotienten

angenähert werden.

Aufgabe: Schreiben Sie eine rekursive (d.h. sich selbst aufrufende) Funktion abln(f,x0,h,n,), die einen Näherungswert für die n-te Ableitung der Funktion f an der Stelle x0 bei Verwendung der Schrittweite h bestimmt. Die zweite Ableitung erhält man durch Ableiten der ersten Ableitung, die dritte Ableitung durch Ableiten der zweiten Ableitung usw.

Ich hab bisher folgendes:

function y=f(x)
y=x^3+2*x
endfunction

function y=abln(f,x0,h,n,i)

i=1+i;
x=poly(0,'x');
y=((f(x+h))-(f(x-h)))/(2*h)


if i<=n then abln(f,x0,h,n,i)
end

endfunction

Aufgabe 2:

Vierstufiges Runge Kutta Verfahren zur Numerischen Lösung von Differentialgleichungen erster Ordnung. Gesucht ist die numerische Lösung des Anfangwertproblems y´(t)=f(t,y(t)), t[a,b],y(a)=y0 mit der konstanten Schrittweite h=(b-a)/n. Zu bestimmensind die Funktionswerte an den Stellen y(a+h), y(a+2h),... und y(a+nh)=y(b), bzw. y(t1), y(t2), ... und y(tn)=y(b). Im Folgenden gilt : ti=a+i*h und yi=y(ti). Die Werte yi werden folgendermaßen bestimmt:







Schreiben Sie eine Funktion, die das Runge-Kutta -Verfahren implementiert mit den Übergabeparametern f,y0, a, b und n. der Rückgabevektor y soll alle berechneten Funktionswerte zu den Zeiten ti, also y0,y1,...und yn enthalten.

Hinweise: Verwenden Sie eine for-Schelife. Sie können den Rückgabevektor y mithilfe der Funktion Zeros vordefinieren. Der dritten Komponente des Vektors y kann z.B. mit y(3)=2 der Ergebnisse mit denen der Funktion ode vergleichen.

Anmerkung: Die Ableitungsfunktion f muss bei Verwendung ode auch dann t als Übergabeparameter enthalten, wenn die Ableitung von y nicht von t abhängig ist. Die Zeiten, an denen der Funktionswert y bestimmt werden soll, müssen bei Verwendung von ode als Vektor definiert sein.


Meine Überlegungen zum Runge-Kutter-Verfahren:

function y=rukuv(f,y0,a,b,n)
y=zeros(1,n+1);
h=(a-b)/n
x=a:h:b;
for i=1:n
t(i)=a+i*h
k1=f(t(i),y(t(i)))
k2=f(t(i)+h/2,y(t(i))+h/2*k1)
k3=f(t(i)+h/2,y(t(i))+h/2*k2)
k4=f(t(i)+h/2,y(t(i))+h/2*k3)
y(i)=y(a+i*h)+h/6*(k1+2*k2+2*k&#8203;3+k4)
end

endfunction


Ich bedanke mich sehr Herzlich schonmal im vorraus bei all denen die sich dieser Sache annehmen und vielleich eine Idee dazu haben!


MfG David
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »