2021-01-07 Numerische Matlab-Analyse Gewöhnliche Differentialgleichung Anfangsgrenzwertproblem Numerische Lösung Standard Runge Kutta Vierstufige Formel-Euler-Methode vierter Ordnung

Matlab numerische Analyse gewöhnliche Differentialgleichung anfänglicher Randwert Problem numerische Lösung Standard Runge Kuta vierstufige Formel Euler-Methode vierter Ordnung

1. Standard Runge Kuta vierstufige Formel vierter Ordnung

function y=rk4(fun,a,b,y0,n)
h=(b-a)/n;
y(1)=y0;
for k=1:n
  x=a+(k-1)*h;
  k1=h*feval(fun,x,y(k));
  k2=h*feval(fun,x+h/2,y(k)+k1/2);
  k3=h*feval(fun,x+h/2,y(k)+k2/2);
  k4=h*feval(fun,x+h,y(k)+k3);
  y(k+1)=y(k)+(k1+2*k2+2*k3+k4)/6;
end

Funktionsdatei

 

function u=frk4(x,y)u=y-2*x/y;

Programm aufrufen

y=rk4(@frk4,0,1,1,10)

2 Euler-Methode


function y=euler(f,a,b,y0,h)
n=(b-a)/h;
y(1)=y0;
for i=1:n
  x(i)=a+(i-1)*h;
  y(i+1)=h*feval(f,x(i),y(i));
end

Funktionsdatei

 

function u=feuler(x,y)u=x^3-y/x;

Programm aufrufen

y=euler(@feuler,1,2,0.4,0.2)

 

 

Ich denke du magst

Origin blog.csdn.net/qingfengxd1/article/details/112322073
Empfohlen
Rangfolge