ak47kill 发表于 2006-9-27 08:35

如何用四阶龙格库塔法求解微分方程

请高手指导大致思路!

jimin 发表于 2006-9-27 09:05

function R=rk4(f,a,b,ya,M)

%Input - f is the function entered as a string 'f'
% - a and b are the left and right endpoints
% - ya is the initial condition y(a)
% - M is the number of steps
%Output - R = where T is the vector of abscissas
% and Y is the vector of ordinates

% NUMERICAL METHODS: Matlab Programs
% (c) 2004 by John H. Mathews and Kurtis D. Fink
% Complementary Software to accompany the textbook:
% NUMERICAL METHODS: Using Matlab, Fourth Edition
% ISBN: 0-13-065248-2
% Prentice-Hall Pub. Inc.
% One Lake Street
% Upper Saddle River, NJ 07458

h=(b-a)/M;
T=zeros(1,M+1);
Y=zeros(1,M+1);
T=a:h:b;
Y(1)=ya;
for j=1:M
k1=h*feval(f,T(j),Y(j));
k2=h*feval(f,T(j)+h/2,Y(j)+k1/2);
k3=h*feval(f,T(j)+h/2,Y(j)+k2/2);
k4=h*feval(f,T(j)+h,Y(j)+k3);
Y(j+1)=Y(j)+(k1+2*k2+2*k3+k4)/6;
end

R=;

ak47kill 发表于 2006-9-27 18:26

请问%Input - f is the function entered as a string 'f',f为何
望请指教

ak47kill 发表于 2006-9-27 18:29

dy/dx=-y+1,y(0)=0;x的范围0到0.5;请问用四阶龙格库塔计算,其中的f是什么啊?

ak47kill 发表于 2006-9-27 19:51

请教:四阶龙格库塔法解这个微分方程的M文件

请教高手,dy/dx=-y+1,y(0)=0;x的范围0到0.5;这个方程的M文件

AaronSpark 发表于 2006-9-29 01:54

原帖由 ak47kill 于 2006-9-27 18:26 发表
请问%Input - f is the function entered as a string 'f',f为何
望请指教


你要求解的函数

AaronSpark 发表于 2006-9-29 02:07

原帖由 ak47kill 于 2006-9-27 19:51 发表
请教高手,dy/dx=-y+1,y(0)=0;x的范围0到0.5;这个方程的M文件


function yy=f(t,y);
yy=-y+1;

R=rk4(@f,0,0.5,0,100);
页: [1]
查看完整版本: 如何用四阶龙格库塔法求解微分方程