用MATLAB函数绘制系统的,用matlab绘制odes系统定义的函数

我试图用Matlab求解一阶ODE系统,

$$\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. $$

我已经定义了函数:

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

.

但我想画出函数

f(t)=(t+1)*x_1(t)

,

t\in [0,100]

在哪里

x_1=z(1)

是第一个未知的系统。我怎么能这样做?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值