Разбиение ряда на два с нулями и значением ряда - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть следующее в таблице в matlab

k   ak
0   1
1   -0.166666667
2   0.008333333
... ...

, где ak = (-1) ^ k / (2k + 1)!но это не очень важно, все, что важно, это то, что ak является функцией от k и (-1) ^ k.

Я пытаюсь сгенерировать новый набор столбцов, как показано ниже

i   ai
0   1
1   0
2   -0.166666667
3   0
4   0.008333333
... ...

До сих пор я выяснил, что, растягивая мои индексы (увеличивая их на 2 вместо 1) и применяя функцию ak, он приближается к тому, что я хочу, но возвращает абсолютное значение.

if mod(i,2)=0
  ai=(-1)^i/factorial(2*(i/2)+1);
else
    ai=0;
end

Как я могу изменить это на то, что я хочу?

1 Ответ

0 голосов
/ 11 сентября 2018

Вы должны использовать это:

ai = (-1)^(ii/2)/factorial(2*(ii/2)+1);
% Notice ----^

Вашим операторам if - else может быть задан векторный ввод и записано в одну строку:

ai = ~mod(ii,2) .* (-1).^(ii/2)./factorial(2*(ii/2)+1);
%I used ii instead of i since i is for imaginary numbers in MATLAB
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...