Root finder matlab code is not displaying result

I wrote this code below. It works without errors. However I can't see the result.
It finds the nth root of w, starting from guess g.
w=9;
g=5;
n=2;
function result=findRoot(w,g,n)
if (abs(newGuess-g)<(g*0.0001))
result = newGuess;
disp(result);
else
newGuess = (g - g^n - w) / (n*g^(n-1));
result = findRoot(w, newGuess,n);
disp(result);
end
end
I appreciate any help. Thank you.

댓글 수: 2

One problem is that you are calling your function from within the function:
result = findRoot(w, newGuess,n);
This will lead to ‘infinite recursion’, and so no output.
Ceyda Elcin Kaya
Ceyda Elcin Kaya 2019년 2월 10일
편집: Ceyda Elcin Kaya 2019년 2월 10일
Out of memory. The likely cause is an infinite recursion within the program.
yep the exact problem I'm facing with right now. I will try to find a solution.
edit: i made it i guess. only problem left is that now it displays infinetely
w=9;
g=5;
n=2;
findRoot(w,g,n);
function [result]=findRoot(w,g,n)
newGuess=0;
while(abs(newGuess-g)>g*0.0001)
newGuess = (g - g^n - w) / (n*g^(n-1));
%result = findRoot(w, newGuess,n);
disp(newGuess)
end
result = newGuess;
disp(newGuess);
end

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

답변 (1개)

Anand Shirke
Anand Shirke 2019년 2월 10일

0 개 추천

Maybe the problem is while declaring the function, I would suggest you to declare the function in this way
function [result]=findRoot(w,g,n)
..
.....
end
After saving the code, type in command window :
findRoot(9,5,2)

댓글 수: 1

I did what you say. Now I'm getting a new error.
Function with duplicate name "findRoot" cannot be defined.
But my function is defined.

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

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

제품

릴리스

R2018b

질문:

2019년 2월 10일

편집:

2019년 2월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by