如何用matlab解方程

来源:百度知道 编辑:UC知道 时间:2024/05/14 04:26:26
哪位高手可以帮我用matlab解下面方程组啊??告诉我大概方法也好,我是才接触matlab的新手
根号[(a-1700)2+(b-700)2]=k*x
根号[(a-2900)2+(b-900)2]=k*x
根号[(a-2500)2+(b-1900)2]=(k-1.37)*x
根号[(a-1400)2+(b-2200)2]=(k+1.14)*x

定义m函数fc:
function y=fc(p)
a=p(1);
b=p(2);
k=p(3);
x=p(4);
y=[sqrt((a-1700)^2+(b-700)^2)-k*x;
sqrt((a-2900)^2+(b-900)^2)-k*x ;
sqrt((a-2500)^2+(b-1900)^2)-(k-1.37)*x ;
sqrt((a-1400)^2+(b-2200)^2)-(k+1.14)*x;
];

命令行输入
fsolve('fc',[10 10 10 10],optimset('TolCon',1e-15,'TolFun',1e-22,'MaxIter',1e8,'MaxFunEvals',1e12,'TolX',1e-10));vpa(ans,4)

结果:
ans =

-2509.
-1727.
.1150e7
.4911e-2

这是个数值解,改变初值结果会有变化,这可能是因为精度的问题。
没办法,这是数值解法的缺陷。