这道matlab用ODE45怎么写?

来自:    更新日期:早些时候
这道matlab用ODE45怎么写?~

用ode45()函数求解微分方程组的关键是建立起自定义函数,该函数的主要内容为
function dy=odefun(t,x); %保存为 odefun.m 文件
mu1=1500;mu2=150;
dy(1)=x(1)*(1-x(2)/mu2);
dy(2)=-x(2)*(1-x(1)/mu1);
dy=dy(:);
end
然后用ode45()函数命令,调用odefun()函数。编程后可以得到如下结果。

(1)建立函数文件funt.m:
function up=funt(t,u)
up=u-(2*t/u);
(2)求微分方程:
clc;clear;
t0=0;tf=1;u0=1;
[t,u]=ode45('funt',[t0,tf],u0);

该常微分方程用ode45函数求解。可以这样处理:

y0=[100,100];

[t,x]=ode45(@odefun,[0 100],y0); %odefun()是微分方程组的自定义函数

figure(1)

plot(t,x),grid on

legend('x1(t)','x2(t)','Location','northwest')

xlabel('t'),ylabel({'x1(t)','x2(t)'})

figure(2)

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

xlabel('x1(t)'),ylabel('x2(t)')

title('x1(t) 与x2(t) 相平面图')

运行结果




这道matlab用ODE45怎么写?视频

相关评论:
  • 15192709604matlab运动方乘求解ode45,请教?
    贺奚瑗题主给出二阶运动微分方程,如何用ode45函数求解?求解方法如下:1、自定义二阶运动微分方程函数,其中sgn为符号函数,在matlab中是以sign()来表示的。所以该方程函数为 odefun=@(t,u)[u(2);-0.3*(m+10)*sign(u(1))-n];2、确定初始值和时间范围,在这里 u0=[0;0];tspan=[0,10];...

  • 15192709604matlab ode45用法
    贺奚瑗[T,Y,TE,YE,IE] = ode45(odefun,tspan,y0,options)sol = ode45(odefun,[t0tf],y0...)[T,Y] = ode45(odefun,tspan,y0)odefun 是函数句柄,可以是函数文件名,匿名函数句柄或内联函数名 tspan 是区间 [t0 tf] 或者一系列散点[t0,t1,...,tf]y0 是初始值向量 T 返回列向量的时间点...

  • 15192709604matlab中的ode45
    贺奚瑗ode45 求解非刚性微分方程,中阶方法。ode45可以解决问题 M(t,y)*y' = f(t,y) ,质量矩阵M是非奇异的。Example 解决系统 y' = vdp1(t,y) 使用默认的相对误差容差1e-3和每个组件的默认绝对容差1e-6,并绘制解决方案的第一个组件。

  • 15192709604matlab问题:使用ode45求如下微分方程的数值解,绘制y-t图
    贺奚瑗用ode45()求微分方程的格式为 [T,Y] =ode45(odefun,tspan,y0)odefun——微分方程自定义函数;tspan——t的区间;y0——y,dy的初始值。用plot()绘出微分方程的解,即y(t)函数图形。对于本提问,可以按下列代码实施。下图是精确解与数值解的图形比较。

  • 15192709604用MATLABode45求微分方程 dy\/dx + ytanx = cosx 在[0,pi\/4]的数值解...
    贺奚瑗用MATLAB的ode45函数可以求得微分方程 dy\/dx + ytanx = cosx 在[0,pi\/4]的数值解。t0=0;tf=pi\/4;tspan=t0:pi\/40:tf;x0=[0,0]; %初值 [t,y]= ode45(@myodefun,tspan,x0); %myodefun为自定义微分方程函数 disp(' x y(x) dy\/dx')A=[t y];disp(A)figure(1)plo...

  • 15192709604matlab用ode45解微分方程,结构动力响应。
    贺奚瑗是的,需要用for循环语句来某一时刻的位移、速度、加速度。求解方法如下:主程序 t=0:0.02:0.2;for i=1:length(t)g=0.00098;f=g*t(i);y0=zeros(1,6);tspan=[0 0.2];[t,y]=ode45(@(t,y)myode(t,y,?),tspan,y0,options);figure(i)plot(t,y(:,1),t,y(:,3),t,y(...

  • 15192709604MATLAB 用ode45解方程组?
    贺奚瑗用ode45求解初值问题的常微分方程,可以按下列步骤编程计算。1、建立已知的常微分方程的自定义函数 func=@y\/x-2*y^2 2、确定初值,y0=0.0001 3、确定x变化范围,xspan=[0.0001,2.9999]4、使用ode45函数求解,得到x,y的数值解 5、使用plot函数绘制该微分方程的数值解图形 6、运行结果 ...

  • 15192709604MATLAB中ode45方法求解微分方程组
    贺奚瑗使用ode45解微分方程组,可以用下列格式来求解。[t,x]=ode45(odefun,tspan,x0)式中:odefun——给定微分方程组的自定义函数;tspan——自变量t的范围,即【t0,tf】;x0——x的初值向量,即x1(0),x1'(0),x2(0),x2'(0),x3(0),x3'(0)由于没有给出自变量t的范围和x的初值...

  • 15192709604matlab中用ode45求微分方程的数值解问题
    贺奚瑗步长在起始时间和结束时间中间设置,如想设置步长为0.1,可以用 [T,Y]=ode45('function1',[0 0.1 3000],[2 0]);即在0和3000之间加上步长,如果不设置步长,默认为1。

  • 15192709604怎样用matlab中用ode45求解带有分段参数的微分方程组
    贺奚瑗分段函数的一个简单方法就是分了几段就写几个函数:定义一个主调函数、两个子函数 最后一个主调程序调用 function dx=fun(t,x)dx=zeros(2,1);f=;dc(t)=diff('f','t');%f就是你的c(t)dx(1)=x(2)*dc(t);dx(2)=x(1)+6*t^2;%0<=t<=2 ode45(@fun,[0 2],[初值])...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网