関数電卓として利用してみる


In [1]:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Series, DataFrame

練習問題

(1) 次の関数のグラフを描いてください。この時、x座標のサンプル数を10, 50, 100として、それぞれのグラフの違いを観察してください。

  • y = cos(2πx) (0≦x≦1)
  • y = exp(-x*x) (-5≦x≦5)
  • y = √(1-x*x) (-1≦x≦1)

In [2]:
data_x = np.linspace(0,1,10)
data_y = np.cos(2*np.pi*data_x)
plt.plot(data_x, data_y)


Out[2]:
[<matplotlib.lines.Line2D at 0x40c2c90>]

In [3]:
data_x = np.linspace(0,1,50)
data_y = np.cos(2*np.pi*data_x)
plt.plot(data_x, data_y)


Out[3]:
[<matplotlib.lines.Line2D at 0x4334b50>]

In [4]:
data_x = np.linspace(0,1,100)
data_y = np.cos(2*np.pi*data_x)
plt.plot(data_x, data_y)


Out[4]:
[<matplotlib.lines.Line2D at 0x4400310>]

In [5]:
data_x = np.linspace(-5,5,10)
data_y = np.exp(-data_x*data_x)
plt.plot(data_x, data_y)


Out[5]:
[<matplotlib.lines.Line2D at 0x46934d0>]

In [6]:
data_x = np.linspace(-5,5,50)
data_y = np.exp(-data_x*data_x)
plt.plot(data_x, data_y)


Out[6]:
[<matplotlib.lines.Line2D at 0x488bdd0>]

In [7]:
data_x = np.linspace(-5,5,100)
data_y = np.exp(-data_x*data_x)
plt.plot(data_x, data_y)


Out[7]:
[<matplotlib.lines.Line2D at 0x4aef910>]

In [8]:
data_x = np.linspace(-1,1,10)
data_y = np.sqrt(1-data_x*data_x)
plt.plot(data_x, data_y)


Out[8]:
[<matplotlib.lines.Line2D at 0x4b26310>]

In [9]:
data_x = np.linspace(-1,1,50)
data_y = np.sqrt(1-data_x*data_x)
plt.plot(data_x, data_y)


Out[9]:
[<matplotlib.lines.Line2D at 0x4febc90>]

In [10]:
data_x = np.linspace(-1,1,100)
data_y = np.sqrt(1-data_x*data_x)
plt.plot(data_x, data_y)


Out[10]:
[<matplotlib.lines.Line2D at 0x5255850>]

(2) 次のように各データの座標値 (x,y) のリストが与えられています。このデータの散布図を描いてください。


In [11]:
data = [(0.0,1.0), (-0.95,0.31), (-0.59,-0.81), (0.59,-0.81), (0.95, 0.31)]

In [12]:
data_x = [x for (x, y) in data]
data_y = [y for (x, y) in data]
plt.scatter(data_x, data_y)


Out[12]:
<matplotlib.collections.PathCollection at 0x526e290>