用MATLAB函数绘制系统的,用matlab绘制odes系统定义的函数
我試圖用Matlab求解一階ODE系統(tǒng),
$$\left\{
\begin{array}{l}
x_{1}^{\prime }=-\frac{1}{t+1}x_{1}+x_{2} \\
x_{2}^{\prime }=-(1+e^{-2t})x_{1}-\frac{1}{t+1}x_{2}+\frac{e^{-3t}}{t+1}x_{3}
\\
x_{3}^{\prime }=-\frac{1}{t+1}x_{3}+x_{4} \\
x_{4}^{\prime }=e^{-3t}\left( t+1\right) x_{1}-\left( 1+e^{-2t}\right) x_{3}-%
\frac{1}{t+1}x_{4}-\frac{1}{t+1}x_{3}^{2}%
\end{array}%
\right. $$
我已經(jīng)定義了函數(shù):
function dzdt=odefun(t,z)
dzdt=zeros(4,1);
dzdt(1)=-(1/(t+1))*z(1)+z(2);
dzdt(2)=-(1+exp(-2*t))*z(1)-(1/(t+1))*z(2)+(exp(-3*t))/(t+1)*z(3);
dzdt(3)=z(4)-(1/(t+1))*z(3);
dzdt(4)=(exp(-3*t))*(t+1)*z(1)-(1+exp(-2*t))*z(3)-(1/(t+1))*z(4)-(1/(t+1))*z(3)^2;
end
時間間隔是
[0,100]
初始條件是
z0 = [0.01 0.01 0.01 0.01]
.
與
ode45
解算器,我使用了以下命令:
>> tspan = [0 100];
>> z0 = [0.01 0.01 0.01 0.01];
>> [t,z] = ode45(@(t,z) odefun(t,z), tspan, z0);
>> plot(t,z(:,1),'r')
我很容易得到
z(1)=x_1
.
但我想畫出函數(shù)
f(t)=(t+1)*x_1(t)
,
t\in [0,100]
在哪里
x_1=z(1)
是第一個未知的系統(tǒng)。我怎么能這樣做?
總結(jié)
以上是生活随笔為你收集整理的用MATLAB函数绘制系统的,用matlab绘制odes系统定义的函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab做计算器纯代码,**matl
- 下一篇: bartlett 算法 matlab,G