Undefined function 'abs' for input arguments of type 'function_handle'

3 Ansichten (letzte 30 Tage)
bdlawr
bdlawr am 9 Nov. 2017
Kommentiert: Walter Roberson am 15 Nov. 2017
function [root,rootHistory, iter,errorValue]=myNewton(fh,dfh,initialGuess, tol , maxIter )
numLoop = 0;
rootHistory = [];
x = initialGuess;
a = @(x)fh;
while abs(a) >= tol
x1 = initialGuess - fh/dfh;
initialGuess = x1;
numLoop = numLoop + 1;
rootHistory = [rootHistory x1];
if numLoop == maxIter
break
end
end
root = x1;
iter = numLoop;
errorValue = abs(fh(root));
end
I don't know why it is giving me this error statement. There are also other syntax error in my code as well. Can someone help please? The instructions are in the PDF
  1 Kommentar
bdlawr
bdlawr am 9 Nov. 2017
when i take out the "abs" it gives me this ==>
Undefined operator '>=' for input arguments of type 'function_handle'.
perhaps there is something wrong with my function handle? Sorry new to matlab...

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
Walter Roberson am 9 Nov. 2017
You need to change
a = @(x)fh;
to
a = fh(x);
You need to change
to
x1 = initialGuess - fh(SOMEINPUT)/dfh(SOMEINPUT);
You will need to figure out what is appropriate for SOMEINPUT.
You will also need to change a somewhere in the loop.
  6 Kommentare
bdlawr
bdlawr am 9 Nov. 2017
Bearbeitet: Walter Roberson am 15 Nov. 2017
function [root,rootHistory, iter,errorValue]=myNewton(fh,dfh,initialGuess, tol , maxIter )
numLoop = 0;
rootHistory = [];
x = initialGuess;
a = fh(x);
while a >= tol
x1 = initialGuess - fh(x)/dfh(x);
initialGuess = x1;
numLoop = numLoop + 1;
rootHistory = [rootHistory x1];
if numLoop == maxIter
break
end
end
root = x1;
iter = numLoop;
errorValue = abs(fh(root));
end
Walter Roberson
Walter Roberson am 15 Nov. 2017
In the first position, are you passing in
x.^3 + 2*x.^2 - 10*x
or are you passing in
@(x) x.^3 + 2*x.^2 - 10*x
?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu AVEVA PI Server Access finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by