MATLAB中solve函数的问题>> NodeENodeE =-20 129 4>> distancedistance =22.6525 13.4046NodeE 和distance都是有值的,但我用solve函数解包括NodeE和distance的方程结时,却被看成是符号了,导致x1,y1等于一连串的表达式>> [
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/19 22:26:30
![MATLAB中solve函数的问题>> NodeENodeE =-20 129 4>> distancedistance =22.6525 13.4046NodeE 和distance都是有值的,但我用solve函数解包括NodeE和distance的方程结时,却被看成是符号了,导致x1,y1等于一连串的表达式>> [](/uploads/image/z/1633540-4-0.jpg?t=MATLAB%E4%B8%ADsolve%E5%87%BD%E6%95%B0%E7%9A%84%E9%97%AE%E9%A2%98%3E%3E+NodeENodeE+%3D-20+129+4%3E%3E+distancedistance+%3D22.6525+13.4046NodeE+%E5%92%8Cdistance%E9%83%BD%E6%98%AF%E6%9C%89%E5%80%BC%E7%9A%84%2C%E4%BD%86%E6%88%91%E7%94%A8solve%E5%87%BD%E6%95%B0%E8%A7%A3%E5%8C%85%E6%8B%ACNodeE%E5%92%8Cdistance%E7%9A%84%E6%96%B9%E7%A8%8B%E7%BB%93%E6%97%B6%2C%E5%8D%B4%E8%A2%AB%E7%9C%8B%E6%88%90%E6%98%AF%E7%AC%A6%E5%8F%B7%E4%BA%86%2C%E5%AF%BC%E8%87%B4x1%2Cy1%E7%AD%89%E4%BA%8E%E4%B8%80%E8%BF%9E%E4%B8%B2%E7%9A%84%E8%A1%A8%E8%BE%BE%E5%BC%8F%3E%3E+%5B)
MATLAB中solve函数的问题>> NodeENodeE =-20 129 4>> distancedistance =22.6525 13.4046NodeE 和distance都是有值的,但我用solve函数解包括NodeE和distance的方程结时,却被看成是符号了,导致x1,y1等于一连串的表达式>> [
MATLAB中solve函数的问题
>> NodeE
NodeE =
-20 12
9 4
>> distance
distance =
22.6525 13.4046
NodeE 和distance都是有值的,但我用solve函数解包括NodeE和distance的方程结时,却被看成是符号了,导致x1,y1等于一连串的表达式
>> [x1,y1]=solve('(x-NodeE(1,1))^2+(y-NodeE(2,1))^2=distance(1)^2','(x-NodeE(1,2))^2+(y-NodeE(2,2))^2=distance(2)^2','x,y')%这里NodeE被全看成符号了!
但是,把x1(1)的表达式复制了再运行,能得到结果
请问要怎样解决?
MATLAB中solve函数的问题>> NodeENodeE =-20 129 4>> distancedistance =22.6525 13.4046NodeE 和distance都是有值的,但我用solve函数解包括NodeE和distance的方程结时,却被看成是符号了,导致x1,y1等于一连串的表达式>> [
实际上 solve 函数默认的都把变量当作sym来运算
计算出来的结果都是sym对象.
为什么呢?追去更高的准确度.
譬如solve('x=32/3')计算出来的是32/3 而不是小数
sym对象计算出来的是一个表达式,而不是数值.
如果您想要得到数值结果的话,再用一个函数eval即可
[x1,y1]=solve('(x-NodeE(1,1))^2+(y-NodeE(2,1))^2=distance(1)^2','(x-NodeE(1,2))^2+(y-NodeE(2,2))^2=distance(2)^2','x,y');
x1=eval([x1]);
y1=eval([y1]);