2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Символьное вычисление суммы ряда в Матлаб
Сообщение29.04.2019, 15:23 


26/09/17
341
Здравствуйте,
Для точного (символьного) вычисления суммы ряда в Матлаб имеется замечательная функция: symsum.
Все бы хорошо, но мой аргумент не скаляр, а матрица.
Матлаб применяет полученное символьное выражение суммы ряда к каждому элементу матрицы-аргумента (по-отдельности). Естественно, результат отличается от применения символьного выражения к матрице-аргументу в целом (например, квадрат матрицы не равен матрице, каждый элемент которой возведен в квадрат).

Я попытался применить символьное выражение к матрице в целом с помощью фунции funm(A, 'name'), которая должна применять функцию 'name' к матричному аргументу в целом. Однако, символьное выражение суммы моего ряда содержит гипер-геометрическую функцию, с котрой funm почему-то "не дружит" (выдает ошибку).

Буду признателен за любую помошь (в том числе рассматриваю варианты реализации "вне" матлаба с последующей интеграцией результата в матлаб).

Спасибо.

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение30.04.2019, 08:53 
Заслуженный участник


13/12/05
4609
Попробуйте получить явную формулу для $A^n$ и просуммируйте каждый элемент матрицы отдельно.

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение30.04.2019, 11:10 


26/09/17
341
Padawan в сообщении #1390304 писал(а):
Попробуйте получить явную формулу для $A^n$ и просуммируйте каждый элемент матрицы отдельно.

Ряд имеет очень простой вид:
$$\sum\limits_{k=0}^{\infty}\frac{A^{m+nk}}{(m+nk)!}$
Однако получить для него явную формулу в общем виде (для любых натуральных $m $ и $n$) лично мне не удалось.
Может быть Вам это под силу?

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение30.04.2019, 21:53 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
maximkarimov
Не очень понятно, в каком виде Вы хотите получить результат.
Вы хотите сумму ряда для конкретной матрицы? - это одно. (1)
Вы хотите абстрактный результат в виде функциональной зависимости от матрицы, типа $\exp A$ - это другое. (2)
И в последнем случае маловероятно, что для всех значений параметров удастся получить универсальную запись.

В случае (1) тоже все не единообразно, но полезно начать с суммирования соотв. числового ряда. Степенного. То есть с "матрицей" $1\times 1$.

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение30.04.2019, 22:08 


11/07/16
825
Сумма ряда выражается через функцию Миттаг-Леффлера от $A^n$, с которой Математика работает (не знаю, внедрена ли функция Миттаг-Леффлера в МАТЛАБ).

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение30.04.2019, 22:17 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
Функция Миттаг-Леффлера - с точностью до множителя в аккурат этот ряд. Я так понимаю, у ТС вопрос в том или ином преобразовании/вычислении, а не навешивании на его ряд бирочки с названием.
Хотя - ТС виднее.

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение30.04.2019, 23:34 


26/09/17
341
Markiyan Hirnyk в сообщении #1390443 писал(а):
Сумма ряда выражается через функцию Миттаг-Леффлера от $A^n$, с которой Математика работает (не знаю, внедрена ли функция Миттаг-Леффлера в МАТЛАБ).


Эта функция не вполне соответствует моему ряду (отличается показатель степени аргумента). Но это мелочи. Нашел реализацию функции Миттаг-Леффлера в Матлаб. Проверил. Та же самая ерунда - для матричного аргумента вычисления производятся по-элементно. Вообщем пока по-прежнему приходится вычислять итерационным методом (со всеми вытекающими).

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение30.04.2019, 23:39 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
maximkarimov
Может, приведете конкретный пример (попроще, пробный), на котором видно, что Вы считаете и что получается?

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение30.04.2019, 23:41 


26/09/17
341
Есть сильное подозрение, что в вольфрам-математике может быть та же самая проблема (для матричного аргумента - расчет только поэлементно).

-- 01.05.2019, 00:54 --

Otta в сообщении #1390489 писал(а):
maximkarimov
Может, приведете конкретный пример (попроще, пробный), на котором видно, что Вы считаете и что получается?


Пожалуйста:
$$\sum\limits_{k=0}^{\infty}\frac{A^{2+3k}}{(2+3k)!}$

Если ввести это выражение хоть в вольфрам-альфа, хоть в матлабе - можно получить соответствующие формулы. Но когда вы подставите аргумент - расчет будет корректно выполнен только если А - скаляр. А если аргумент матрица (а у меня именно так), то на выходе получаем ерунду (по-элементный расчет). Можете проверить сами - подставьте, например, прямоугольную матрицу. Очевидно, что расчет вообще не должен выполняться (в степень прямоугольную матрицу не возвести), ан нет! Матлаб выдает результат - аккуратную прямоугольную матрицу. Если углубиться и проверить что за цифирьки в матрице-результате, то сразу все становится ясно - расчет выполнен для каждого элемента матрицы по отдельности.
Понятна ли теперь проблема?

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение01.05.2019, 00:45 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
Ну не знаю. Ввела. Орет, что матрица не квадратная. Я ее понимаю )

Можно на соответствующий фрагмент кода глянуть?

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение01.05.2019, 01:04 


26/09/17
341
Otta в сообщении #1390510 писал(а):
Ну не знаю. Ввела. Орет, что матрица не квадратная. Я ее понимаю )

Можно на соответствующий фрагмент кода глянуть?


Подозреваю, что "орет" когда Вы для одного значения k просите посчитать по этой формуле, а не получить формулу для суммы ряда и подставить в нее аргумент.

Вы в какой среде работаете? В Матлабе код всего три строчки, но не понимаю как их сюда вставить, чтобы синтаксис сохранить. Подскажите как это сделать?

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение01.05.2019, 01:07 
Заслуженный участник


09/05/13
8904
∞⠀⠀⠀⠀
maximkarimov в сообщении #1390514 писал(а):
Подскажите как это сделать?

Подсветка синтаксиса > Matlab над окном ответа.
Или тег code.

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение01.05.2019, 01:12 


26/09/17
341
Otta в сообщении #1390516 писал(а):
maximkarimov в сообщении #1390514 писал(а):
Подскажите как это сделать?

Подсветка синтаксиса > Matlab над окном ответа.
Или тег code.

Используется синтаксис Matlab M
syms A k
S=symsum(A^(m+k*n)/factorial(m+k*n),k,0,inf);
f=matlabFunction(S);
f(X)
 


Для получения формулы суммы конкретного ряда прежде (выше) надо указать аргументы: m и n, а для выполнения расчета надо указать аргумент X.

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение01.05.2019, 06:42 


11/07/16
825
Вот пример а Математике:
Код:
m = MatrixFunction[#^2*MittagLefflerE[2, #] &, {{3, 1}, {0, Pi}}^3]

$\left(
\begin{array}{cc}
 729 \cosh \left(3 \sqrt{3}\right) & \frac{\pi ^6 \cosh \left(\pi ^{3/2}\right)}{\pi ^3-27}-\frac{729 \cosh \left(3 \sqrt{3}\right)}{\pi ^3-27} \\
 0 & \pi ^6 \cosh \left(\pi ^{3/2}\right) \\
\end{array}
\right)$
Код:
Map[N, m]

$\left(
\begin{array}{cc}
 65822. & 15006.4 \\
 0. & 125942. \\
\end{array}
\right)$
Цитата из справки
Цитата:
A matrix function transforms a matrix to another matrix. For convergent power series, MatrixFunction[f,m] effectively evaluates the power series for the function f with ordinary powers replaced by matrix powers

 Профиль  
                  
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение01.05.2019, 07:09 
Заслуженный участник
Аватара пользователя


08/11/11
5940
maximkarimov в сообщении #1390187 писал(а):
Однако, символьное выражение суммы моего ряда содержит гипер-геометрическую функцию, с котрой funm почему-то "не дружит" (выдает ошибку).


Вроде для гипергеометрической функции есть пакет

http://www-math.mit.edu/~plamen/software/mhgref.html

И там статья с описанием алгоритма прилагается. То ли это, что нужно, я не разбирался.

-- Вт, 30 апр 2019 21:11:41 --

А, может быть это и не то:

https://en.wikipedia.org/wiki/Hypergeom ... x_argument

-- Вт, 30 апр 2019 21:13:35 --

А вот это больше похоже на то что нужно:

https://www.mathworks.com/matlabcentral ... -arguments

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2, 3  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group