Conversion to logical from sym is not possible? please help

3 次查看(过去 30 天)
I am trying to build a newton raphson program to solve nonlinear equations. this is the function. for some reason i cant get it to work.
% Program Code of Newton-Raphson Method in MATLAB
a=input('Enter the function in the form of variable x:','s');
x(1)=input('Enter Initial Guess:');
error=input('Enter allowed Error:');
f=inline(a)
dif=diff(sym(a));
d=inline(dif);
for i=1:100
x(i+1)=x(i)-((f(x(i))/d(x(i))));
err(i)=abs((x(i+1)-x(i))/x(i));
if err(i)<error
break
end
end
root=x(i)
here is my script to call the function
where i recieve the error message.
syms x
y =@(x)(exp((x-2)^2)-2);
%dy = diff(y(x));
hello(y,0,0.001)

回答(1 个)

Walter Roberson
Walter Roberson 2017-9-25
Using inline() is not recommended unless you are stuck at MATLAB 5.0 or earlier. Use matlabFunction() instead for this case.
  2 个评论
Walter Roberson
Walter Roberson 2017-9-25
"g = matlabFunction(f) converts the symbolic expression or function f to a MATLAB® function with handle g. The function can be used without Symbolic Math Toolbox™."

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by