Производная суммы - это сумма производных каждого элемента ... поэтому нам нужно найти производную только один раз (вы можете сделать это вручную, если это простая функция, как в вашем примере с игрушкой). , но мы делаем это в общем виде, используя Symboli c Math Toolbox):
syms x y z % declaring 3 symolic variables
F = 1/(norm([x,y,z])); % declaring a function
f = diff(F,x) % calculate the derivative with regard to the symbolic variable x
f = - (abs (x) * sign (x)) / (abs (x) ) ^ 2 + abs (y) ^ 2 + abs (z) ^ 2) ^ (3/2)
теперь у вас есть разные варианты. Вы можете использовать subs
для оценки функции f
(просто присвойте числовые c значения x
, y
и z
и вызовите subs(f)
. Или вы создаете дескриптор функции (цифра c) с использованием matlabFunction
(я так предпочитаю)
fnc = matlabFunction(f); % convert to matlab function
Затем вам нужно просто суммировать созданный вами вектор (ну, вам нужно чтобы суммировать сумму каждого из двух векторных элементов ...)
% create arbitrary vector
n = 10;
x = rand(n+1,3);
% initialize total sum
SumFnc = 0;
% loop through elements
for i = 1:n
% calculate local sum
s = x(i,:)+x(i+1,:);
% call derivative-function + sum up
SumFnc = SumFnc + fnc(s(1),s(2),s(3));
end