0
0

More than 1 year has passed since last update.

マクローリン展開をお勉強(おまけ)

Posted at

前回「マクローリン展開をお勉強(Python)」の続きです。

McLaughlin2.py
import numpy as np
import matplotlib.pyplot as plt

def kaijyo(n):
    result = 1
    for i in range(1, n+1):
        result *= i
    return result

def sin(x, n):
    result = 0
    for i in range(1, n+1):
        result += (-1)**(i+1) * (1 / kaijyo(2*i-1)) * x**(2*i-1)
    return result

def cos(x, n):
    result = 1
    for i in range(1, n+1):
        result += (-1)**(i+1) * 1 / kaijyo(2 * (i-1)) * x**(2*(i-1))
    return result

def tan(x, n):
    return sin(x, n) / cos(x, n)

def arctan(x, n):
    result = 0
    for i in range(1, n+1):
        result += (-1)**(i+1) * x**(2*i-1) / (2*i-1)
    return result

x = np.linspace(-2 * np.pi, 2 * np.pi, 101)

for n in range(1, 11, 1):
    plt.plot(x, sin(x, n)**2, label = str(n) + "D")

plt.legend()
plt.ylim(-2,4)
plt.show()

for n in range(1, 11, 1):
    plt.plot(x, cos(x, n)**2, label = str(n) + "D")

plt.legend()
plt.ylim(-2,4)
plt.show()

for n in range(1, 11, 1):
    plt.plot(x, tan(x, n)**2, label = str(n) + "D")

plt.legend()
plt.ylim(-2,4)
plt.show()

for n in range(1, 11, 1):
    plt.plot(x, arctan(x, n)**2, label = str(n) + "D")

plt.legend()
plt.ylim(-2,4)
plt.show()

sin,cosなどをそれぞれ2乗してみました。こんなグラフになります。

sinの2乗

maclolinSinSin1.png

cosの2乗

maclolinCosCos1.png

tanの2乗

maclolinTanTan1.png

arctanの2乗

maclolinArctanArctan1.png

McLaughlin3.py
import numpy as np
import matplotlib.pyplot as plt

def kaijyo(n):
    result = 1
    for i in range(1, n+1):
        result *= i
    return result

def sin(x, n):
    result = 0
    for i in range(1, n+1):
        result += (-1)**(i+1) * (1 / kaijyo(2*i-1)) * x**(2*i-1)
    return result

def cos(x, n):
    result = 1
    for i in range(1, n+1):
        result += (-1)**(i+1) * 1 / kaijyo(2 * (i-1)) * x**(2*(i-1))
    return result

def tan(x, n):
    return sin(x, n) / cos(x, n)

def arctan(x, n):
    result = 0
    for i in range(1, n+1):
        result += (-1)**(i+1) * x**(2*i-1) / (2*i-1)
    return result

x = np.linspace(-2 * np.pi, 2 * np.pi, 101)

for n in range(1, 11, 1):
    plt.plot(x, sin(x, n)*cos(x, n), label = str(n) + "D")

plt.legend()
plt.ylim(-4,4)
plt.show()

for n in range(1, 11, 1):
    plt.plot(x, sin(x, n) * cos(x, n) * tan(x, n), label = str(n) + "D")

plt.legend()
plt.ylim(-2,4)
plt.show()

for n in range(1, 11, 1):
    plt.plot(x, sin(x, n)*cos(x, n) + cos(x, n)*sin(x, n), label = str(n) + "D")

plt.legend()
plt.ylim(-4,4)
plt.show()

for n in range(1, 11, 1):
    plt.plot(x, arctan(x, n)**sin(x, n), label = str(n) + "D")

plt.legend()
plt.ylim(-4,4)
plt.show()

for n in range(1, 11, 1):
    plt.plot(x, cos(x, n)**sin(x, n), label = str(n) + "D")

plt.legend()
plt.ylim(-4,4)
plt.show()

for n in range(1, 11, 1):
    plt.plot(x, (cos(x, n)+sin(x, n)) ** tan(x, n), label = str(n) + "D")

plt.legend()
plt.ylim(-1,8)
plt.show()

 その他、色々作ってみました。

sin × cos

maclolinOmake1.png

sin × cos × tan

maclolinOmake2.png

sin × cos + cos × sin (咲いたコスモスコスモス咲いたみたいなやつ)

maclolinOmake3.png

arctanのsin乗(自分でも意味わからないです)

maclolinOmake4.png

cosのsin乗

maclolinOmake5.png

cos + sin のtan乗

maclolinOmake6.png

まとめ

誰かこれらがどういうグラフなのか教えてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0