Метод Ньютона-Рафсона в Matlab

Я новичок в Matlab, и мне нужно создать функцию, которая делает n итераций метода Ньютона-Рафсона с начальным приближением x = a. Это начальное приближение не считается целым числом, и другое требование состоит в том, что требуется цикл for. Я посмотрел другие похожие вопросы, опубликованные, но в моем случае я не хочу использовать цикл while.

Это то, что мои входные данные должны быть:

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.

И вот мой код до сих пор.

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

Когда я пытаюсь вызвать функцию, я получаю сообщение об ошибке:

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)));

Вопрос в том как мне использовать эту функцию VPA? Конечно, остальная часть моего кода, вероятно, также не на 100% правильна, но любая помощь, которая решает проблему vpa или исправляет другие части моего кода, будет принята с благодарностью.

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос