Hi I am trying to solve a system of equations using fsolve or something similar with 4 variables. Please help

Equations are
r(1)= sqrt((x-15600)^2+(y-7540)^2+(z-20140)^2)-(300000(0.07074-d))
r(2)=sqrt((x-18760)^2+(y-2750)^2+(z-18610)^2)-(300000(0.07220-d))
r(3)=sqrt((x-17610)^2+(y-14630)^2+(z-13480)^2)-(300000(0.07690-d))
r(4)=sqrt((x-19170)^2+(y-610)^2+(z-18340)^2)-(300000(0.07242-d))
I am trying to use fsolve
F=nle(x) ; I am actually substitution x,y,z,d as x(1)….x(4)
Then writing the equation for F and then i do x0= a range which i dont understand at all what to pick.
And then fsolve(@nle,x0)
I am getting a lot of errors and nowhere near to my answer.

 채택된 답변

Rishav, try
function r = test(r0)
% options = optimoptions('fsolve','Display','iter'); % new as of R2013a
% options = optimset('Display','iter','TolFun',1e-8); % before R2013a
% [r,fval] = fsolve(@myfun,r0,options)
[r,fval] = fsolve(@myfun,r0)
end
function F = myfun(r)
x = r(1);
y = r(2);
z = r(3);
d = r(4);
F = [sqrt((x-15600)^2+(y-7540)^2 +(z-20140)^2)-(300000*(0.07074-d));...
sqrt((x-18760)^2+(y-2750)^2 +(z-18610)^2)-(300000*(0.07220-d));...
sqrt((x-17610)^2+(y-14630)^2+(z-13480)^2)-(300000*(0.07690-d));...
sqrt((x-19170)^2+(y-610)^2 +(z-18340)^2)-(300000*(0.07242-d))];
end
and use in the MATLAB command window
r0 = [15000 10000 20000 0];
r = test(r0)

댓글 수: 4

Thanks for your help, but i am getting this error
Undefined function or method 'optimoptions' for input arguments of type 'char'.
Also I have tried putting the myfun and test function in diff .m files and together as well, FYI
I only need values for x,y and z. I think in my assignment there is a hint that says to subtract equation 1 from the last 3. I think that makes them equal to zero. Not sure again why x=r(1)…… Sorry, i am still a rookie.
OK. The above code should work, the options part is now commented out. Once you have this code running, you can use optimset, instead of optimoptions (new as of R2013a).
The starting values used above, r0 = [15000 10000 20000 0], seem to work.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Systems of Nonlinear Equations에 대해 자세히 알아보기

질문:

2014년 3월 3일

편집:

2014년 3월 3일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by