2016-12-23 4 views
1

как я могу дифференцировать функцию в matlab? Я попытался с:.дифференцировать функцию в matlab

syms x; 
f = 3x^2 + 2; 
A = diff(f); 
disp(A); 

Моя проблема теперь я хочу, чтобы дать значение ха после (например, А (х = 1), и я не знаю, как

+1

Так ... 'подводные лодки (А, х, 1)'? –

+0

..... 'A = 6 * x?' –

ответ

2

Во-первых, есть ошибка в вашем код, вы не может означать умножение, вам нужно написать 3*x^2 вместо 3x^2.

Кроме того, в случае, если вы подаете функцию вектор, а не скаляр, вы должны использовать поэлементно операции (в том числе . до полномочия, умножение и т. д.), поэтому это становится 3*x.^2.

Кроме того, 2 варианта:

syms x; 
f = 3*x.^2 + 2; 

1) определяют A как вы сделали и использовать subs заменить x, скажем, 1.

A = diff(f); 
subs(A,x,1); 

2) определить A как анонимную функцию и назвать ее более легко.

A = @(y) subs(diff(f),x,y) 

Теперь A можно легко назвать с различными значениями

A(1) 
ans = 6 

A(2) 
ans = 12 

Ссылки на документацию по поэлементно опс, subs и анонимные функции:

https://uk.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html https://uk.mathworks.com/help/symbolic/subs.html https://uk.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html

+0

Как я могу дифференцировать функциональный дескриптор, такой как @ (x) x^3 + 2? – zer0kai

+1

Почему вы хотите это сделать? Если у вас есть набор инструментов символической математики, вы можете сделать это выше? Вам не нужна анонимная функция, если вы определяете ее как символическую функцию, например, в вашем вопросе ... – Wolfie

+0

Я хочу сделать функцию, в которой я могу ввести свою функцию и afaik, это только работа с функцией-handle. – zer0kai

0

Вам нужно matlabfunction функция.

matlabFunction Создать файл MATLAB или анонимную функцию из симво

0

Изменить код так:

syms x; 
f = 3*x^2 + 2; % You missed a * here 
A(x) = diff(f); % This creates a symfun 
A(1)    % This gives the value of A at x=1