力学演習II グラフの練習

作成: 2002-10-08


手で描いたグラフとgnuplotの図を比べて、 合っているかどうか確認しよう。

2002-10-30

常微分方程式の解

問題(b)は、dq/dx = p とおくと 問題(a)とほとんど同じになる。

set xzeroaxis # 横軸を表示
plot [x=0:4] [-0.1:1.1] 2*x * exp(-x**2), exp(-x**2)

x=0 で q の傾きがゼロであることに注意。

2002-10-23

常微分方程式の解

問題(a)は、基本解を y = eなんとか と置いて求める。 一般解は基本解の足し合わせで書ける。 Aを適当に決めてグラフを書くと、 次のようになる (手で書くときは1つだけでよい):

plot [t=0:7] \
0.5*(exp(-t)-exp(-2*t)) title 'A=0.5', \
1.0*(exp(-t)-exp(-2*t)) title 'A=1.0', \
1.5*(exp(-t)-exp(-2*t)) title 'A=1.5'

解は t = log(2) ≒ 0.693 で極大値をとり、 t → +∞ で ゼロに漸近する。

問題(b)は、変数分離で解けばよい。 解は、t = T* = 1/A で 発散する。

hassan = 10000
y(A,t) = (t < 1/A ? A/(1-A*t) : hassan)
plot [t=0:5] [0:10]\
y(0.3, t) title 'A=0.3', \
y(0.5, t) title 'A=0.5', \
y(1.0, t) title 'A=1.0'

2002-10-16

常微分方程式の解

dx/dt = x くらいは、暗算で解いてほしい。

set yzeroaxis # 縦軸を表示
plot [t=-2:5] [0:10] exp(t), 1+t
set size ratio 10./7.; replot

t=0 での傾きに注意。

デルタ関数

set xzeroaxis # 横軸を表示
set yzeroaxis # 縦軸も表示
set samples 1000 # 大きな数にするほど精密なグラフになる
y1(t) = 0
y3(t) = exp(-t)
plot [t=-5:5] [-0.2:1.2] ( t<0 ? y1(t) : y3(t) )

場合分けを含む式を扱うには 条件 ? 式Y : 式N という書き方をすればよい。

2002-10-02

常微分方程式の解

set xzeroaxis # 横軸を表示
plot [t=0:5] sin(t)
plot [t=0:5] [-0.1:1.2] exp(-t**2)
set yzeroaxis # 縦軸も表示
plot [t=-3:3] [-0.1:1.2] exp(-t**2)

t=0での曲線の傾きに注意。

Taylor展開

set xzeroaxis # 横軸を表示
set yzeroaxis # 縦軸も表示
plot [theta=-5:5] [-2:2] sin(theta)
plot [theta=-5:5] [-2:2] sin(theta), theta, theta-(1./6.)*theta**3
plot [theta=-5:5] [-2:2] sin(theta), 1 - (1./2.)*(theta-pi/2)**2 # 正しい例
plot [theta=-5:5] [-2:2] sin(theta), 1 - (1./2.)*theta**2 # 間違った例

y = sinθ を θ=π/2 のまわりで展開する問題で間違えた人が多かった。 「正しい例」と「間違った例」の違いによく注意すること。

[力学演習のページに戻る]