作业帮 > 综合 > 作业

MATLAB求解一个四元二次方程,有错误,求教!代码附.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 13:37:01
MATLAB求解一个四元二次方程,有错误,求教!代码附.
>> c=299792.458
c =
2.9979e+005
>> syms x y z k;
eq1='(x-8747).^2+(y-15150).^2+(z-10100).^2-(c*0.0549354*(1+k))=0';
eq2='(x+9756).^2+(y-16898).^2+(z-5228).^2-(c*0.0489226*(1+k))=0';
eq3='x.^2+(y-10100).^2+(z-17494).^2-(c*0.0491307*(1+k))=0';
eq4='(x+12370).^2+(y-7142).^2+(z-14284).^2-(c*0.0489244*(1+k))=0';
[x,y,z,k]=solve(eq1,eq2,eq3,eq4,'x,y,z,k')
Error using solve>getEqns (line 292)
' (x-8747).^2+(y-15150).^2+(z-10100).^2-(c*0.0549354*(1+k))=0 ' is not a valid expression or equation.
Error in solve (line 141)
[eqns,vars,options] = getEqns(varargin{:});
c=299792.458;
syms x y z k;
eq1=(x-8747).^2+(y-15150).^2+(z-10100).^2-(c*0.0549354*(1+k));
eq2=(x+9756).^2+(y-16898).^2+(z-5228).^2-(c*0.0489226*(1+k));
eq3=x.^2+(y-10100).^2+(z-17494).^2-(c*0.0491307*(1+k));
eq4=(x+12370).^2+(y-7142).^2+(z-14284).^2-(c*0.0489244*(1+k));
[x,y,z,k]=solve(eq1,eq2,eq3,eq4,'x,y,z,k')
x =
(555822939336607256281088*11031804331072098914495114835062713184651533958557499934816918600926845913310743653289583044296398^(1/2))/7470176464120976890140005531303895260786387211528783797162731684601 + 75329616793923880822357863492684471916863085607573/282919328736342312717880405879512243985712491
75329616793923880822357863492684471916863085607573/282919328736342312717880405879512243985712491 - (555822939336607256281088*11031804331072098914495114835062713184651533958557499934816918600926845913310743653289583044296398^(1/2))/7470176464120976890140005531303895260786387211528783797162731684601
y =
- (38841558428894907747545*11031804331072098914495114835062713184651533958557499934816918600926845913310743653289583044296398^(1/2))/7470176464120976890140005531303895260786387211528783797162731684601 - 10528474077527957475619054484706250922894791538395/565838657472684625435760811759024487971424982
(38841558428894907747545*11031804331072098914495114835062713184651533958557499934816918600926845913310743653289583044296398^(1/2))/7470176464120976890140005531303895260786387211528783797162731684601 - 10528474077527957475619054484706250922894791538395/565838657472684625435760811759024487971424982
z =
(311293470350480638490855*11031804331072098914495114835062713184651533958557499934816918600926845913310743653289583044296398^(1/2))/29880705856483907560560022125215581043145548846115135188650926738404 + 10547289883262420319550509725750287803421997950696/282919328736342312717880405879512243985712491
10547289883262420319550509725750287803421997950696/282919328736342312717880405879512243985712491 - (311293470350480638490855*11031804331072098914495114835062713184651533958557499934816918600926845913310743653289583044296398^(1/2))/29880705856483907560560022125215581043145548846115135188650926738404
k =
(11*11031804331072098914495114835062713184651533958557499934816918600926845913310743653289583044296398^(1/2))/1131677314945369250871521623518048975942849964 + 9840863125049547541088877255642200829048193194336/282919328736342312717880405879512243985712491
9840863125049547541088877255642200829048193194336/282919328736342312717880405879512243985712491 - (11*11031804331072098914495114835062713184651533958557499934816918600926845913310743653289583044296398^(1/2))/1131677314945369250871521623518048975942849964
再问: 额。。那为什么最后结果这么长?
再答: 这个因该是转化为了有理数,你可以用vpa转化为小数 vpa(x)
再问: vpa(x) ans = 513390.23166474719139490544431761 19126.349159781244356802452833663 这有两个数?