Problem running my first program
조회 수: 1 (최근 30일)
이전 댓글 표시
I'm trying to use the function fsolve to find the solution of my system of equations.
First, I defined my function NL_Syst_HW4 (see below), which is my system. My problem is when I run fsolve(NL_Syst_HW4, [0,0,0]) it tells me I don't have enough imput argument. Still, my function seems to work since it returns me value when I implement it with (say) [0,0,0].
Thanks for the help!
function [F]=NL_Syst_HW4(x)
F1=92*x(1)+75*x(2)+20*x(3)-60*exp(1);
F2=15*x(1)+16*x(2)+6*x(3)-12*exp(1);
F3=2*x(1)+3*x(2)+6*x(3)+3*(2-2*exp(1));
F=[F1,F2,F3];
end
댓글 수: 0
채택된 답변
Walter Roberson
2021년 10월 17일
fsolve(@NL_Syst_HW4, [0,0,0])
Remember that matlab processes arguments before making the calls. The argument NL_Syst_HW4 has to be processed, and at that point, matlab has no idea that a function handle is expected there. MATLAB does not look and see "oh, fsolve expects a function handle so treat NL_SYST_HW4 as a function handle": matlab processes NL_Syst_HW4 first and passes the result to fsolve.
But what is the result of processing NL_SYST_HW4? Well, that is not a variable so matlab checks to see if it is a function. Having found it to be a function, matlab calls the function with all the provided parameters.. which is no parameters at all. And then the function complained because you did not pass enough parameters.
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!