当前位置 :
【matlab中用solve解方程组的问题,为何给出空矩阵,应该怎么改?>>[Xm,X0,K0]=solve('Xm/((1+Xm/X0-1)*exp(-K0))=533.34','Xm/((1+Xm/X0-1)*exp(-2*K0))=534.38','Xm/((1+Xm/X0-1)*exp(-3*K0))=566.03','Xm','X0','K0')Warning:Explicitsolutioncou】
5人问答
问题描述:

matlab中用solve解方程组的问题,为何给出空矩阵,应该怎么改?

>>[Xm,X0,K0]=solve('Xm/((1+Xm/X0-1)*exp(-K0))=533.34','Xm/((1+Xm/X0-1)*exp(-2*K0))=534.38','Xm/((1+Xm/X0-1)*exp(-3*K0))=566.03','Xm','X0','K0')

Warning:Explicitsolutioncouldnotbefound.

>Insolveat81

Xm=

[emptysym]

X0=

[]

K0=

[]

李长红回答:
  Warning:Explicitsolutioncouldnotbefound.   这句话的意思是不能找到精确解,也就是matlab里面solve函数的内部算法对于你这个方程组不适用,所以你这个方程组不能用solve求解   而且,观察你的三个方程,显然是无解的,第一式除以第二式可以得出exp(K0)=533.34/534.48   第二式除以第三式可以得出   exp(K0)=534.48/566.03   显然满足条件的K0不存在.   另外你的方程里面有表达式(1+Xm/X0-1),为什么不直接写Xm/X0呢?是(X0-1)少了括号?
胡祖宝回答:
  >>y1=Xm/(1+(Xm/X0-1)*exp(-K0));>>y2=Xm/(1+(Xm/X0-1)*exp(-2*K0));>>y3=Xm/(1+(Xm/X0-1)*exp(-3*K0));>>[XmK0X0]=solve('y1=533.34','y2=534.38','y3=566.03')Xm=533.34K0=534.38X0=566.03>>[XmK0X0]=solve('y1=533.34','y2=534.38','y3=566.03','Xm','K0','X0')Warning:Explicitsolutioncouldnotbefound.空阵……
李长红回答:
  [XmK0X0]=solve('y1=533.34','y2=534.38','y3=566.03')这一句并不是求解那三个方程组。而是求解'y1=533.34','y2=534.38','y3=566.03'这三个方程组,这三个方程组的解显然就是533.34,534.38,566.03啊!
胡祖宝回答:
  老大,我不是这个意思,我把完整的运算贴给你,难道这个不是联立方程组求解吗?[Xm,X0,K0]=solve('Xm/(1+(Xm/X0-1)*exp(-K0))-883.12','Xm/(1+(Xm/X0-1)*exp(-2*K0))-893.64','Xm/(1+(Xm/X0-1)*exp(-3*K0))-940.53','Xm','X0','K0')Warning:Explicitsolutioncouldnotbefound.>Insolveat81Xm=[emptysym]X0=[]K0=[]
李长红回答:
  这确实是要联立方程组求解,但是同学你也不能把matlab看作是万能的。有些方程组就是没有办法用solve求解,这就是事实。你的问题可以用fsolve求解,另外,你也可以自己编写程序,试试用不动点迭代法,newton法,Broyden法求解,总有合适的方法的,但是这就比较复杂了,如果你学过当然最好了,没学过的话,自己查查资料,也不难解决。加油咯
最新更新
PC端 | 移动端 | mip端
字典翻译(zidianfy.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
电话:  邮箱:
Copyright©2009-2021 字典翻译 zidianfy.com 版权所有 闽ICP备2022014709号-7
lyric 頭條新聞