VarName是列向量,为什么求的结果是空集

syms x y z
c=299792458
i=1;

eq1=((x-13138)^2+(y-9470)^2+(z+6.50)^2)^(1/2)-((x^2)+(y^2)+(z^2))^(1/2)==c*(VarName2(1,i)-VarName1(1,i));

eq2=((x-26062)^2+(y-16098)^2+(z+193.33)^2)^(1/2)-((x^2)+(y^2)+(z^2))^(1/2)==c*(VarName3(1,i)-VarName1(1,i));

eq3=((x-3368)^2+(y+25034)^2+(z+263.03)^2)^(1/2)-((x^2)+(y^2)+(z^2))^(1/2)==c*(VarName4(1,i)-VarName1(1,i));

[x,y,z]=solve(eq1,eq2,eq3,x,y,z);
x=subs(x),y=subs(y),z=subs(z);

你好,很有可能是空集,因为matlab符号工具箱太拉跨了,很多都无法计算出显式的表达式,所以建议用fsolve求解啊。

clc;clear
syms x y z real
c=299792458;
i=1;
VarName1 = 1e-5;
VarName2 = 2e-5;
VarName3 = 3e-5;
VarName4 = 4e-5;
eq1=sqrt((x-13138)^2+(y-9470)^2+(z+6.50)^2)-sqrt(((x^2)+(y^2)+(z^2)))-c*(VarName2(1,i)-VarName1(1,i));
eq2=sqrt((x-26062)^2+(y-16098)^2+(z+193.33)^2)-((x^2)+(y^2)+(z^2))-c*(VarName3(1,i)-VarName1(1,i));
eq3=sqrt((x-3368)^2+(y+25034)^2+(z+263.03)^2)-sqrt((x^2)+(y^2)+(z^2))-c*(VarName4(1,i)-VarName1(1,i));
eq = matlabFunction([eq1;eq2;eq3]);
xyz=fsolve(@(x)eq(x(1),x(2),x(3)), 100*(2*rand(3,1)-1))

但是这竟然没有获得数值解,说明你的数据存在问题,自己看看数据哪方面的问题吧