Can someone please help me fix my while loop code?

조회 수: 2 (최근 30일)
Bri
Bri 2014년 9월 17일
답변: A Jenkins 2014년 9월 17일
I have to create a function m file called myfirstzero(f,a) which takes two inputs:
f: A function handle which you may assume will represent a polynomial.
a: A real number.
Does: Uses a while loop to find the smallest n such f(n)(a) = 0. Note that this means the nth derivative at x = a and note that n = 0 is fair game, where the 0th derivative of a function is just the function itself.
Returns: This value of n.
This is my code:
function f = myfirstzero(f,a);
syms x
n = 0;
d=abs(subs(f(x),a));
while(d >0);
d=subs(diff(f(x),n),a);
n=n+1;
end
f=n;
end
Here is the sample data I have been using along with the correct answer.
myfirstzero(@(x) 2*x^3-3*x^2-12*x+6,2)
ans = 1
myfirstzero(@(x) x^3,0) ans=0
myfirstzero(@(x) x^3+2,0)
ans = 1
myfirstzero(@(x) x^6-5*x^5-2*x^4-x^3+x^2-x+10,3)
ans = 7
My code is not providing the correct answers for all of these, these are the answers my code is getting respectfully, 1,0,2,1. If someone could please let me know what is wrong with my code I would greatly appreciate it.
Thanks
  댓글 수: 1
Adam
Adam 2014년 9월 17일
It would help if you could take time to fill in the Products field for your question.
Since 'syms' I understand is part of the Symbolic Math Toolbox it would be useful to add that information as many of us do not have that toolbox.

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

채택된 답변

A Jenkins
A Jenkins 2014년 9월 17일
Since this appears to be homework, I won't give you the answer directly, but you have two bugs.
In order to see the first, you can use the debugger. Go into your editor and select the line of code where you check the while (d>0) loop, and add a breakpoint. Then run your last polynomial, where it should run through 7 times. When the debugger stops, it will be on that line, so you can go into the workspace or command window and look at your values. What is the value of n? What will the result of (d>0) be?
Once you learn how to use the debugger, you can do the same thing with the line where you update n=n+1, to help you understand what is wrong with that one.
After I fixed those two bugs, I got the correct answers for your sample data.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Number Theory에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by