for单次循环参数对比-以ode45求一元二阶微分方程为例

Testode45.m代码

clear all
close all
clc
global k1 k2

a=[];%定义a为矩阵
k1=1;
for k2=1:1:2
 tspan=[0:1:3]; %求解区间
 y0=[1 2]; %初值
 [t,y]=ode45(@odefun,tspan,y0);
 
  a=y(:,2)' % 将每次ode45积分结果放入a向量
  
  figure(1)
  hold on;
  plot(t,a);% 画出每次积分结果与时间的图形
 
end

odefun.m代码

function f=odefun(t,y)

global k1 k2

f=zeros(2,1);
f(1)=y(2);
f(2)=-t*y(1)+k2*y(2)+k1*sin(2*t); %常微分方程公式

end

一元二阶微分方程
在这里插入图片描述

仿真结果: k2取1,2值情况下 y→t变化图像
for单次循环参数对比-以ode45求一元二阶微分方程为例_第1张图片

你可能感兴趣的:(matlab,for循环,ode45,一元二阶,参数对比)