Оценка символической функции

Я хочу найти cos(5). Почему это выражение неверно:

syms x
f=sin(x)
disp(diff(f)(5))

Ошибка

Line: 3 Column: 12
Indexing with parentheses '()' must appear as the last operation of a valid indexing expression.

person user123456    schedule 12.02.2020    source источник


Ответы (2)


Ваша ошибка не имеет ничего общего с символическими переменными.

Это вызвано оператором diff(f)(5), что не позволяет синтаксис MATLAB (начиная с R2019b). MATLAB интерпретирует это как попытку пользователя получить доступ к 5-му элементу некоторого промежуточного результата. Если вы хотите узнать фактическое значение производной от f в x=5, вам придется подставить желаемое значение x (используя subs) и преобразовать его в какой-либо числовой формат (например, double):

syms x
f = sin(x)
disp(double(subs(diff(f),x,5))) % substitute x and convert to double
person Dev-iL    schedule 12.02.2020

Y = cos(x) просто предоставит значение косинуса x. Или все х.

Я думаю, что в вашем коде: disp(diff(f(5))) должно работать.

person Ayan Chowdhury    schedule 12.02.2020