I'm not understanding why this error occurs: Error: Unexpected MATLAB expression

조회 수: 2 (최근 30일)
Matt
Matt 2013년 10월 17일
댓글: Jan 2013년 10월 17일
What i entered in console and received
>> newton(x^3-x,3x^2-1,-1,1e-5,20)
??? newton(x^3-x,3x^2-1,-1,1e-5,20)
|
Error: Unexpected MATLAB expression.
function used is as follows
function [ x, ex ] = newton( f, df, x0, tol, nmax )
%
% NEWTON Newton's Method
% Newton's method for finding successively better approximations to the
% zeroes of a real-valued function.
%
% Input:
% f - input funtion
% df - derived input function
% x0 - inicial aproximation
% tol - tolerance
% nmax - maximum number of iterations
%
% Output:
% x - aproximation to root
% ex - error estimate
%
% Example:
% [ x, ex ] = newton( 'exp(x)+x', 'exp(x)+1', 0, 0.5*10^-5, 10 )
if nargin == 3
tol = 1e-4;
nmax = 1e1;
elseif nargin == 4
nmax = 1e1;
elseif nargin ~= 5
error('newton: invalid input parameters');
end
f = inline(f);
df = inline(df);
x(1) = x0 - (f(x0)/df(x0));
ex(1) = abs(x(1)-x0);
k = 2;
while (ex(k-1) >= tol) && (k <= nmax)
x(k) = x(k-1) - (f(x(k-1))/df(x(k-1)));
ex(k) = abs(x(k)-x(k-1));
k = k+1;
end
end

채택된 답변

Jan
Jan 2013년 10월 17일
편집: Jan 2013년 10월 17일
You are missing a multiplication operator:
Try
newton(x^3-x,3 * x^2-1,-1,1e-5,20)
^
inserted
Edit: I just noticed, that the function header of newton obviously expects strings ast input arguments. Like in the example given:
[ x, ex ] = newton( 'exp(x)+x', 'exp(x)+1', 0, 0.5*10^-5, 10 )
You will have to alter your function call accordingly. However, the Matlab error resulted from the missing multiplication operator.
  댓글 수: 2
Matt
Matt 2013년 10월 17일
Thank you very much, something so simple yet can be a pain. The life of syntax...
Jan
Jan 2013년 10월 17일
And the error message has been very specific.

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

추가 답변 (0개)

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by