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/06/29 19:13:08
![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',](/uploads/image/z/2714803-43-3.jpg?t=matlab%E8%A7%A34%E5%85%83%E4%BA%8C%E6%AC%A1%E6%96%B9%E7%A8%8B%E7%BB%84%2C%E6%80%8E%E4%B9%88%E9%83%BD%E7%AE%97%E4%B8%8D%E5%AF%B9.t1%3D0.0001241%3Bt2%3D0.0001272%3Bt3%3D0.0000313%3Ba%3D0.3%3Bb%3D0.45%3Bsyms+x+y+r+c+eq1%3Dx%5E2%2B%28y-b%29%5E2-%28r%2Bc%2At1%29%5E2%3Beq2%3D%28x-a%29%5E2%2B%28y-b%29%5E2-%28r%2Bc%2At2%29%5E2%3Beq3%3Dx%5E2%2By%5E2-r%5E2%3Beq4%3D%28x-a%29%5E2%2By%5E2-%28r%2Bc%2At3%29%5E2%3B%5Bx+y+r+c%5D%3Dsolve%28eq1%2Ceq4%2Ceq3%2Ceq2%2C%27x%27%2C)
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])));