next up previous
: 演習問題 33 : 情報処理II 第12回 数学のためのコンピューター (3) : それから…

Mathematica で何か一つ問題を解いてみる

紙と鉛筆で計算するのが面倒、もしくは計算ミスをしていないか、自信がない という一つ問題を解いてみよう。解析概論から一題。
\begin{itembox}[l]{演習問題32}
$f(x,y)=(x^2-y^2)e^{-(x^2+y^2)}$\ について、以下...
...瓩茵(2) $f$\ の Hesse 行列を求めよ。
(3) $f$\ の極値を求めよ。
\end{itembox}


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]おまけ




Masashi Katsurada 平成13年7月13日