PYTHONグラフィクス1
関数の描画
三角関数
コサインの描画
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 16, 0.001)
y = np.cos(x)
plt.plot(x,y)
(c) 2013 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>python
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 16, 0.001)
y = np.cos(x)
plt.plot(x,y)
plt.show()
importをし、xの幅を範囲指定します。
コサインならcos(x)と入力して上記のようにコードを入力、または上記のコード(import numpy as npから下の部分)をコピペしてそのまま張り付けてEnterキーを押せば左のような画像が簡単に出力されます。
サインの描画
先ほどと同じようにしてcosの部分のみをsinに変えます。xの値幅は自分で好きなように変えるとよいでしょう。
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-3, 3, 0.001)
y = np.sin(x)
plt.plot(x, y)
(c) 2013 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>python
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-3, 3, 0.001)
y = np.sin(x)
plt.plot(x, y)
plt.show()
正規分布関数
C:\WINDOWS\system32>python
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
import numpy as np
from matplotlib import pyplot as plt
sigma = (1.0)
mu = (0)
x = np.arange(-5, 5, 0.001)
y = (1/np.sqrt(2 * np.pi * sigma)) * np.exp(-(x - mu)**2 / 2 * sigma**2)
plt.plot(x, y)
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
import numpy as np
from matplotlib import pyplot as plt
sigma = (1.0)
mu = (0)
x = np.arange(-5, 5, 0.001)
y = (1/np.sqrt(2 * np.pi * sigma)) * np.exp(-(x - mu)**2 / 2 * sigma**2)
plt.plot(x, y)
plt.show()
正規分布関数の定積分計算
標準正規分布関数をプラス側とマイナス側に分けて実際に定積分し、同じ値が出るか確認してみましょう。簡単のために平均のミューは0、分散は1として計算します。
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import Symbol, exp, sqrt, pi, Integral
>>> x = Symbol('x')
>>> y = exp(-(x)**2/2)/sqrt(2*pi)
>>> Integral(y, (x, 0, 1)).evalf()
0.341344746068543
>>>
(c) 2013 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>python
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import Symbol, exp, sqrt, pi, Integral
>>> x = Symbol('x')
>>> y = exp(-(x)**2/2)/sqrt(2*pi)
>>> Integral(y, (x, 0, 1)).evalf()
0.341344746068543
>>>
0.341344746068543という値が出ました。
次にxの定積分範囲を-1から0に指定してその値を出力します。
C:\WINDOWS\system32>python
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import Symbol, exp, sqrt, pi, Integral
>>> x = Symbol('x')
>>> y = exp(-(x)**2/2)/sqrt(2*pi)
>>> Integral(y, (x, 0, 1)).evalf()
0.341344746068543
>>> Integral(y, (x, -1, 0)).evalf()
0.341344746068543
>>>
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import Symbol, exp, sqrt, pi, Integral
>>> x = Symbol('x')
>>> y = exp(-(x)**2/2)/sqrt(2*pi)
>>> Integral(y, (x, 0, 1)).evalf()
0.341344746068543
>>> Integral(y, (x, -1, 0)).evalf()
0.341344746068543
>>>
同じ0.341344746068543という値になります。
また積分範囲を-1から1のように指定すると、
C:\WINDOWS\system32>python
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import Symbol, exp, sqrt, pi, Integral
>>> x = Symbol('x')
>>> y = exp(-(x)**2/2)/sqrt(2*pi)
>>> Integral(y, (x, 0, 1)).evalf()
0.341344746068543
>>> Integral(y, (x, -1, 0)).evalf()
0.341344746068543
>>> Integral(y, (x, -1, 1)).evalf()
0.682689492137086
>>>
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import Symbol, exp, sqrt, pi, Integral
>>> x = Symbol('x')
>>> y = exp(-(x)**2/2)/sqrt(2*pi)
>>> Integral(y, (x, 0, 1)).evalf()
0.341344746068543
>>> Integral(y, (x, -1, 0)).evalf()
0.341344746068543
>>> Integral(y, (x, -1, 1)).evalf()
0.682689492137086
>>>
と出るので2倍した数値が出てきます。
なのでy軸に対して対称性のある正規分布関数などを積分する場合は次のようなことができます。 逆に非対称ではこういったことはできません。
このような性質を使って求める場合があり、例えばガンマ関数の1/2の場合の積分値などがあります。
ガンマ関数2分の1の例
次のように表現される式、
これを(ガンマ)関数といいます。
この関数の変数部分が
の場合を計算してみましょう。
ここで次のような変数変換をします。
これを代入して計算していきますが、途中の式で先ほどの正規分布関数の性質を応用して0から無限大への積分範囲を、マイナスの無限大からプラスの無限大に拡大します。もちろん2倍になるので同値にするために2分の1を式中に付け足します。
最後はガウス積分の公式、
を使っています。
結果的に次のような公式が導かれます。
これ以外にも典型的な関係式を挙げると次のようなものがあります。
ここで次のような変数変換をします。
最後はガウス積分の公式、
python描画関連ページ
- Visual StudioでPython基礎
- 当サイトは主に物理に関する数学など、その他周辺も含めた少々ごった煮のウェブサイトです。 数学分野に関しての趣旨としては、通常のテキストでは割愛されてしまう内容などを詳しく記述し、さらには難しい説明をするのではなく、わかりにくい内容をいかにわかりやすく伝えるか━など、そういったウェブコンテンツならではの利便性と機動性を生かしたサイト作成を主眼としています。
- Visual StudioでPythonをやろう
- 当サイトは主に物理に関する数学など、その他周辺も含めた少々ごった煮のウェブサイトです。 数学分野に関しての趣旨としては、通常のテキストでは割愛されてしまう内容などを詳しく記述し、さらには難しい説明をするのではなく、わかりにくい内容をいかにわかりやすく伝えるか━など、そういったウェブコンテンツならではの利便性と機動性を生かしたサイト作成を主眼としています。
- PythonによるCSV取り込み
- 当サイトは主に物理に関する数学など、その他周辺も含めた少々ごった煮のウェブサイトです。 数学分野に関しての趣旨としては、通常のテキストでは割愛されてしまう内容などを詳しく記述し、さらには難しい説明をするのではなく、わかりにくい内容をいかにわかりやすく伝えるか━など、そういったウェブコンテンツならではの利便性と機動性を生かしたサイト作成を主眼としています。
- pythonによる3次元描画
- 当サイトは主に物理に関する数学など、その他周辺も含めた少々ごった煮のウェブサイトです。 数学分野に関しての趣旨としては、通常のテキストでは割愛されてしまう内容などを詳しく記述し、さらには難しい説明をするのではなく、わかりにくい内容をいかにわかりやすく伝えるか━など、そういったウェブコンテンツならではの利便性と機動性を生かしたサイト作成を主眼としています。
- pythonインストール
- 当サイトは主に物理に関する数学など、その他周辺も含めた少々ごった煮のウェブサイトです。 数学分野に関しての趣旨としては、通常のテキストでは割愛されてしまう内容などを詳しく記述し、さらには難しい説明をするのではなく、わかりにくい内容をいかにわかりやすく伝えるか━など、そういったウェブコンテンツならではの利便性と機動性を生かしたサイト作成を主眼としています。