Marcin правильно. Не используйте функции inline
. Они больше не используются. Если вы хотите дифференцировать использование Symbolic Math Toolbox, используйте sym
для создания функции для вас, а затем используйте ее для ее дифференциации.
Таким образом, сделать что-то вроде этого, считая, что x
является независимой переменной:
syms x;
fprintf('Newton Raphson\n');
Fun=input('\nType a function \n');
xi=input('\nType initial value\n');
out = sym(Fun);
def = diff(out);
dxi = subs(def, 'x', xi);
Заметим, что, поскольку формула является символическим, если вы хотите заменить x
с определенным значением, вам нужно использование subs
. С subs
мы заменяем x
нашим начальным значением, хранящимся в xi
.
Давайте сделаем сквозной пример. Вот что я получаю, когда я запускаю этот код, со своими входами и выходами:
Newton Raphson
Type a function
x^2 + x + 3
Type initial value
4
out
бы функция, которая была вход в систему:
out =
x^2 + x + 3
xi
бы начальное значение:
xi =
4
Производная функции хранится в def
:
def =
2*x + 1
Наконец, подставив наше первоначальное значение в нашей производной хранится в dxi
, и, таким образом, дает:
dxi =
9
Успехов!
Что вы хотите сделать? Также [inline] (http://au.mathworks.com/help/matlab/ref/inline.html) обесценивается. Лучше использовать анонимные функции. – Marcin