一个MATLAB中求解方程solve函数,一直错误,求帮助

我用MATLAB中solve函数求解时,如下式:

[h]=solve('(h.*(sqrt(z2.^2+(r11-h).^2)))./((r11-h).*(sqrt(z1.^2+h.^2)))=c1/c2');

其中,z1,r11,c1,c2都是已知的,为啥运行说是一个无效的方程

首先,你有语法错误。solve里的表达是默认为右端为零的方程,所以不能出现“=”,你看我下面做得就可以,把右边的那项移到左边这边来。其次,可能是solve不支持向量操作。
我把方程改成
[h]=solve('(h*(sqrt(z2^2+(r11-h)^2)))/((r11-h)*(sqrt(z1^2+h^2)))-c1/c2');
就解出h来了
h =

(2*c1^2*r11*h-h^2*c1^2+c2^2*z2^2-c1^2*r11^2-2*h*c2^2*r11+h^2*c2^2+c2^2*r11^2)^(1/2)*h/(-r11+h)/c1
-(2*c1^2*r11*h-h^2*c1^2+c2^2*z2^2-c1^2*r11^2-2*h*c2^2*r11+h^2*c2^2+c2^2*r11^2)^(1/2)*h/(-r11+h)/c1
如果你要解一个方程组,尝试把方程组都列出来或者用其它命令。
建议你使用命令help solve来更详细了解这个命令及相关的其它命令

参考资料:学习心得

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-17
LS错了,没控制变量,求的是Z的解析解,而且不是不能出现=号,LS貌似把.都去掉了就算出来,大概常量不需要在运算符号加点吧。。。
[h]=solve('(h*(sqrt(z2^2+(r11-h)^2)))/((r11-h)*(sqrt(z1^2+h^2)))=c1/c2','h')
Warning: Explicit solution could not be found.
没有解析解本回答被提问者采纳
相似回答