声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1582|回复: 6

[编程技巧] 如何用四阶龙格库塔法求解微分方程

[复制链接]
发表于 2006-9-27 08:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请高手指导大致思路!

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 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 = [T' Y'] 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=[T' Y'];

评分

1

查看全部评分

 楼主| 发表于 2006-9-27 18:26 | 显示全部楼层
请问%Input - f is the function entered as a string 'f',f为何
望请指教
 楼主| 发表于 2006-9-27 18:29 | 显示全部楼层
dy/dx=-y+1  ,y(0)=0;x的范围0到0.5;请问用四阶龙格库塔计算,其中的f是什么啊?
 楼主| 发表于 2006-9-27 19:51 | 显示全部楼层

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

请教高手,dy/dx=-y+1  ,y(0)=0;x的范围0到0.5;这个方程的M文件
发表于 2006-9-29 01:54 | 显示全部楼层
原帖由 ak47kill 于 2006-9-27 18:26 发表
请问%Input - f is the function entered as a string 'f',f为何
望请指教



你要求解的函数
发表于 2006-9-29 02:07 | 显示全部楼层
原帖由 ak47kill 于 2006-9-27 19:51 发表
请教高手,dy/dx=-y+1  ,y(0)=0;x的范围0到0.5;这个方程的M文件


  1. function yy=f(t,y);
  2. yy=-y+1;
复制代码

  1. R=rk4(@f,0,0.5,0,100);
复制代码
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-20 00:30 , Processed in 0.063097 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表