求解微分方程的龙格库塔数值法

 我来答
诗和远方xubin
2023-02-02 · TA获得超过100个赞
知道小有建树答主
回答量:1397
采纳率:60%
帮助的人:33.4万
展开全部

用Matlab四阶龙格库塔法求常微分方程可以按照以下方法去实现。

1、首先建立自定义微分方程函数

function f = ode_fun(x,y)

f=y+2*x/y^2;

end

2、然后用四阶龙格库塔法求其数值解

figure(2)

y0=[1]; %初值y(0)=1

h=0.1;

a=0;

b=5;

[x,y] = runge_kutta(@(x,y)ode_fun(x,y),y0,h,a,b);

disp('        x        y')

A=[x',y']

plot(x,y,'LineWidth',1.5),grid on

xlabel('x'),ylabel('y(x)');

对于微分方程


通常所说的龙格-库塔法是指四阶而言的,我们可以仿二阶、三阶的情形推导出常用的标准四阶龙格-库塔法公式


在各种龙格-库塔法当中有一个方法十分常用,以至于经常被称为“RK4”或者就是“龙格-库塔法”。该方法主要是在已知方程导数和初值信息,利用计算机仿真时应用,省去求解微分方程的复杂过程。


令 初值问题 表述如下。


则,对于该问题的RK4由如下方程给出:


其中


这样,下一个值( y n +1 )由现在的值( y n )加上时间间隔( h )和一个估算的斜率的乘积所决定。该斜率是以下斜率的加权平均:


当四个斜率取平均时,中点的斜率有更大的权值:


RK4法是四阶方法,也就是说每步的误差是 h 阶 ,而总积累误差为 h 阶。


注意上述公式对于标量或者向量函数( y 可以是向量)都适用。


显式龙格-库塔法是上述RK4法的一个推广。它由下式给出。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北京埃德思远电气技术咨询有限公司
2021-11-22 广告
假设条件在短路的实际计算中, 为了能在准确范围内迅速地计算短路电流, 通常采取以下简化假设。(1)不考虑发电机的摇摆现象。(2)不考虑磁路饱和,认为短路回路各元件的电抗为常数。(3)不考虑线路对地电容, 变压器的磁支路和高压电网中的电阻, ... 点击进入详情页
本回答由北京埃德思远电气技术咨询有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式