필터 지우기
필터 지우기

system of non linear functions

조회 수: 17 (최근 30일)
Lucrezia Cester
Lucrezia Cester 2019년 12월 13일
댓글: Lucrezia Cester 2019년 12월 13일
Hello,
I get an error saying not enough input arguments.
I literally tried to go step by step from the matlab tutorial for non linear functions.
Do you know what might be wrong?
Thanks!
function F = root2d(x)
F(1) = 97-(1/sqrt(2))*(exp((1i)*(136)*x(1)))- exp((1i)*105*x(2))*(1/sqrt(2));
F(2) = 51-(1/sqrt(2))*(exp((1i)*(51)*x(1)))- exp((1i)*14*x(2))*(1/sqrt(2));
fun = @root2d;
x0 = [0,0];
x = fsolve(fun,x0)
  댓글 수: 1
Star Strider
Star Strider 2019년 12월 13일
Your code runs for me without error:
function F = root2d(x)
F(1) = 97-(1/sqrt(2))*(exp((1i)*(136)*x(1)))- exp((1i)*105*x(2))*(1/sqrt(2));
F(2) = 51-(1/sqrt(2))*(exp((1i)*(51)*x(1)))- exp((1i)*14*x(2))*(1/sqrt(2));
end
fun = @root2d;
x0 = [0,0];
x = fsolve(fun,x0)
(I added an end to the function because I am running it inside another function I use to test Answers functions.)
It produces a normal termination for fsolve, and these parameter estimates:
x =
0.000514467767515 - 0.082745912708573i -0.029252385734369 - 0.107158749735724i

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

채택된 답변

Steven Lord
Steven Lord 2019년 12월 13일
It's unclear from what you've posted whether the last three lines of your code:
fun = @root2d;
x0 = [0,0];
x = fsolve(fun,x0)
are inside root2d.m or outside. They need to be outside of root2d.m, otherwise you will either receive an error about not enough input arguments (if you call root2d with no input arguments) or (eventually) an error about the recursion limit or simply a crash (if you call root2d with an input argument that has at least two elements.)
Why would you receive the recursion limit error if you call this with an input argument?
Your first call to root2d would call fsolve
which would call root2d which would call fsolve
which would call root2d which would call fsolve
which would call root2d which would call fsolve ...
Break this infinite loop by not calling fsolve inside root2d to solve the system computed by root2d.
  댓글 수: 1
Lucrezia Cester
Lucrezia Cester 2019년 12월 13일
yup, thank you very much! that was the problem! the lines had to be outisde

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Systems of Nonlinear Equations에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by