求matlab这三题代码及结果
今以题主给出题2的线性常微分方程组进行分析,当在不同的条件下,其线性常微分方程组的x-t,y-t,x-y的变化是有点区别的。
首先,我们根据题2的线性常微分方程组,自定义其函数,即
func=@(t,x)[-x(2)+x(1)*(1-x(1)^2-x(2)^2);x(1)+x(2)*(1-x(1)^2-x(2)^2)];
其二,根据不同的初始条件,使用ode45函数,得到【t,x,y】值
tspan=[0,1] %tspan=[0,50]
x0=[5;5] %x0=[5;8]
[t,x] = ode45(@func,tspan,x0);
最后,根据【t,x,y】值,使用plot函数绘制图形。
从图一看,当t=0~1时,我们发现随着t的增加,x(t)和y(t)成下降趋势,而x(t)与y(t)近似于线性变化。
从图二看,当t=0~50时,我们发现当t>1时,x(t)和y(t)成波动现象,而x(t)与y(t)的轨迹为一个圆,其半径为1。
从图三看,当初值x(0)=5和y(0)=8时,并取t在0~50之间变化,得到现象与图二类似。
图一,t=0~1,x(0)=5,y(0)=5
图三,t=0~50,x(0)=5,y(0)=8
图二,t=0~50,x(0)=5,y(0)=5
能不能只用for if语句不用func解这题?
for 语句,只能作为循环,逐步输入变量数值中的某个数值,如Tend=[1 10 20 30 40 50]
if语句,只能作为判断条件,
func是求微分方程组函数的,必须有的。
2024-10-28 广告