matlab解4元二次方程组,怎么都算不对.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;[x y r c]=solve(eq1,eq4,eq3,eq2,'x',

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 07:35:06
matlab解4元二次方程组,怎么都算不对.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;[x y r c]=solve(eq1,eq4,eq3,eq2,'x',

matlab解4元二次方程组,怎么都算不对.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;[x y r c]=solve(eq1,eq4,eq3,eq2,'x',
matlab解4元二次方程组,怎么都算不对.
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;
[x y r c]=solve(eq1,eq4,eq3,eq2,'x','y','r','c')

matlab解4元二次方程组,怎么都算不对.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;[x y r c]=solve(eq1,eq4,eq3,eq2,'x',
原因很简单,就是返回的参数值是按照你后边的顺序来.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])));