Серия суммирования Матлаб
когда я пишу это в MATLAB
syms x;
f=x^3-cos(x);
g=diff(f)
он выдает put as
g =
3 * x^2 + sin (x)
теперь я хочу создать серию суммирования как
Я google и нашел команду "symsum", но она не выполняет мою необходимую задачу, когда я пишу следующие команды
syms k
symsum(k^2, 0, 10)
symsum(1/k^2,1,Inf)
это дает выход положить как
ans = 385
ans = Пи^2/6
можете ли вы, ребята, направлять меня, как я могу генерировать серию, которая производит выход как
Так что, когда я даю команду diff (Sk); он должен произвести результат как или что-то вроде этого
например, в Mathematica я могу сделать это как
ваша помощь будет большим подспорьем.
1 ответов
Я посмотрел помощь функции symsum, и у вас есть действительно хороший пример, попробуйте это:
syms x;
syms k real;
symsum(x^k/sym('k!'), k, 0, inf)
эта команда оценивает серию , и фактически оценивает в . Как вы можете видеть, вы должны указать член ряда с его зависимостью от "k". Затем в команде symsum вы должны указать, что хотите суммировать " k " от 0 до inf.
Так, например, вы можете сделать следующее:
syms x;
syms k real;
ak = (-1)^k*x^(2*k+1)/sym('(2*k+1)!');
sum_ak = symsum(ak, k, 0, inf); % gives back sin(x)
dak = diff(ak,x);
sum_dak = symsum(dak, k, 0, inf); % should give back cos(x), but does not
A5 = symsum(ak, k, 0, 5); % add only the first values of the series
DA5 = symsum(dak, k, 0, 5); % add the derivated terms of the series
можно объявить несколько символьных переменных uk и добавьте их:
syms x;
syms k real;
n = 5;
for i = 0:n
eval(['syms u',num2str(i),' real;']);
end
A = cell(1,n);
for i=1:n
A{i} = u0;
for j=1:i
eval(['A{i} = A{i} + u',num2str(j),';']);
end
end
A{3} % check the value of A{i}
надеюсь, это поможет,