求matlab这三题代码及结果

 我来答
lhmhz
高粉答主

2020-02-23 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17014

向TA提问 私信TA
展开全部

今以题主给出题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是求微分方程组函数的,必须有的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式