matlab 欧拉法微分方程,MATLAB实战——微分方程组的解法之欧拉法与4阶龙格库塔法...

该博客介绍了如何在MATLAB中使用欧拉法和4阶龙格库塔法解决微分方程组。通过示例代码展示了两种方法的实现过程,并对比了它们的解与解析解的差异。
摘要由CSDN通过智能技术生成

MATLAB实战——微分方程组的解法之欧拉法与4阶龙格库塔法

MATLAB实战——微分方程组的解法之欧拉法与4阶龙格库塔法

5955370f913a7e58ebe96518d4433dd7.png

29391200c4a45b17952afd5da2da6926.png

76af679419a6ab9e0578af1ceb42aa54.png

实现:

%%Question 1 part(b)

clear all;

clc;

t0 = 0;

x0 = 1/2;

dt = 0.1;

tf = 1;

t_range = t0:dt:tf;

x_EU = zeros(1,length(t_range));

x_EU(1)= x0;

x_RK = zeros(1,length(t_range));

x_RK(1)= x0;

for k = 1:length(t_range) - 1

x_EU(k+1) = euler_scheme(x_EU(k),dt);

x_RK(k+1) = RK4_scheme(x_RK(k),dt);

end

figure;

plot(t_range,x_EU,'g-o','Markersize',5);

hold on;

plot(t_range,x_RK,'r-o','Markersize',5);

hold on;

t_analytical = t0:0.001:tf;

x_analytical = (exp(t_analytical+log(1/3)))./(1-(exp(t_analytical+log(1/3))));

plot(t_analytical,x_analytical,'k-','linewidth',1);

legend('Euler method','RK4 method','analytical method')

function dxdt = fx(x)

dxdt = (x^2)+x;

end

function x1 = euler_scheme(x0,h)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值