「数学」カテゴリーアーカイブ

Wolfram alphaの便利な使い方

オンラインで使える数学用の検索エンジン
Wolfram alpha
を使うといろいろな事が出来ます。それらを紹介します。

積分


integral from 0 to infty sin(x)/x

基本中の基本、積分です。複雑な積分でも定積分でも不定積分でも無限大でも受け付けてくれます。
ただし、計算してくれるかは分かりません。
例えば\(\rm{sinc}\)関数\(\left(\rm{sinc}(x)=\frac{sin(x)}{x}\right)\)のゼロから無限大までの積分は、
20160202-222431_c
のように出力してくれます。\(\pi\)で出力されるのは凄いです。

\(\rm{sinc}\)関数のように有名な関数であれば、

integral sin(x)/x

としたほうがたくさんの情報が得られます。

微分方程式の解


y''(x)+y(x) = sin(x)

と入力すると微分方程式を解いてくれます。また、

y''(x)+y(x) = sin(x), y(0)=1, y'(0)=0

な風にすると、初期条件を与えたうえで解いてくれます。
20160202-221952_c
自分の与えた数式通りに認識しているか、確かめましょう。

行列の対角化


Eigenvectors[{-2,2,4},{-2,4,2},{-2,1,4}]

行列の対角化を行ってくれます。上を入力すると行列
\(
\begin{eqnarray}
\left(
\begin{array}{ccc}
-2 & 2 & 4 \\
-2 & 4 & 2 \\
-2 & 1 & 4
\end{array}
\right)
\end{eqnarray}
\)を対角化し、その固有値と固有ベクトルを出力してくれます。

級数展開


関数の級数展開を出力してくれます。
例えば、

Series[BesselJ(1,x),{x,0,5}]

と入力するとベッセル関数\(J_1(x)\)を\(x\)について、\(x=0\)回りで、\(x^5\)まで展開して出力してくれます。
20160202-223943_c

また、

Series[cos(x),{x,1,10}]

とすると、\(\cos(x)\)を\(x\)について、\(x=1\)回りで、\(x^{10}\)まで展開して出力してくれます。

また、

Series[exp(ix)/x,{x,0,4}]

としても展開してくれます。この場合はローラン(Laurent)展開であり、特異点周りの展開となっています。
上の場合、出力として、
20160202-221030_c
という結果が得られます。
もう一つ、ガンマ関数\(\Gamma(x)\)の\(x=0\)まわりでのローラン展開です。

Series[gamma(x),{x,0,3}]

と入力するとガンマ関数\(\Gamma(x)\)を\(x\)について、\(x=0\)回りで、\(x^3\)まで展開して出力してくれます。
20160202-223636_c
すごい・・・

キャラクターの曲線


様々なキャラクターの曲線のグラフを出力してくれます。
その曲線はWolfram alpha named parametric curvesにまとめられていましたので紹介します。
もしくは、↓をクリックすることで展開されます。

上の他には、wolframで

fictional character curves

animal curves

person curves

と入力して,moreを押していってください。

例を挙げます。

tachikoma like curve

“tachikoma”は、攻殻機動隊に出てくる戦車です。こんな感じです。
tachikoma_wolfram_c

——————–

charmander like curve

“charmander”は、ヒトカゲの事のようです。
charmander_wolfram_c
———————
もしも、上のグラフの数式をコピペしたい場合は、各グラフの下に
plaintext_wolfram
という欄の、”plain text”というところをクリックすれば数式を取得できます。

三角波、のこぎり波、矩形波、その他の数式

正弦波ではない周期関数、三角波、矩形波等々の数式による表現です。
if文は使っていません。
床関数\(floor(x)\)を主に用いています。

これらが唯一の作り方ではなく、最善の作り方でもありません。

非連続になる関数の場合の特定な関数の場合、中間の値を取るようにしています(フーリエ級数の収束より)。


階段関数

——-
f1
z_f1_x_c
——-
f2
z_f2_x_c
——-
fl
z_fl_x_c


のこぎり波

s1
z_s1_x_c
s2
z_s2_x_c
saw
z_saw_x_c


矩形波

k1,k2,k,ka,kb,kk
z_k1_abx_c

z_k2_abx_c

z_k_abx_c

z_ka_abx_c

z_kb_abx_c

z_kk_abx_c


その他

sl,s,spk
tr,se,de,mo
well1,well2

sl
z_sl_abx_c

s
z_s_ax_c
三角波は、\({\rm acos}(\cos(x))\)とも書けます。

spk
z_spk_abx_c

tr
z_tr_abx_c

se
z_se_abx_c

de
z_de_abx_c

mo
z_mo_abx_c

well1
zwell1_abx_c

well2
z_well2_abx_c

well

追記
\(\displaystyle
f(a,b,x) = sgn(abs(2*(x-b)/a)-1e0)
\)
でokです。aは井戸の幅、bは井戸の中心を示します。


まとめ
periodic_functions_c

全てをまとめたgnuplotのコードは以下のものです。

set size ratio -1
set yr[-2:2]
set xr[-5:5]
set samples 101
set grid
set xtics 1
set ytics 1
set mxtics 2
set mytics 2

f1(x)=floor(x)
f2(x)=-floor(-x)-1e0
fl(x)=0.5e0*(floor(x)-floor(-x)-1e0)

s1(x)=x-floor(x)
s2(x)=x+floor(-x)+1e0
saw(x)=x-0.5e0*(floor(x)-floor(-x)-1e0)

k1(a,b,x)=f1((x+a)/(a+b))-f1(x/(a+b))
k2(a,b,x)=f2((x+a)/(a+b))-f2(x/(a+b))
k(a,b,x)=fl((x+a)/(a+b))-fl(x/(a+b))
kk(a,b,x)=2e0*(k(a,b,x)-0.5e0)

ka(a,b,x)=0.5e0*(sgn(k(a,b,x)-0.25e0))+0.5e0
kb(a,b,x)=0.5e0*(sgn(k(a,b,x)-0.75e0))+0.5e0

sl(a,b,x)=kk(a+b,a+b,x+0.5e0*b+a)*k(a,b,x)

s(a,x)=2e0*abs(s2(x/(a*2))-0.5e0)*kk(a*2e0,a*2e0,x+a)
tr(a,b,x)=k(a,b,x)*s(0.5e0*(a+b),x-0.5e0*b)*(1e0+b/a)+sl(b,a,x-b)

spk(a,b,x)=-abs(kk(a,b,x))+1e0

se(a,b,x)=(x-b-(a+b)*fl(x/(a+b)))/a*k(a,b,x)+0.5e0*(k(a,b,x)*(1e0-b/a)+1e0)*spk(a+b,a+b,x)

de(a,b,x)=-se(a,b,x)*2e0*(k2(a+b,a+b,x-0.5e0*b)-0.5e0)
mo(a,b,x)=de(a*0.5e0,b+a*0.5e0,x+a*0.5e0)+de(a*0.5e0,b+a*0.5e0,-(x+a*0.5e0))

well1(a,b,x)=0.5e0*(sgn((abs(2e0*(x-b)/a)-1e0)+ka(1e0,1e0,abs(2e0*(x-b)/a))-0.5e0))+0.5e0
well2(a,b,x)=0.5e0*(sgn((abs(2e0*(x-b)/a)-1e0)+kb(1e0,1e0,abs(2e0*(x-b)/a))-0.5e0))+0.5e0

– 1 = 1 ?

が発端です。間違いであることは直観で分かります。
問題はどこに間違いがあるか?です。

改めて問題を書けば、
\(
\begin{align}
-1&=i\times i \\
&=\sqrt{(-1)}\times\sqrt{(-1)} \\
&=\sqrt{(-1)\times(-1)} \\
&=\sqrt{1} \\
&=1
\end{align}
\)
です。

結論を先に言えば、2行目から3行目にかけての変形がダメです。
定義域の考慮が抜けています。
なぜダメなんでしょうか。詳しく見ていきましょう。

間違いが生じるのはなぜ?


\(i\)を極座標形式で考えます。
すると、
\(
\displaystyle i=0+i=e^{i\frac{\pi}{2}}
\)

ですよね。これは正しいです。
そして次に2行目から3行目を極形式でゆっくりと書いていけば、
\(
\begin{align}
-1&=i\times i \\
&=e^{i\frac{\pi}{2}}\times e^{i\frac{\pi}{2}} \\
&=\left(e^{i\pi}\right)^{1/2} \times\left(e^{i\pi}\right)^{1/2} \cdots \mbox{2行目に対応} \\
&=\left(e^{i2\pi}\right)^{1/2}\cdots \mbox{3行目に対応}
\end{align}
\)
です。

もしも、\(e^{i\theta}\)の\(\theta\)の範囲を勝手に\(0 \le \theta \lt 2\pi\)にしていたら。
この場合、角度\(2\pi\)はこの定義域内に含まれていません。
\(e^{i\theta}\)は\(2\pi\)の周期性を持つはずだ、だから
\(
e^{i2\pi}=e^{i0}=1
\)

であるはずだ、と思ってしまうんです。
これを行ってしまうと、最後の式は、
\(
\begin{align}
\left(e^{i2\pi}\right)^{1/2}&=\left(e^{i0}\right)^{1/2} \\
&=1^{1/2} \\
&=1
\end{align}
\)

となります。

よって間違った答え\(-1=1\)が生まれます。

間違いを起こさないためには


この問題を解決するためには定義域をきちっと示してあげればいいのです。
別の複素数を掛ける場合、通常、\(\theta\)の定義域も考慮しなければなりません。
故に、厳密に書けば、
\(
\displaystyle i=e^{i\frac{\pi}{2}}\ \ \ (0\le\theta \lt 2\pi)
\)

であり、
\(
\begin{align}
-1&=i\times i \\
&=e^{i\frac{\pi}{2}}\times e^{i\frac{\pi}{2}}\ \ \ \ (0\le\theta \lt 4\pi)\\
&=\left(e^{i2\pi}\right)^{1/2}\ \ \ (0\le\theta \lt 4\pi)
\end{align}
\)
なのです。\(e^{i\theta}\)は本来, 周期関数であって多価関数であることを忘れてはいけません。
故に、定義域内に収まっていないからと言って\(2\pi\)を加える必要はないのです。
だから、形はそのままであり、計算は
\(
\begin{align}
&\left(e^{i2\pi}\right)^{1/2}\ \ \ (0\le \theta\lt 4\pi)\\
&=e^{i\pi}\ \ \ (0\le \theta\lt 2\pi)\\
&=-1
\end{align}
\)
だから、やはり\(-1=-1\)なのです。

※上の式\(-1=i\times i\cdots\)は長いので、
\(
\sqrt{(-1)^2}
\)

の値は何ですか?という問いかけでもいいと思います。
この場合、この答えは\(\pm 1\)です。どちらでも正解です。
なぜならば、\(X=\sqrt{(-1)^2}\)とおいて、
\(
\begin{align}
X&=\sqrt{(-1)^2} \\
X^2&=1 \\
&(X+1)(X-1)=0 \\
\end{align}
\)
だからです。


この問題が顕著に表れるのは数値計算です。コンピュータは定義域の考慮はできません。人為的に入れるしか手段は無く、必ず\(2\pi\)の範囲に収まっていなければならないのです。なので、数値計算で複素数を扱う場合、この問題が発生していないか確かめましょう。符号が知らない間に変わっている、軽視いているととんでもない問題になります。

ラグランジュの未定乗数法

忘れやすいラグランジュの未定乗数法のメモです。
一通り学んだ人が使い方を思い出す、という状況を想定しています。

変数が独立な場合


3変数x,y,zが独立(xが変化してもy,zは変化しない、\(\vec{x}\cdot\vec{y}=0\) (y,zも同様))で、その関数\(f(x,y,z)\)の極値は
\(
\displaystyle \frac{\partial f}{\partial x}=0,\ \ \frac{\partial f}{\partial y}=0,\ \ \frac{\partial f}{\partial z}=0 \ \ \cdots (1)
\)

を連立させて解くことで得られます。

変数が独立ではない(従属な)場合


変数x,y,zの間に関係式
\(
g(x,y,z)=c, \ \mbox{$c$は定数} \ \ \cdots (2)
\)

という条件がある場合、

  1. 式(2)が(例えば)zについて解けるならば、\(f(x,y,z(x,y))\)として2変数\(x,y\)の極値問題として解ける。
  2. \(z=z(x,y)\)の形に書けない場合 →ラグランジュの未定乗数法を使う
  1.  の場合、”関数\(f(x,y,z)\)が極値をとる”、とは
    \(
    \displaystyle df=\frac{\partial f}{\partial x}dx+\frac{\partial f}{\partial y}dy+\frac{\partial f}{\partial z}dz=0 \ \ \cdots (3)
    \)

    である点(極値点)である。
    →極値点から\(x,y,z\)を任意の微小量\(dx,dy,dz\)だけ変化させても関数\(f(x,y,z)\)の変化分である\(df\)は1次の範囲でゼロです。
    故に任意の\(dx,dy,dz\)について(3)が成立する、よって(1)が導かれることになります。
  2.  の場合、\(dx,dy,dz\)は独立に選ぶことができません。その取り方は条件(2)に従います。
    極値点まわりで(2)が成立しているならば、
    \(
    g(x+dx,y+dy,z+dz)=g(x,y,z)\ \ \cdots (4)
    \)

    を満たすような\(dx,dy,dz\)の変化しか許されないことになります。この条件から\(dx,dy,dz\)の動かし方は、
    \(
    \displaystyle \frac{\partial g}{\partial x}dx+\frac{\partial g}{\partial y}dy+\frac{\partial g}{\partial z}dz=0 \ \ \cdots (5)
    \)

    に制限されます。
    条件(5)を\(dz\)について変形すると、
    \(
    \displaystyle dz=-\frac{\frac{\partial g}{\partial x}dx+\frac{\partial g}{\partial y}dy}{\frac{\partial g}{\partial z}} \ \ \cdots (6)
    \)

    となります。式(3)へ式(6)を代入すると

    \(
    \begin{align}
    \displaystyle df &=\left( \frac{\partial f}{\partial x}-\frac{\frac{\partial g}{\partial x}}{\frac{\partial g}{\partial z}}\frac{\partial f}{\partial z}\right)dx
    +\left( \frac{\partial f}{\partial y}-\frac{\frac{\partial g}{\partial y}}{\frac{\partial g}{\partial z}}\frac{\partial f}{\partial z}\right)dy=0 \\
    &=\left( \frac{\partial f}{\partial x}-\lambda\frac{\partial g}{\partial x}\right)dx
    +\left( \frac{\partial f}{\partial y}-\lambda\frac{\partial g}{\partial y}\right)dy=0 \ \ \cdots (7)
    \end{align}
    \)

    ここで
    \(
    \displaystyle \lambda=\frac{\frac{\partial f}{\partial z}}{\frac{\partial g}{\partial z}}\ \ \cdots (8)
    \)

    と置きました。この\(\lambda\)はラグランジュの未定乗数と呼ばれます。
    未定乗数という所以は、この\(\lambda\)をあらわに決める必要はなく、決まらない定数のままでも極値点を求めることができるという事を表しています。
    今、\(dx,dy\)は独立であるので(※1)、その係数は\(0\)になるはずです。故に、式(7)と式(8)より、

    \(
    \begin{eqnarray}
    \left\{
    \begin{aligned}
    \frac{\partial f}{\partial x}-\lambda\frac{\partial g}{\partial x}&=0 \\
    \frac{\partial f}{\partial y}-\lambda\frac{\partial g}{\partial y}&=0 \\
    \frac{\partial f}{\partial z}-\lambda\frac{\partial g}{\partial z}&=0
    \end{aligned}
    \right.
    \end{eqnarray}
    \)

    が導けます。変形をすれば、条件式(2)も含めて、

    \(
    \begin{eqnarray}
    \left\{
    \begin{aligned}
    \frac{\partial}{\partial x}\left(f-\lambda g\right)&=0 \\
    \frac{\partial}{\partial y}\left(f-\lambda g\right)&=0 \\
    \frac{\partial}{\partial z}\left(f-\lambda g\right)&=0 \\
    g(x,y,z)&=c
    \end{aligned}
    \right.
    \end{eqnarray}
    \ \ \ \cdots (9)
    \)

    と書くことができます。未知の変数は\(x,y,z,\lambda\)の4つで、方程式は4本なので解くことができます。
    この式が言うことは、束縛条件\(g(x,y,z)=c\)があった場合、関数\(f-\lambda g\)を考えて、その極値を求めればよいことを表しています。

[adsense1]

まとめ


条件\(g(x,y,z)=c\)がある関数f(x,y,z)の極値問題は、
\(
\tilde{f}=f-\lambda g \ \ \cdots (10)
\)

という新たな関数\(\tilde{f}\)を考えるとx,y,zが独立に変化するものと考えて\(\tilde{f}(x,y,z)\)の極値問題を考えればよい、となります。

例題 ~楕円に内接する長方形の面積の最大値を求める~


楕円の方程式は
\(
\displaystyle \frac{x^2}{a^2}+\frac{y^2}{b^2}=1
\)

であり、この方程式の許す\(x,y\)を満たしながら、内接する長方形の面積
\(S(x,y)=4xy\)
を最大にする\(x,y\)を求めます。

楕円面積

これは、関数\(f(x,y)=4xy\)の極値を\(\displaystyle g(x,y)=\frac{x^2}{a^2}+\frac{y^2}{b^2}=1\)という条件下で解く、という意味になります。
まず、\(\tilde{S}\)を式(10)より求めます。
\(
\begin{align}
\tilde{S}&=S-\lambda g \\
&=4xy-\lambda\left(\frac{x^2}{a^2}+\frac{y^2}{b^2}\right)
\end{align}
\)
式(9)より、
\(
\begin{eqnarray}
\left\{
\begin{aligned}
\frac{\partial \tilde{S}}{\partial x}&=0 \\
\frac{\partial \tilde{S}}{\partial y}&=0
\end{aligned}
\right.
\end{eqnarray}
\)
を考えればいいので、
\(
\begin{eqnarray}
\left\{
\begin{aligned}
\frac{\partial \tilde{S}}{\partial x}=4y-\lambda \frac{2x}{a^2}&=0 \ \ \cdots (i)\\
\frac{\partial \tilde{S}}{\partial y}=4x-\lambda \frac{2y}{b^2}&=0 \ \ \cdots (ii)\\
\frac{x^2}{a^2}+\frac{y^2}{b^2}&=1 \ \ \cdots (iii)
\end{aligned}
\right.
\end{eqnarray}
\)
を満たす未知の変数\(x,y,\lambda\)が\(S\)の極値となっています。
(i)と(ii)より\(\lambda\)を消去すると
\(
\begin{align}
(i) &\rightarrow \lambda=\frac{2y}{x}a^2 \\
(ii) &\rightarrow 4x-\left(\frac{2y}{x}a^2\right)\frac{2y}{b^2}=0
\end{align}
\)
なので
\(
\displaystyle \frac{x^2}{a^2}=\frac{y^2}{b^2}
\)

(iii)に代入して
\(
\displaystyle 2\frac{x^2}{a^2}=1
\)

より
\(\displaystyle x=\pm\frac{a}{\sqrt{2}},\ \ y=\pm\frac{b}{\sqrt{2}}\)
のとき\(S(x,y)\)が極値を取ることがわかります。

ちなみに、この時の長方形の面積\(S_{max}\)は\(S_{max}=2ab\)であり、
これは楕円の面積\(S=\pi ab\)の\(\frac{2ab}{\pi ab}\sim 0.64\)となり、約64%を占めていることになります。

[adsense2]

※1
x,yが独立であるのは、x,y,zをつなぐ1本の条件式\(g(x,y,z)=c\)によって消え得る変数は1つだけであるためです。

参考


小野寺 嘉孝著 『物理のための応用数学』裳華房(1988)p.6~10

縮約

縮約はアインシュタインが一般相対性理論を説明するために最初に導入した数式のお約束です。
これが考え出されたのはアインシュタインが

和記号を書くのに飽きた

からであると予想されます。
このお約束なんですが,大学の物理科ではあまり触れられない癖に教授たちは常識のように語るので,
身につけておいて損はないですね。

さて,あるテンソル量\(A_{i}\)と\(B_{i}\)があったとしましょう。
この二つの縮約をとるということは,同じテンソル同士の和を取る,という意味になります。
アインシュタインの記法に則れば次のように書きます。

\(
A_{i}B^{i}=\sum_{i}{A_{i}B_{i}}
\)

ようするに同じ添え字が右下と右上に来たら和をとりましょうという約束です。
上の式は内積を表していることがわかります。
これを使うと外積の\(i\)成分も次のようになります。

\(
(A \times B)_i= \epsilon_{i,j,k}A^{j}B^{k}
\)
\(
\epsilon_{i,j,k}= 1 ~~ {\rm at} ~~ i,j,k=(1,2,3),(2,3,1),(3,1,2)
\)
\(
\epsilon_{i,j,k}= -1 ~~ {\rm at} ~~ i,j,k=(1,3,2),(3,2,1),(2,1,3)
\)
\(
\epsilon_{i,j,k}= 0 ~~ {\rm at} ~~ i,j,k=(otherwise)
\)

この\(\epsilon_{i,j,k}\)をレヴィチビタの完全反対称テンソルといいます。