Método Newton-Raphson em Matlab
Eu sou novo no matlab e preciso criar uma função que não faça iterações do método Newton-Raphson com a aproximação inicial x = a. Essa aproximação inicial não conta como uma interação e outro requisito é que um loop for seja necessário. Eu olhei para outras perguntas semelhantes postadas, mas no meu caso eu não quero usar um loop while.
Isto é o que minhas entradas devem ser:
mynewton(f,a,n) which takes three inputs:
f: A function handle for a function of x.
a: A real number.
n: A positive integer.
E aqui está o meu código até agora.
function r=mynewton(f,a,n)
syms x;
z=f(x);
y=a;
for i=1:n
y(i+1)=y(i)-(z(i)/diff(z(i)));
end
r=y
end
Quando tento chamar a função, recebo um erro dizendo:
Error in MuPAD command: DOUBLE cannot convert the input expression into a double array.
If the input expression contains a symbolic variable, use the VPA function instead.
Error in mynewton (line 6)
y(i+1)=y(i)-(z(i)/diff(z(i)));
A questão é como eu uso essa função VPA? Concedido que o restante do meu código provavelmente não esteja 100% correto, mas qualquer ajuda que resolva o problema do vpa ou corrija as outras partes do meu código seria muito apreciada.
Obrigado!