matlab中ode45函数
matlab小白,求大佬指出动力学ODE方程模型错误
为什么用matlab求动力学ODE方程模型错误?从给出的错误信息来看,可以初步判断:1、未定义函数或变量 'ExpData',是没有给出ExpData变量的具体数据;2、由于没有给出ExpData数据,导致tspan = ExpData(:,1)不存在 3、也没有给出yexp的数据,因没有具体的ExpData数据,无法提取yexp的...
MATLAB中的ode使用。
by dynamic see also http:\/\/www.matlabsky.com contact me matlabsky@gmail.com 2009-8-4 13:49:27 对于ode方程的Matlab求解,可以参考我的教程,里面有很多实例http:\/\/www.matlabsky.com\/thread-526-1-1.html 至于你说的Matlab怎么知道y(2)是y的一阶导数,这个你不需要问 如果你学过控制...
用Matlab解决以下问题:
给出的微分方程可以用Matlab的ode()函数来解决。解决方法如下:x0=[1.5];func=@(x,y)-(y-log(x))\/(x*log(x));[x,y]=ode45(func,[exp(1) exp(5)],x0)plot(x,y),grid on xlabel('x'),ylabel('y(x)')str=['常微分方程xlnxdy+(y-lnx)dx=0,y(e)=3\/2的数值解']...
matlab解微分方程的题目,求大神解答,谢谢?
Volterra-Lotka模型是种间竞争模型,本例两个物种是兔子和狐狸。该模型的数学表达式为常微分方程组,可以用matlab的ode函数来求解。求解方法:1、建立自定义该模型的数学函数,其内容 function dy=ode_fun(t,x)a=1;b=0.1;c=0.5;d=0.02;dy=[a*x(1)-b*x(1)*x(2);-c*x(2)+d*x(1...
用matlab解ode,如何输出函数的值
function dy = rigid(t,y)dy = zeros(3,1); % a column vector dy(1) = y(2) * y(3);dy(2) = -y(1) * y(3);dy(3) = -0.51 * y(1) * y(2);options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);[T,Y] = ode45(@rigid,[0 12],[0 1 ...
Matlab\/simulink中,什么叫Oder45和Ode23bt算法?
ode45是基于四点法和五点法的解微分方程数值解的方法,ode23等也一样,都是基于已知点“预测”下一个点的函数值的方法,不同的算法“预测”的方法不一样。比较著名的“预测”方法有欧拉法,改进的欧拉法,龙格库塔法,多点法等。在matlab一般使用中这些方法的差别不大,可以不予理会,会用一个即可...
用MATLAB中的ode命令解二阶微分方程,如何得到y的二次导数项结果_百度知 ...
得到y和y的一届导函数后根据微分方程算y的二阶导即可
请问老师这个题用matlab怎么做?
题主给出的二阶微分方程组,用matlab求解其精确解和数值解,可以使用dsolve()函数得到其解析值,使用ode()函数得到其数值解。一、使用dsolve()函数求解 第一步,对x(t)、y(t)进行声明变量,即 syms x(t) y(t)第二步,使用diff()函数分别对x(t)、y(t)进行导数计算 Dy=diff(y,t,1...
matlab程序ode45
ode45可以用来解微分方程,基本用法如下:一、常用格式:[t,y]=ode45(odefun,tspan,y0)参数说明: odefun:用以表示f(t,y)的函数句柄或inline函数,t是标量,y是标量或向量。 tspan:如果是二维向量[t0,tf],表示自变量初值t0和终值tf;如果是高维向量[t0,t1,…,tn],则表示输出节点列向量。 y0:...
MATLAB中用ode45求解微分方程,如何设置最大步长?
我看还有同学在纠结ode45的固定步长设置方法,提一句:首先,ode45 是一个变步长函数,不可能设置为定步长的。其次,需要定步长的ode函数可以在Matlab帮助里搜一下“Solvers for Real-Time Simulation”,里面详细介绍了一些定步长的ode函数。但要注意Matlab本身是没有这些函数的,需要用simulink仿真才能配置。
广元市卓异回答: (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);
敖咳18429682221问: matlab程序ode45 - ?
广元市卓异回答: function dx=myfun(t,x) dx(1)=20/7*x(1)-x(2)*x(3); dx(2)=-10*x(2)+x(1)*x(3); dx(3)=-4*x(3)+x(1)*x(2); dx=dx(:); 这部分保存为m函数文件 命令行运行 >> x0=[3,-4,2]; t0=0.001:0.001:20; [t,x]=ode45('myfun',[0.001,20],x0); %ode45会自动调整步长 plot(t,x) legend('x','y','z') >> 结果
敖咳18429682221问: matlab中ODE45函数该如何使用? - ?
广元市卓异回答: t>=0即可用ode45,它的物理意义类似时间,但也不局限于时间.你的问题比较模糊.
敖咳18429682221问: matlab中ode45函数的使用 - ?
广元市卓异回答: 把x0的逗号改成分号就行(把行向量改列向量),或者用转置[]
敖咳18429682221问: 求教matlab高手ode45的用法! - ?
广元市卓异回答: 这个解微分方程组好用点吧,一般都要把你要解的微分方程组,变换一下,然后按格式编辑一个函数,具体的要上网搜索几个例子看看.记得百度文库里面很多相关的.
敖咳18429682221问: matlab用ode45求解微分方程组 - ?
广元市卓异回答: ode45是最常用的求解非刚性微分方程(组)的指令,它采用变步长四、五阶Runge-Kutta法,求解精度比ode23、ode15要高.但ode45的计算量比较大,而ode23计算量小,且误差大 调用格式:[t,y]=ode45(odefun,tspan,y0) odefun 用以表示f(t,y...
敖咳18429682221问: MATLAB 中的ODE45 - ?
广元市卓异回答: 没有必要 只要是选取的初值对应的t等于tspan(1) 我们看下面一个例子,对于dx/dt=2t来说吧 我们知道精确解是x=t^2 下面我们给出数值解法,编写代码 % %选取状态变量 %x1=x % %则各个状态变量的一阶导数为 %x1'=x'=2*t % %by dynamic %...
敖咳18429682221问: 二阶微分方程组的MATLAB解法请告诉一种用ode45来解二阶微分方程组的方法,最好把算法写出来 - ?
广元市卓异回答:[答案] 一个二阶微分方程: y''+y'+y=sin(t) 初始条件为y(0)=5,y'(0)=6. 过程: 先降阶为一阶微分方程组 y'=z z'=-z-y+sin(t) 编制如下函数m文件 function dy=weifen(t,x) dy=zeros(2,1); %y=x(1) %z=x(2) dy(1)=x(2); dy(2)=sin(t)-x(2)-x(1); 然后用ode45解方程 [t,y]=...
敖咳18429682221问: matlab里ode45解决二阶常系数微分方程用法 - ?
广元市卓异回答: ^1、相关常数都没给,这里随便设置一些数值: m=1;c=2;k=3; y0=4;yp0=5; tf=10; dy=@(t,y)[y(2);-(c*y(2)+k*y(1))/m]; [t,y]=ode45(dy,[0 tf],[y0 yp0]); plot(t,y(:,1)) 2、function test() [t,y]=ode45(@func1, [0,1], [0;0;1;2;2;2]); figure(1); clf; plot(t, y); legend('x','...
敖咳18429682221问: 请教MATLAB高手关于ode45函数的问题 - ?
广元市卓异回答: 原因是你的步长取得太小了,也就是1:20:400这里,把中间的20改小试试: clear; clc; tspan=[0:0.1:400]; x0=[5.91e-10;2.62e-12]; [t,x]=ode45('ff2',tspan,x0); figure plot(t,x(:,1),'r-') figure plot(t,x(:,2),'b-') fprintf('%24.16f %24.16f %24.16f %24.16f %24.16f %24.16f %24.16f\n',x);