MATLAB 中的ODE45
来源:百度知道 编辑:UC知道 时间:2024/05/26 03:14:26
没有必要 只要是选取的初值对应的t等于tspan(1)
我们看下面一个例子,对于dx/dt=2t来说吧 我们知道精确解是x=t^2
下面我们给出数值解法,编写代码
%
%选取状态变量
%x1=x
%
%则各个状态变量的一阶导数为
%x1'=x'=2*t
%
%by dynamic
%see also http://www.matlabsky.com
%2009.2.19
%
odefun=@(t,x)2*t;
%给出初值,注意我们这里不给出t=0时的初值,我们给出t=2时的初值
%初值是指各个状态变量的在t=t0=2时的值
%t=2时,状态变量x1的初值x1=t^2=4,故初值为
x0=4;
%注意下面的t0必须等于2,因为我们的选择的初值条件是t=2,ode45默认将t0作为初值条件对应的t值
t0=2;
t1=10;
[t,y]=ode45(odefun,[t0,t1],x0);
%根据计算数据绘图
plot(t,y,'-.k','LineWidth',3)
%根据解析解精确绘图
t=0:0.1:10;
x=t.^2;
hold on
plot(t,x,'r')
我们可以看到两个图像重合 说明现在的ode45求解出完全正确的数值解 换句话说初值的条件不一定需要t=0
换句话说 只要那个初值中的t可以任意选,但是必须满足,选取的t和ode45(odefun,[t0,t1],x0)中的t0相等
至于【微分方程的Matlab数值解法详解】参见matlab ODE45
急求高手帮助——MATLAB-ode45困扰
matlab中的一元回归
matlab编程中的问题
matlab中的数据处理问题
: 在MATLAB中的使用
matlab中的问题
matlab中的翻译问题
matlab中的GUI问题
MATLAB中的仿真问题