用matlab求微分方程系数,MATLAB求微分方程组并作图dx/dt=a*b*c(1-c/y)dy/dt=d*m(1-n*x/y+p)其中,a,b,c,d,m,n,p都为常数.且,a,b,c,d,m...

追答:

哪个x,哪个y,你改最后一部分就可以了。在 plot(t,z(:,1),t,z(:,2)); title('x,y关于t的函数图象'); 中间插入一行: legend('x','y') 即可。 你固定了b,c,m,p,但是n又不知道是多少,这种情况下要用程序解决你的问题还是得确定n才可能。原理就是尝试不同的n,a,d的数值的组合,解出在不同的数值组合下y的数值,然后画在一个坐标系里比较。具体你就要做循环了。比如尝试先固定n=2, a = 1, d = 1: 按上面的程序计算你会得到一组(x,y),然后你输入: y = z(:,2); y2 = []; y2 = [y2, y] 这样第一次计算得到的y的序列就存在y2里了。不要删除y2,删除其他变量,然后继续尝试 a = 1; d=2; 还是一样计算得到y y = z(:,2); y2 = [y2, y] 这样第二次计算得到的y的序列也存下来了。你做许多这样a,d的组合,算出矩阵y2后,然后作图 (我假设你做了四个a,d这样的组合) plot(t,y(:,1),t,y(:,2),t,y(:,3),t,y(:,4)) legend('a=1, d=1','a=1,d=2','a=2,d=1','a=2,d=2') 画出来的图就是不同a,d组合下y随t变化的图形,你只有尝试不同的a,d的组合才可以,当然如果你是for a = 1:3, for d = 1:4,那就是12种组合,图形里有12根线,这个你再慢慢看吧。程序的解法就是很死且很繁琐的,不要对此寄予过高期望,加上你这里参数也很多,而且想要看两个变量对整个一条曲线的影响,这无疑是需要很多尝试的,计算也很费时。当然你这里dy/dt有特殊的形式,其实要找y不变或者下降就是找 dy/dt <= 0的条件, 这就是说d*m(1-n*x/y+p) <= 0,给定你这里dm都是正整数,那就是说要保证 1+p <= nx/y,所以你要看什么情况下y是否下降或者不变,就只要看左边这个不等式什么时候满足就可以了。虽然这个不等式里没有a和d,但是由于解出来的x,y是和a,d有关的,所以最终会和a,d有关系。这样解析地分析比数值计算的结果更加清晰,还不如这么做。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值