disser1.pdf (2006 KB) - Ernst-Moritz-Arndt-Universität Greifswald

disser1.pdf (2006 KB) - Ernst-Moritz-Arndt-Universität Greifswald disser1.pdf (2006 KB) - Ernst-Moritz-Arndt-Universität Greifswald

ub.ed.ub.uni.greifswald.de
von ub.ed.ub.uni.greifswald.de Mehr von diesem Publisher
31.01.2014 Aufrufe

C. MATLAB-Programme sol = bvpinit(linspace(0,20,50),[1 0 0]); sol = bvp4c(@odesys2,@bc2,sol,options); x = [sol.x]; y1 = [sol.y(1,:)]; y2 = [sol.y(2,:)]; y3 = [sol.y(3,:)]; y=[y1;y2;y3]; for i=1:size(y,2) y4(i)=(0.00125)/(y(1,i)*(0.42375-y(2,i)* ... 0.000375*exp(0.06*y(3,i)))); end; y, %plot(x,y1(1,:)) plot(y3,y4) title(’Randwertproblem’) xlabel(’t’) ylabel(’u(t)’) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function dydx = odesys2(x,y,n) % ODE function dydx = [ 0.4*y(1)*(1-y(1))-(0.000375*0.00125/ ... ((0.42375-y(2)* ... 0.000375*exp(0.06*y(3))))) ((-0.42375*0.00125*exp(-0.06*y(3))) ... /((y(1))*(0.42375-y(2)* ... 0.000375*exp(0.06*y(3)))))- ... 0.4*y(2)+2*0.4*y(2)*y(1)+ ... ((0.000375*0.00125*y(2))... /((y(1))*(0.42375-y(2)* ... 0.000375*exp(0.06*y(3))))) 1]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function res = bc2(ya,yb) %Boundary conditions res = [ ya(1)-0.25 yb(2) ya(3)]; C.6. Programm 6. Newton-Methode für ein nichtlineares Gleichungssystem. clear all syms x y f1=-20*0.00125*x+0.25*(((-0.42375*0.1)/ ... 150

C.6. Programm 6. Newton-Methode für ein nichtlineares Gleichungssystem. (0.1-0.000375*x)^2)+ ... ((0.42375*0.1)/(0.1-0.000375*x) ^2)* ... exp(-10*(0.000375*x-0.1))+ ... ((0.42375*x/(0.1-0.000375*x))- ... (0.42375*y/(0.1-0.000375*y))) ... *(-10*0.000375)*exp(10*(0.1-0.000375*x))+... (0.42375*y/(0.1-0.000375*y))*... (-10*0.000375)*exp(10*(0.2-0.000375*(x+y)))); f1x=diff(f1,x); f1y=diff(f1,y); f2=-20*0.00125*y+0.25*exp(10*(0.1-0.000375*x))* ... (((-0.42375*0.1)/(0.1-0.000375*y)^2)+ ... ((0.42375*0.1)/(0.1-0.000375*y)^2)*... exp(-10*(0.000375*y-0.1))... +((0.42375*y)/(0.1-0.000375*y))*(-10*0.000375)*... exp(-10*(0.000375*y-0.1))); f2x=diff(f2,x); f2y=diff(f2,y); s=[0;0]; i=0; epsilon=1e-9; while norm([subs(f1,{x,y},s);subs(f2,{x,y},s)]) > epsilon sol=[subs(f1x,{x,y},s),subs(f1y,{x,y},s); ... subs(f2x,{x,y},s),subs(f2y,{x,y},s)]\... -[subs(f1,{x,y},s);subs(f2,{x,y},s)]; s(1)=s(1)+sol(1); s(2)=s(2)+sol(2); s, i=i+1; end; 151

C.6. Programm 6. Newton-Methode für ein nichtlineares Gleichungssystem.<br />

(0.1-0.000375*x)^2)+ ...<br />

((0.42375*0.1)/(0.1-0.000375*x) ^2)* ...<br />

exp(-10*(0.000375*x-0.1))+ ...<br />

((0.42375*x/(0.1-0.000375*x))- ...<br />

(0.42375*y/(0.1-0.000375*y))) ...<br />

*(-10*0.000375)*exp(10*(0.1-0.000375*x))+...<br />

(0.42375*y/(0.1-0.000375*y))*...<br />

(-10*0.000375)*exp(10*(0.2-0.000375*(x+y))));<br />

f1x=diff(f1,x); f1y=diff(f1,y);<br />

f2=-20*0.00125*y+0.25*exp(10*(0.1-0.000375*x))* ...<br />

(((-0.42375*0.1)/(0.1-0.000375*y)^2)+ ...<br />

((0.42375*0.1)/(0.1-0.000375*y)^2)*...<br />

exp(-10*(0.000375*y-0.1))...<br />

+((0.42375*y)/(0.1-0.000375*y))*(-10*0.000375)*...<br />

exp(-10*(0.000375*y-0.1)));<br />

f2x=diff(f2,x); f2y=diff(f2,y);<br />

s=[0;0];<br />

i=0;<br />

epsilon=1e-9;<br />

while norm([subs(f1,{x,y},s);subs(f2,{x,y},s)]) > epsilon<br />

sol=[subs(f1x,{x,y},s),subs(f1y,{x,y},s); ...<br />

subs(f2x,{x,y},s),subs(f2y,{x,y},s)]\...<br />

-[subs(f1,{x,y},s);subs(f2,{x,y},s)];<br />

s(1)=s(1)+sol(1);<br />

s(2)=s(2)+sol(2);<br />

s,<br />

i=i+1;<br />

end;<br />

151

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!