python龙格库塔函数 python 龙格库塔

龙格库塔法求解微分方程,matlab怎么编程

function [Y] = RK45(t,X,f,h)

成都创新互联-专业网站定制、快速模板网站建设、高性价比百色网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式百色网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖百色地区。费用合理售后完善,十年实体公司更值得信赖。

K1=f(t,X);

K2=f(t+h/2,X+h/2*K1);

K3=f(t+h/2,X+h/2*K2);

K4=f(t+h,X+h*K3);

Y=X+h/6*(K1+2*K2+2*K3+K4);

end

以上是4阶龙格库塔法的代码:

自己写函数,存为f.m

function dxdt = f (t,x)

dxdt(1)=exp(x(1)*sin(t))+x(2);

dxdt(2)=exp(x(2)*cos(t))+x(1); % x(1)是你的f,x(2)是你的g

dxdt=dxdt(:);

end

自己给出t0,x0,h的值(初始时间,初值,步长)

如果求t0到t1的轨迹的话:给个例子如下

t0=0;t1=5;h=0.02;x0=[-1;-1];

T=t0:h:t1;X=zeros(length(x0),length(T));X(:,1)=x0;

for j=1:length(T)-1

X(:,j+1)=RK45(T(j),X(:,j),@(t,x) f(t,x),h);

end

plot(T,X(1,:));

hold on;

plot(T,X(2,:),'r');

具体参数自己设置

龙格库塔法求微分方程,下面代码哪里错了不能产生图像?

题主给出的运行龙格库塔法求微分方程为什么会出错?出错的根本原因自定义函数的变量与函数体里的变量不一致,即F=f(t,y)的y,不等同于Y(1)和Y(2)。正确的写法为

function F=f(t,Y)

x=Y(1);y=Y(2);

f1=-x^2*(5-y);

f2=y*(4-3*x);

F=[f1;f2];

end

完善代码可以得到如下图形。

经典龙格库塔公式的精度为

经典龙格库塔公式的精度为p=2。亚当斯-巴什福思(Adams-Bashorth)法,亚当斯-莫尔顿(Adams-Monlton)法,都是常微分方程的积分方法。它们需要在每一次迭代时重新计算一遍等式右边的结果(非线性隐含问题忽略计算多个f(ω)值的可能性龙格-库塔(Runge-Kutta)法是一种不同的处理,作为多级方法为人们所知。它要求对于一个简单的校正计算多个f的值。

龙格库塔求解二阶微分方程组的MATLAB编程

MATLAB求解x''+0.7x'+0.8x'|x'|+25.6x-25.6x³=0二阶微分方程组的方法,可以按下列步骤进行:

1、建立自定义函数func()

function

f

=

func(t,x)

%x''+0.7x'+0.8x'|x'|+25.6x-25.6x³=0

f(1)=x(2);

f(2)=25.6*x(1)^3-25.6*x(1)-0.8*x(2)*abs(x(2))-0.7*x(2);

f=f(:);

2、建立龙格库塔算法函数runge_kutta()

调用格式:[t,x]

=

runge_kutta(@(t,x)func(t,x),x0,h,a,b);

3、然后根据x和x'数据,绘制出x(t)、x′(t)的图形。

plot(x(:,1),x(:,2))


标题名称:python龙格库塔函数 python 龙格库塔
转载来源:http://myzitong.com/article/hjheeh.html