matlab解4元二次方程组,不知道哪里出问题了,怎么都算不对.望各位大神求解
发布网友
发布时间:2022-05-15 05:31
我来回答
共1个回答
热心网友
时间:2023-10-10 03:46
原因很简单,就是返回的参数值是按照你后边的顺序来。solve并没有保证说你结果跟你后边的参数顺序一致。所以改成下边这样:
t1=0.0001241;
t2=0.0001272;
t3=0.0000313;
a=0.3;
b=0.45;
syms x y r c
eq1=x^2+(y-b)^2-(r+c*t1)^2;
eq2=(x-a)^2+(y-b)^2-(r+c*t2)^2;
eq3=x^2+y^2-r^2;
eq4=(x-a)^2+y^2-(r+c*t3)^2;
S=solve(eq1,eq4,eq3,eq2);
x=double(S.x);
y=double(S.y);
r=double(S.r);
c=double(S.c);
下边是测试代码(最后的得到是很小的数,就说明成功了,你懂得~)
% test
eq1=x.^2+(y-b).^2-(r+c*t1).^2;
eq2=(x-a).^2+(y-b).^2-(r+c*t2).^2;
eq3=x.^2+y.^2-r.^2;
eq4=(x-a).^2+y.^2-(r+c*t3).^2;
disp(sum(abs([eq1 eq2 eq3 eq4])));