【入門】複雑な定積分(Python)【数値計算】

【入門】複雑な定積分(Python)【数値計算】 数値計算
【入門】複雑な定積分(Python)【数値計算】

MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/

はじめに

の、

MATLAB,Python,Scilab,Julia比較 第5章 その16【複雑な定積分⑥】

を書き直したもの。

フーリエ係数に至る道。
今回は偶関数と奇関数を利用した数学パズルを力業で解く方法をPythonで実現する。

【再掲】フーリエ係数に至る道

まずは、フーリエ係数に至る道を再掲。

  • 偶関数
  • 奇関数
  • 関数の内積
  • 三角関数の加法定理
  • 三角関数の積和公式
  • 重要な極限値
  • 三角関数の直交性
  • フーリエ係数

今回は偶関数と奇関数を利用した数学パズルを力業で解く方法をPythonで実現する。

【再掲】力業で解きたい数式

力業で解きたい数式は以下。

\(
\begin{eqnarray}
&&\displaystyle\int_{-2}^2\Big(x^3\cos(2x)+\frac{1}{2}\Big)\sqrt{4-x^2}dx\\
&=&\displaystyle\int_{-2}^2\Big(x^3\cos(2x)\sqrt{4-x^2}+\frac{1}{2}\sqrt{4-x^2}\Big)dx
\end{eqnarray}
\)

無限次元ベクトルであることを前提として、
今回の定積分を表現すると以下になる。

\(
\begin{eqnarray}
\Bigg(
\begin{bmatrix}
-2^3&\dots&2^3
\end{bmatrix}\odot
\begin{bmatrix}
\cos(2(-2))&\dots&\cos(2(2))
\end{bmatrix}
\begin{bmatrix}
\sqrt{4-(-2)}\\
\vdots\\
\sqrt{4-(2)}\\
\end{bmatrix}\\+
\displaystyle\frac{1}{2}
\begin{bmatrix}
\sqrt{4-(-2)}&\dots&\sqrt{4-(2)}
\end{bmatrix}
\begin{bmatrix}
1\\
\vdots\\
1
\end{bmatrix}
\Bigg)\Delta x
\end{eqnarray}
\)

Pythonコード

Pythonコードは以下。

import numpy as np

N=10000000  # 次元数
L=2-(-2)    # 定積分の範囲
dt=L/N      # Δx

x=np.linspace(-2,2,N)
y=(x**3*np.cos(x)@np.sqrt(4-x**2).T + np.sqrt(4-x**2)@np.ones((N,1))/2)*dt
print("%.15f"%(y[0]))

処理結果

処理結果は以下。

3.141592339325351

円周率は
3.141592653589793…
よって、これも小数点第6位まではあっている。

Nの数値を大きくすれば、もっと精度は上がると言う理屈だ。

まとめ

  • 複雑な定積分をPythonで求めた。
  • 同様に円周率が答えとして算出。
    • 小数点第6位まで一緒。
    • Nを増やせばもっと精度は上がる。

MATLAB、Python、Scilab、Julia比較ページはこちら

マンガでわかるフーリエ解析

Amazon.co.jp

手を動かしてまなぶ フーリエ解析・ラプラス変換

Amazon.co.jp

物理数学 量子力学のためのフーリエ解析・特殊関数

物理数学 量子力学のためのフーリエ解析・特殊関数 | 柴田 尚和, 是常 隆 | 数学 | Kindleストア | Amazon
Amazonで柴田 尚和, 是常 隆の物理数学 量子力学のためのフーリエ解析・特殊関数。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットなど、様々な端末でもお楽しみい...

単位が取れるフーリエ解析ノート

https://amzn.to/3V83fIl

今日から使えるフーリエ変換 普及版 式の意味を理解し、使いこなす

https://amzn.to/3ysbfvf

コメント

タイトルとURLをコピーしました