2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3  След.
 
 Re: Символьное вычисление суммы ряда в Матлаб
Сообщение01.05.2019, 11:09 


26/09/17
341
g______d в сообщении #1390523 писал(а):
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


Вот что мне ответил Plamen Koev:

"I am not sure what you're trying to do that MATLAB doesn't already have implemented.The hypergeometric function of a matrix argument is "of matrix argument" in name only -- it's a symmetric series in the eigenvalues, not a regular hypergeometric series where the argument is a matrix."

Plamen

Даже не знаю что по этому поводу думать. Вы что думаете?

-- 01.05.2019, 12:41 --

Markiyan Hirnyk в сообщении #1390522 писал(а):
Вот пример а Математике:
Код:
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


Выше я уже ответил, что функция ML не соответствует моему ряду (показатель степени другой), хотя и весьма близка. При n строго больше 2 сумма ряда может быть выражена через гипер-геометрическую функцию.

Буду чрезвычайно признателен если Вы получите в Математике символьное выражение при m=2 и n=3 для моего ряда (а не значение функции ML для тех же параметров!), после чего подставите в качестве аргумента следующую матрицу:
$$\begin{pmatrix}
 1 & 2\\
 3 & 4\\
\end{pmatrix}$$ и сообщите результат (и символьное выражение и численный результат для матричного аргумента).
Спасибо.

P.S. Вольфрам-альфа в онлайне дает другое символьное выражение (не через гипер-геометрическую функцию). При этом численно, для скаляра, результат совпадает с Матлабом до 15-го знака. Проблема в том, что символьное выражение Вольфрама также невозможно применить к матричному аргументу. Например, при вышеуказанных параметрах m и n, в выражении присутствует число пи, которое нужно вычесть. Но как из матрицы вычесть скаляр?))

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


09/05/13
8904
∞⠀⠀⠀⠀
maximkarimov в сообщении #1390535 писал(а):
символьное выражение при m=2 и n=3 для моего ряда (а не значение функции ML для тех же параметров!), после чего подставите в качестве аргумента следующую матрицу:
$$\begin{pmatrix}
1 & 2\\
3 & 4\\
\end{pmatrix}$$ и сообщите результат (и символьное выражение и численный результат для матричного аргумента).

Годится?
$$\begin{bmatrix}
 17.2105  &  24.9822\\
37.4733    & 54.6839 \end{bmatrix}$$
Пока числовое, а вдруг не устроит.

-- 01.05.2019, 14:54 --

maximkarimov в сообщении #1390535 писал(а):
Вольфрам-альфа в онлайне дает другое символьное выражение (не через гипер-геометрическую функцию).

Ну она там действительно не очень-то и нужна.

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


11/07/16
825
maximkarimovПожалуйста, объясните
Цитата:
Выше я уже ответил, что функция ML не соответствует моему ряду (показатель степени другой), хотя и весьма близка. При n строго больше 2 сумма ряда может быть выражена через гипер-геометрическую функцию.

Сумма предложенного Вами ряда равна (в обозначениях цитированной статьи Вики) $A^mE_{n,m}(A^n)$, где $E_{\alpha,\beta}(z)$ - функция Миттаг-Леффлера. В Математике функция Миттаг-Лефлера обозначается
Код:
MittagLefflerE[\[Alpha],\[Beta],z]
(см. справку).
Далее, Математика производит
Код:
m = 2; n = 3;N[ MatrixFunction[#^m*MittagLefflerE[m, n, #^n] &, {{1, 2}, {3, 4}}]]

$\left(
\begin{array}{cc}
 5686.18 & 8287.09 \\
 12430.6 & 18116.8 \\
\end{array}
\right).$

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


26/09/17
341
Otta в сообщении #1390542 писал(а):
maximkarimov в сообщении #1390535 писал(а):
символьное выражение при m=2 и n=3 для моего ряда (а не значение функции ML для тех же параметров!), после чего подставите в качестве аргумента следующую матрицу:
$$\begin{pmatrix}
1 & 2\\
3 & 4\\
\end{pmatrix}$$ и сообщите результат (и символьное выражение и численный результат для матричного аргумента).

Годится?
$$\begin{bmatrix}
 17.2105  &  24.9822\\
37.4733    & 54.6839 \end{bmatrix}$$
Пока числовое, а вдруг не устроит.

-- 01.05.2019, 14:54 --


Вы сами легко можете проверить - численно. Ряд быстро сходится, поэтому достаточно 50 итераций:
Используется синтаксис Matlab M
Z=zeros(size(X));
for i=1:50
    Z=Z+X^(2+3*i)/factorial(2+3*i);
end
Z
 

Как видим, результат совсем другой:
$$\begin{bmatrix}
 13.7105 & 19.9822 \\
 29.9733 &  43.6839\\
\end{bmatrix}$$

Символьное выражение Матлаба для данных параметров m и n:
Используется синтаксис Matlab M
S =
(A^2*hypergeom([], [4/3, 5/3], A^3/27))/2
 


-- 01.05.2019, 14:28 --

Markiyan Hirnyk в сообщении #1390543 писал(а):
maximkarimovПожалуйста, объясните

Посмотрите мое сообщение выше, где приведен численный результат вычисления итеррационным методом. Он хоть не точен и с издержками времени, но, надеюсь, поможет Вам сориентироваться.

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


09/05/13
8904
∞⠀⠀⠀⠀
maximkarimov в сообщении #1390547 писал(а):
Вы сами легко можете проверить - численно. Ряд быстро сходится, поэтому достаточно 50 итераций:

Я проверила: результат именно такой.

-- 01.05.2019, 15:35 --

У Вас, во-первых, алгоритм очень нерациональный и затратный, во-вторых суммирование от нулевого индекса.

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


26/09/17
341
Otta в сообщении #1390548 писал(а):
maximkarimov в сообщении #1390547 писал(а):
Вы сами легко можете проверить - численно. Ряд быстро сходится, поэтому достаточно 50 итераций:

Я проверила: результат именно такой.


Полагаю, что Вы где-то что-то напутали при проверке. Посмотрите выше мой код для проверки итерационным методом, укажите матрицу X - наши компьютеры не могут выполняя один и тот же код с одними и теми же данными давать разный результат. Не должны!))

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


09/05/13
8904
∞⠀⠀⠀⠀
Я Вам сказала, где ошибка.

-- 01.05.2019, 15:42 --

maximkarimov в сообщении #1390317 писал(а):
$$\sum\limits_{k=0}^{\infty}\frac{A^{m+nk}}{(m+nk)!}$

maximkarimov в сообщении #1390547 писал(а):
Код:
for i=1:50
Z=Z+X^(2+3*i)/factorial(2+3*i);

Изначально $Z$ нулевая. Почувствуйте разницу.

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


26/09/17
341
Otta в сообщении #1390548 писал(а):
maximkarimov в сообщении #1390547 писал(а):
Вы сами легко можете проверить - численно. Ряд быстро сходится, поэтому достаточно 50 итераций:

Я проверила: результат именно такой.

-- 01.05.2019, 15:35 --

У Вас, во-первых, алгоритм очень нерациональный и затратный, во-вторых суммирование от нулевого индекса.


Да, действительно забыл про нулевой индекс! Спасибо! Итак, правильный код для проверки итеррационным методом такой:
Используется синтаксис Matlab M
Z=zeros(size(X));
for i=1:50
    Z=Z+X^(2+3*i)/factorial(2+3*i);
end
Z=Z+X^2/factorial(2);%  при i=0
Z
 

И он дает следующий результат (для заданной матрицы Х, m=2 и n=3):
$$\begin{bmatrix}
 17.2105& 24.9822 & \\
  37.4733& 54.6839 & \\
\end{bmatrix}$$
который, полностью совпадает с Вашим расчетом.
Вопрос - какое символьное выражение позволило Вам его получить?

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


11/07/16
825
maximkarimov Действительно, вычисление частичной суммы дает иной результат
Код:
m = 2; n = 3; N[Sum[MatrixPower[{{1, 2}, {3, 4}}, m + k*n]/(m + n*k)!, {k, 0, 100}]]

$\left(
\begin{array}{cc}
 17.2105 & 24.9822 \\
 37.4733 & 54.6839 \\
\end{array}
\right)$

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


26/09/17
341
Markiyan Hirnyk в сообщении #1390556 писал(а):
maximkarimov Действительно, вычисление частичной суммы дает иной результат
Код:
m = 2; n = 3; N[Sum[MatrixPower[{{1, 2}, {3, 4}}, m + k*n]/(m + n*k)!, {k, 0, 100}]]

$\left(
\begin{array}{cc}
 17.2105 & 24.9822 \\
 37.4733 & 54.6839 \\
\end{array}
\right)$


Чрезвычайно рад, что Математика и Матлаб считают одинаково итеррационным методом!
Однако проблема никуда не делась - как получить тот же результат аналитически для матричного аргумента?

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


11/07/16
825
Символьный результат в Математике получается так:
Код:
m = 2; n = 3; Sum[MatrixPower[{{1, 2}, {3, 4}}, m + k*n]/(m + n*k)!, {k, 0, Infinity}]
{{-((32 E^(-(5/4) - Sqrt[33]/
        2) (-11 E^(15/4) - Sqrt[33] E^(15/4) -
         11 E^(15/4 + Sqrt[33]) + Sqrt[33] E^(15/4 + Sqrt[33]) +
         22 E^((3 Sqrt[33])/4)
           Sin[1/12 (15 Sqrt[3] - 9 Sqrt[11] + 2 \[Pi])] +
         2 Sqrt[33] E^((3 Sqrt[33])/4)
           Sin[1/12 (15 Sqrt[3] - 9 Sqrt[11] + 2 \[Pi])] +
         22 E^(Sqrt[33]/4)
           Sin[1/12 (15 Sqrt[3] + 9 Sqrt[11] + 2 \[Pi])] -
         2 Sqrt[33] E^(Sqrt[33]/4)
           Sin[1/12 (15 Sqrt[3] + 9 Sqrt[11] + 2 \[Pi])]))/(33 (-5 +
         Sqrt[33])^2 (5 + Sqrt[33])^2)), (128 E^(-(5/4) - Sqrt[33]/
      2) (-E^(15/4) + E^(15/4 + Sqrt[33]) +
       2 E^((3 Sqrt[33])/4)
         Sin[1/12 (15 Sqrt[3] - 9 Sqrt[11] + 2 \[Pi])] -
       2 E^(Sqrt[33]/4)
         Sin[1/12 (15 Sqrt[3] + 9 Sqrt[11] + 2 \[Pi])]))/(3 Sqrt[
     33] (-5 + Sqrt[33])^2 (5 + Sqrt[33])^2)}, {(64 E^(-(5/4) - Sqrt[
      33]/2) (-E^(15/4) + E^(15/4 + Sqrt[33]) +
       2 E^((3 Sqrt[33])/4)
         Sin[1/12 (15 Sqrt[3] - 9 Sqrt[11] + 2 \[Pi])] -
       2 E^(Sqrt[33]/4)
         Sin[1/12 (15 Sqrt[3] + 9 Sqrt[11] + 2 \[Pi])]))/(Sqrt[
     33] (-5 + Sqrt[33])^2 (5 + Sqrt[33])^2), (32 E^(-(5/4) - Sqrt[
      33]/2) (11 E^(15/4) - Sqrt[33] E^(15/4) +
       11 E^(15/4 + Sqrt[33]) + Sqrt[33] E^(15/4 + Sqrt[33]) -
       22 E^((3 Sqrt[33])/4)
         Sin[1/12 (15 Sqrt[3] - 9 Sqrt[11] + 2 \[Pi])] +
       2 Sqrt[33] E^((3 Sqrt[33])/4)
         Sin[1/12 (15 Sqrt[3] - 9 Sqrt[11] + 2 \[Pi])] -
       22 E^(Sqrt[33]/4)
         Sin[1/12 (15 Sqrt[3] + 9 Sqrt[11] + 2 \[Pi])] -
       2 Sqrt[33] E^(Sqrt[33]/4)
         Sin[1/12 (15 Sqrt[3] + 9 Sqrt[11] + 2 \[Pi])]))/(33 (-5 +
       Sqrt[33])^2 (5 + Sqrt[33])^2)}}

Он громозкий и мне не удается привести его здесь в виде компилированной TeX формулы. Она такова
Код:
\left(
\begin{array}{cc}
-\frac{32 e^{-\frac{\sqrt{33}}{2}-\frac{5}{4}} \left(-\sqrt{33} e^{15/4}-11 e^{15/4}-11 e^{\sqrt{33}+\frac{15}{4}}+e^{\sqrt{33}+\frac{15}{4}} \sqrt{33}-2 \sqrt{33} e^{\frac{\sqrt{33}}{4}} \sin \left(\frac{1}{12} \left(15 \sqrt{3}+9 \sqrt{11}+2 \pi \right)\right)+22 e^{\frac{\sqrt{33}}{4}} \sin \left(\frac{1}{12} \left(15 \sqrt{3}+9 \sqrt{11}+2 \pi \right)\right)+22 e^{\frac{3 \sqrt{33}}{4}} \sin \left(\frac{1}{12} \left(15 \sqrt{3}-9 \sqrt{11}+2 \pi \right)\right)+2 e^{\frac{3 \sqrt{33}}{4}} \sqrt{33} \sin \left(\frac{1}{12} \left(15 \sqrt{3}-9 \sqrt{11}+2 \pi \right)\right)\right)}{33 \left(\sqrt{33}-5\right)^2 \left(\sqrt{33}+5\right)^2} & \frac{128 e^{-\frac{\sqrt{33}}{2}-\frac{5}{4}} \left(-e^{15/4}+e^{\sqrt{33}+\frac{15}{4}}-2 e^{\frac{\sqrt{33}}{4}} \sin \left(\frac{1}{12} \left(15 \sqrt{3}+9 \sqrt{11}+2 \pi \right)\right)+2 e^{\frac{3 \sqrt{33}}{4}} \sin \left(\frac{1}{12} \left(15 \sqrt{3}-9 \sqrt{11}+2 \pi \right)\right)\right)}{3 \sqrt{33} \left(\sqrt{33}-5\right)^2 \left(\sqrt{33}+5\right)^2} \\
\frac{64 e^{-\frac{\sqrt{33}}{2}-\frac{5}{4}} \left(-e^{15/4}+e^{\sqrt{33}+\frac{15}{4}}-2 e^{\frac{\sqrt{33}}{4}} \sin \left(\frac{1}{12} \left(15 \sqrt{3}+9 \sqrt{11}+2 \pi \right)\right)+2 e^{\frac{3 \sqrt{33}}{4}} \sin \left(\frac{1}{12} \left(15 \sqrt{3}-9 \sqrt{11}+2 \pi \right)\right)\right)}{\sqrt{33} \left(\sqrt{33}-5\right)^2 \left(\sqrt{33}+5\right)^2} & \frac{32 e^{-\frac{\sqrt{33}}{2}-\frac{5}{4}} \left(-\sqrt{33} e^{15/4}+11 e^{15/4}+11 e^{\sqrt{33}+\frac{15}{4}}+e^{\sqrt{33}+\frac{15}{4}} \sqrt{33}-2 \sqrt{33} e^{\frac{\sqrt{33}}{4}} \sin \left(\frac{1}{12} \left(15 \sqrt{3}+9 \sqrt{11}+2 \pi \right)\right)-22 e^{\frac{\sqrt{33}}{4}} \sin \left(\frac{1}{12} \left(15 \sqrt{3}+9 \sqrt{11}+2 \pi \right)\right)-22 e^{\frac{3 \sqrt{33}}{4}} \sin \left(\frac{1}{12} \left(15 \sqrt{3}-9 \sqrt{11}+2 \pi \right)\right)+2 e^{\frac{3 \sqrt{33}}{4}} \sqrt{33} \sin \left(\frac{1}{12} \left(15 \sqrt{3}-9 \sqrt{11}+2 \pi \right)\right)\right)}{33 \left(\sqrt{33}-5\right)^2 \left(\sqrt{33}+5\right)^2} \\
\end{array}
\right)

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


26/09/17
341
Markiyan Hirnyk в сообщении #1390559 писал(а):
Символьный результат в Математике получается так:


Спасибо! Не важно, что символьное выражение в Математике получается таким громоздским (в Матлабе всего 1 строчка) - важно что Математика с матричным аргументом корректно работает. Осталось понять как интегрировать Математику в Матлаб...

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


09/05/13
8904
∞⠀⠀⠀⠀
Левое:

(Оффтоп)

maximkarimov в сообщении #1390554 писал(а):
Итак, правильный код для проверки итеррационным методом такой:

Только, извините, это беспощадный код. Каждый раз возводить матрицу в степень и считать факториал?
Меня в детстве за это даже по рукам не били, было незачем: просто компы отказывались работать за нормальное время, и это был вопрос выживания: будет работать программа или не будет.
Хорошо еще, матрица два на два.
Код (для проверки) должен выглядеть как-то так (остаточные навыки: последний раз хоть три строчки программировала я четверть века назад, а Матлаб вообще первый раз нынче ночью вижу, нет у меня пакетов):
Код:
A0=A^2/2; D = A0;
for k=1:100
A0 = A0*A^3/((3*k)*(3*k+1)*(3*k+2));
D = D+A0;
end;

Это вовсе не в порядке нравоучения, а в порядке экономии времени и ресурсов. Меня когда-то учили обращать на это внимание, вот, делюсь.

maximkarimov в сообщении #1390554 писал(а):
Вопрос - какое символьное выражение позволило Вам его получить?

Да в общем-то тот же, что и у Вас. Я его продублировала и проверила за компанию еще и с помощью funm. Если все верно, результаты совпадают и совпадают с тем, что выше. Кстати, с неквадратной матрицей код не работает. Ругается, что неквадратная. Могу скопировать:
Цитата:
Error using symengine
Not a square matrix.


Дальше пишете в syms, что действительно нужно.
Дальше:
Код:
S= symsum(x^(m+k*n)/factorial(m+k*n),k,0,inf);
B = funm(A,S);
B1 = symsum(A^(m+k*n)/factorial(m+k*n),k,0,inf);

B и B1 численно выдают один результат - тот, что выше.
Символьная запись может различаться.
Код:
B =

[ (33^(1/2)*(33^(1/2)/2 - 5/2)^2*(33^(1/2)/6 + 1/2)*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/22 + (33^(1/2)*(33^(1/2)/2 + 5/2)^2*(33^(1/2)/6 - 1/2)*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/22,
(33^(1/2)*(33^(1/2)/2 + 5/2)^2*(33^(1/2)/6 - 1/2)*(33^(1/2) + 3)*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/132 - (33^(1/2)*(33^(1/2)/2 - 5/2)^2*(33^(1/2)/6 + 1/2)*(33^(1/2) - 3)*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/132]
[(33^(1/2)*(33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/22 - (33^(1/2)*(33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/22,
(33^(1/2)*(33^(1/2)/2 - 5/2)^2*(33^(1/2) - 3)*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/132 + (33^(1/2)*(33^(1/2)/2 + 5/2)^2*(33^(1/2) + 3)*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/132]


Код:
B1 =

[ ((33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/4 + ((33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/4 + (33^(1/2)*(33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/44 - (33^(1/2)*(33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/44,   
(33^(1/2)*(33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/33 - (33^(1/2)*(33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/33]
[  (33^(1/2)*(33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/22 - (33^(1/2)*(33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/22,
((33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/4 + ((33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/4 - (33^(1/2)*(33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/44 + (33^(1/2)*(33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/44]


-- 01.05.2019, 16:53 --

Но $n=3$ для Математики очень хороший показатель: все будет сводиться к экспоненте и синусу. Должно, по крайней мере.
Matlab до этого не додумывается.

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


26/09/17
341
Otta в сообщении #1390564 писал(а):
Левое:

(Оффтоп)

maximkarimov в сообщении #1390554 писал(а):
Итак, правильный код для проверки итеррационным методом такой:

Только, извините, это беспощадный код. Каждый раз возводить матрицу в степень и считать факториал?
Меня в детстве за это даже по рукам не били, было незачем: просто компы отказывались работать за нормальное время, и это был вопрос выживания: будет работать программа или не будет.
Хорошо еще, матрица два на два.
Код (для проверки) должен выглядеть как-то так (остаточные навыки: последний раз хоть три строчки программировала я четверть века назад, а Матлаб вообще первый раз нынче ночью вижу, нет у меня пакетов):
Код:
A0=A^2/2; D = A0;
for k=1:100
A0 = A0*A^3/((3*k)*(3*k+1)*(3*k+2));
D = D+A0;
end;

Это вовсе не в порядке нравоучения, а в порядке экономии времени и ресурсов. Меня когда-то учили обращать на это внимание, вот, делюсь.

maximkarimov в сообщении #1390554 писал(а):
Вопрос - какое символьное выражение позволило Вам его получить?

Да в общем-то тот же, что и у Вас. Я его продублировала и проверила за компанию еще и с помощью funm. Если все верно, результаты совпадают и совпадают с тем, что выше. Кстати, с неквадратной матрицей код не работает. Ругается, что неквадратная. Могу скопировать:
Цитата:
Error using symengine
Not a square matrix.


Дальше пишете в syms, что действительно нужно.
Дальше:
Код:
S= symsum(x^(m+k*n)/factorial(m+k*n),k,0,inf);
B = funm(A,S);
B1 = symsum(A^(m+k*n)/factorial(m+k*n),k,0,inf);

B и B1 численно выдают один результат - тот, что выше.
Символьная запись может различаться.
Код:
B =

[ (33^(1/2)*(33^(1/2)/2 - 5/2)^2*(33^(1/2)/6 + 1/2)*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/22 + (33^(1/2)*(33^(1/2)/2 + 5/2)^2*(33^(1/2)/6 - 1/2)*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/22,
(33^(1/2)*(33^(1/2)/2 + 5/2)^2*(33^(1/2)/6 - 1/2)*(33^(1/2) + 3)*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/132 - (33^(1/2)*(33^(1/2)/2 - 5/2)^2*(33^(1/2)/6 + 1/2)*(33^(1/2) - 3)*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/132]
[(33^(1/2)*(33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/22 - (33^(1/2)*(33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/22,
(33^(1/2)*(33^(1/2)/2 - 5/2)^2*(33^(1/2) - 3)*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/132 + (33^(1/2)*(33^(1/2)/2 + 5/2)^2*(33^(1/2) + 3)*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/132]


Код:
B1 =

[ ((33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/4 + ((33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/4 + (33^(1/2)*(33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/44 - (33^(1/2)*(33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/44,   
(33^(1/2)*(33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/33 - (33^(1/2)*(33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/33]
[  (33^(1/2)*(33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/22 - (33^(1/2)*(33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/22,
((33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/4 + ((33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/4 - (33^(1/2)*(33^(1/2)/2 - 5/2)^2*hypergeom([], [4/3, 5/3], -(33^(1/2)/2 - 5/2)^3/27))/44 + (33^(1/2)*(33^(1/2)/2 + 5/2)^2*hypergeom([], [4/3, 5/3], (33^(1/2)/2 + 5/2)^3/27))/44]


-- 01.05.2019, 16:53 --

Но $n=3$ для Математики очень хороший показатель: все будет сводиться к экспоненте и синусу. Должно, по крайней мере.
Matlab до этого не додумывается.


Боже, как все просто оказалось! Моя ошибка заключлась в том, что после получения символьного выражения я не сразу использовал funm, а сначала делал вот это:
Используется синтаксис Matlab M
f=matlabFunction(S);
 

Без этой строчки все заработало! Нет слов! Спасибо Вам огроменное!!!

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


31/01/14
11316
Hogtown

(Оффтоп)

Ну почему мне все время кажется, что тема называется "Самовольное вычисление суммы ряда в Матлаб". И мысли, "А что, нельзя без разрешения?"

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

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



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

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


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

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