Troubles on differentiation inside a function
显示 更早的评论
Do you guys know how to differentiate a function inside a function?
I want to input a function, ask the code to differentiate it and use both function and its derivative in a loop.
function [zero] = newton_raphson (x0,precisao,funcao)
%Estimates the root of a function
syms x
f=funcao(x);
derivada=diff(f,x);
x(1)=x0;
erro=realmax;
i=1;
while erro > precisao
x(i+1)=x(i)-f(x(i))/derivada(x(i));
erro = abs (x(i+1)-x(i));
i=i+1;
end
disp(['The estimate root is ' num2str(x(end)) ' with ' num2str(i) ' iteractions.'])
return
The error message when i enter "newton_raphson(2,10^-3, @(x) x+1): ??? Error using ==> mupadmex Error in MuPAD command: Index exceeds matrix dimensions.
Error in ==> sym.sym>sym.subsref at 1366
B = mupadmex('mllib::subsref',A.s,inds{:});
Error in ==> newton_raphson at 16
x(i+1)=x(i)-f(x(i))/derivada(x(i));
Thanks!
3 个评论
Sargondjani
2012-7-21
you should give the error message
note that 'error' is a reserved matlab command, so you shouldnt use it.
Ryan
2012-7-21
I'm guessing f isn't in a proper format for diff. What is "func"? What class is f? What does unique(f) return?
Arthur
2012-7-22
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Arithmetic Operations 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!