% 2阶泰勒方法求解常微分方程测试程序
clear
clc
close all
Hfun = @Dfun;
% 参数
t = [0 12]; % 时间范围
x0 = [0 1 1]; % 初始状态
%% 步长h = 0.1
h = 0.1; % 时间步长
% 改进欧拉法求解
[T0,X0] = ODE_Taylor2( Hfun,t,h,x0 );
% 向前欧拉法求解
[T1,X1] = ODE_ExplicitEuler( Hfun,t,h,x0 );
% 改进欧拉法求解
[T2,X2] = ODE_ImprovedEuler( Hfun,t,h,x0 );
% Matlab自带ode45求解
[T3,X3] = ode45( Hfun,t(1):h:t(2),x0 );
% 绘图对比
figure
subplot(311)
plot(T0,X0(:,1),T1,X1(:,1),T2,X2(:,1),T3,X3(:,1))
xlabel('Time(s)')
ylabel('x_1')
legend('二阶泰勒法','向前欧拉法','改进欧拉法','ode45')
subplot(312)
plot(T0,X0(:,2),T1,X1(:,2),T2,X2(:,2),T3,X3(:,2))
xlabel('Time(s)')
ylabel('x_2')
legend('二阶泰勒法','向前欧拉法','改进欧拉法','ode45')
subplot(313)
plot(T0,X0(:,3),T1,X1(:,3),T2,X2(:,3),T3,X3(:,3))
xlabel('Time(s)')
ylabel('x_3')
legend('二阶泰勒法','向前欧拉法','改进欧拉法','ode45')
%% 步长h = 0.6
h = 0.6; % 时间步长
% 改进欧拉法求解
[T0,X0] = ODE_Taylor2( Hfun,t,h,x0 );
% 改进欧拉法求解
[T2,X2] = ODE_ImprovedEuler( Hfun,t,h,x0 );
% Matlab自带ode45求解
[T3,X3] = ode45( Hfun,t(1):h:t(2),x0 );
% 绘图对比
figure
subplot(311)
plot(T0,X0(:,1),T2,X2(:,1),T3,X3(:,1))
xlabel('Time(s)')
ylabel('x_1')
legend('二阶泰勒法','改进欧拉法','ode45')
subplot(312)
plot(T0,X0(:,2),T2,X2(:,2),T3,X3(:,2))
xlabel('Time(s)')
ylabel('x_2')
legend('二阶泰勒法','改进欧拉法','ode45')
subplot(313)
plot(T0,X0(:,3),T2,X2(:,3),T3,X3(:,3))
xlabel('Time(s)')
ylabel('x_3')
legend('二阶泰勒法','改进欧拉法','ode45')
%% 步长h = 0.9
h = 0.9; % 时间步长
% 改进欧拉法求解
[T0,X0] = ODE_Taylor2( Hfun,t,h,x0 );
% 改进欧拉法求解
[T2,X2] = ODE_ImprovedEuler( Hfun,t,h,x0 );
% Matlab自带ode45求解
[T3,X3] = ode45( Hfun,t(1):h:t(2),x0 );
% 绘图对比
figure
subplot(311)
plot(T0,X0(:,1),T2,X2(:,1),T3,X3(:,1))
xlabel('Time(s)')
ylabel('x_1')
legend('二阶泰勒法','改进欧拉法','ode45')
subplot(312)
plot(T0,X0(:,2),T2,X2(:,2),T3,X3(:,2))
xlabel('Time(s)')
ylabel('x_2')
legend('二阶泰勒法','改进欧拉法','ode45')
subplot(313)
plot(T0,X0(:,3),T2,X2(:,3),T3,X3(:,3))
xlabel('Time(s)')
ylabel('x_3')
legend('二阶泰勒法','改进欧拉法','ode45')
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
2阶泰勒方法求解常微分方程测试程序.rar (6个子文件)
BK19 Tayler2ODE
Dfun.m 283B
ODE_Taylor2_Solve_Test.m 2KB
ODE_Taylor2.m 1KB
ODE_ImprovedEuler.m 1KB
ODE_RK4.m 2KB
ODE_ExplicitEuler.m 1KB
共 6 条
- 1
资源评论
扬辰鑫
- 粉丝: 310
- 资源: 61
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功