三阶、四阶龙格库塔函数matlab代码

更新时间:2023-09-04 04:16:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

龙格库塔函数三四阶函数matlab代码实现

三阶龙格—库塔法的计算公式为:

K1 g(xi,yi)

hhK2 g(xi ,yi K1)22 K3 g(xi h,yi hK1 2hK2)

yi 1 yi h(K1 4K2 K3)6

三阶龙格—库塔公式的Matlab程序代码:

function y = DELGKT3_kuta(f, h,a,b,y0,varvec)

format long;

N = (b-a)/h;

y = zeros(N+1,1);

y(1) = y0;

x = a:h:b;

var = findsym(f);

for i=2:N+1

K1 = Funval(f,varvec,[x(i-1) y(i-1)]);

K2 = Funval(f,varvec,[x(i-1)+h/2 y(i-1)+K1*h/2]);

K3 = Funval(f,varvec,[x(i-1)+h y(i-1)-h*K1+K2*2*h]);

y(i) = y(i-1)+h*(K1+4*K2+K3)/6;

end

format short;

DELGKT3_kuta

函数运行时需要调用下列函数:

function fv=Funval(f, varvec, varval)

var= findsym(f);

if length(var)<4

if var(1)==varvec(1)

fv=subs(f,varvec(1),varval(1));

else

fv=subs(f,varvec(2),varval(2));

end

else

fv=subs(f,varvec,varval);

end

三阶龙格—库塔求解一阶常微分方程应用实例。用三阶龙格—库塔法求下面常微分方程的数值解。

dy 2x 3y 2 dx 0 x 1

y(0) 1

龙格库塔函数三四阶函数matlab代码实现

在编辑窗口输入下列程序段,然后执行该程序。

syms x y;

z=2*x-3*y+2;

yy=DELGKT3_kuta(z,0.1,0,1,1,[x y])

程序执行后得结果

四阶龙格—库塔法的计算公式为:

K1 g(xi,yi)

hhK2 g(xi ,yi K1)22

hh K3 g(xi ,yi K2)22

K4 g(xi h,yi hK3)

yi 1 yi h(K1 2K2 2K3 K4)6

function y = DELGKT4_lungkuta(f, h,a,b,y0,varvec)

format long;

N = (b-a)/h;

y = zeros(N+1,1);

y(1) = y0;

x = a:h:b;

var = findsym(f);

for i=2:N+1

K1 = Funval(f,varvec,[x(i-1) y(i-1)]);

K2 = Funval(f,varvec,[x(i-1)+h/2 y(i-1)+K1*h/2]);

K3 = Funval(f,varvec,[x(i-1)+h/2 y(i-1)+K2*h/2]);

K4 = Funval(f,varvec,[x(i-1)+h y(i-1)+h*K3]);

y(i) = y(i-1)+h*(K1+2*K2+2*K3+K4)/6;

end

format short; 同理也要先调用Funval函数(见上)

四阶龙格—库塔求解一阶常微分方程应用实例。用四阶龙格—库塔法求下面常微分方程的数值解。

dy 1 ln(x 1) dx 0 x 1

y(0) 1

在编辑窗口输入下列程序段,然后执行该程序。

z=1+log(x+1)

yy=DELGKT4_lungkuta(z,0.1,0,1,1,[x,y])

程序执行后得结果

本文来源:https://www.bwwdw.com/article/ejgi.html

Top