数式処理group work-1(恒等式)

file:/~/python/doing_math_with_python/equation_manipulation.ipynb
cc by Shigeto R. Nishitani 2009-2018

$ \sin^2\, x, \cos^2\,x$

次で定義される関数$f(x), g(x)$ $$ f(x) = \sin^2\, x, g(x)= \cos^2\,x $$ をプロットせよ.

つぎに関数$f(x)+g(x)$を$f(x), g(x)$と同時にプロットせよ.どういった振る舞いを示すかを記述せよ.

In [5]:
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt

X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
plt.plot(X, np.sin(X)**2)
plt.plot(X, np.cos(X)**2)
plt.plot(X, np.sin(X)**2 + np.cos(X)**2)


plt.show()

$\sin^2\,x$と$\cos^2\,x$は-1から1まで周期的に変化するが,それら2つの関数を足し合わせた関数は,すべての$x$の領域で1という一定の値を示す.

恒等式

恒等式の定義をネットで調べ,その定義を記せ.その定義を参考にして上のグラフの振る舞いを説明せよ.

恒等式とは,

恒等式(こうとうしき、英: identity)は、恒真な等式、すなわち等号 (=) を含む数式であって、そこに現れるあらゆる変数がどのような値にあっても、常に等号で結ばれた左右二つの数式の "値" が等しいもののことを言う。 変数の動く範囲は、文脈によって異なる。

と定義される(wikipedia, 2018/04/16 access).

上のグラフの振る舞いは, $$ \sin^2\,x + \cos^2\,x = 1 $$ という恒等式を示している.すなわち,$x$の値によらず$\sin^2\,x$と$\cos^2\,x$の和は常に1であることを示している.

sinとcos

コサイン関数$\cos\, x$をプロットせよ.次に, $$ f(x; c) = \sin(x+c) $$ で定義される関数$f(x; c)$を考える.これは,メインの変数は$x$だが,$c$もサブパラメータとして考える時の表記である.$c$をいろいろ変えて$f(x)$をプロットして,コサイン関数に一致する定数$c$を求めよ.いくつかの$c$があることを確かめよ.それらの関数を整数$n$と$\pi$を使って表現せよ.

In [4]:
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt

X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
plt.plot(X, np.cos(X))
n = 1
plt.plot(X, np.sin(X+2*n*np.pi+np.pi/2+0.1))


plt.show()
$$ \cos \, x = \sin\left(x+2 n \pi+\frac{\pi}{2}\right) $$

3次元プロットから

以下のコマンドを実行し,3つのグラフの関係を解説せよ.

In [1]:
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt

X = np.linspace(0, np.pi, 256, endpoint=True)
plt.plot(X, np.cos(X))
plt.plot(X, np.cos(X+np.pi/2))
plt.plot(X, np.cos(X+np.pi))


plt.show()
In [2]:
%matplotlib notebook
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

def g(x,y):
    return np.cos(x+y)

x = np.arange(0, np.pi, 0.25)
y = np.arange(0, np.pi, 0.25)
X, Y = np.meshgrid(x, y)
Z1 = g(X,Y)

fig = plt.figure()
plot3d = Axes3D(fig)
plot3d.plot_surface(X,Y,Z1) 

plt.show()
In [3]:
%matplotlib notebook
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

def h(x,y):
    return np.cos(x)*np.cos(y)-np.sin(x)*np.sin(y)

x = np.arange(0, np.pi, 0.25)
y = np.arange(0, np.pi, 0.25)
X, Y = np.meshgrid(x, y)
Z1 = h(X,Y)

fig = plt.figure()
plot3d = Axes3D(fig)
plot3d.plot_surface(X,Y,Z1) 

plt.show()