紙と鉛筆で計算するのが面倒、もしくは計算ミスをしていないか、自信がない
という一つ問題を解いてみよう。解析概論から一題。
f=(x^2-y^2)Exp[-(x^2+y^2)]
fx=D[f,x]
fx=Simplify[%]
fy=Simplify[D[f,y]]
Solve[{fx==0,fy==0},{x,y}]
警告が出る。
Mathematica 4.0 では努力してゴミ (解でないもの) を出してしまう。
どうも Exp[-(x^2+y^2)] で苦労しているようなので、それを除いてやる。
s=Solve[{Exp[x^2+y^2]fx==0,Exp[x^2+y^2]fy==0},{x,y}]
こうすると、どのバージョンでも警告無しにちゃんと解ける。
Plot3D[f,{x,-2,2},{y,-2,2}]
グラフを消すには、(1)クリック, (2)FileからQuit, (3) C-q のいずれか
ContourPlot[f,{x,-2,2},{y,-2,2}]
山と谷, 交わる2曲線
分かりますか?
fxx=D[fx,x]
fxx=Simplify[%]
fxy=Simplify[D[fx,y]]
fyx=Simplify[D[fy,x]]
fyy=Simplify[D[fy,y]]
ちなみにバージョンによって、見栄えが異なります。
h={{fxx,fxy},{fyx,fyy}}
s
h /. {x -> -1, y -> 0}
Eigenvalues[%]
ともに負 (極大!)
Eigenvalues[h /. {x -> -1, y -> 0}]
f /. {x -> -1, y -> 0}
値は1/E
Eigenvalues[h /. {x -> 0, y -> 0}]
不定符号
Eigenvalues[h /. {x -> 1, y -> 0}]
ともに負 (極大!)
f /. {x -> 1, y -> 0}
値は 1/E
Eigenvalues[h /. {x -> 0, y -> -1}]
ともに正 (極小!)
f /. {x -> 0, y -> -1}
値は -1/E
Eigenvalues[h /. {x -> 0, y -> 1}]
ともに正 (極小!)
f /. {x -> 0, y -> 1}
値は -1/E
[l]おまけ