<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>数奇な因子 &#187; math</title>
	<atom:link href="http://www.numericalfactor.org/wp/tag/math/feed" rel="self" type="application/rss+xml" />
	<link>http://www.numericalfactor.org/wp</link>
	<description>Numerical Factor</description>
	<lastBuildDate>Sun, 02 May 2010 09:50:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>固有ベクトルを求める その2</title>
		<link>http://www.numericalfactor.org/wp/archives/234</link>
		<comments>http://www.numericalfactor.org/wp/archives/234#comments</comments>
		<pubDate>Fri, 07 Sep 2007 16:36:12 +0000</pubDate>
		<dc:creator>line</dc:creator>
				<category><![CDATA[algorithm]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.numericalfactor.org/wp/archives/234</guid>
		<description><![CDATA[研究室で考えた話を反芻すべく記録していくこのコーナー，第二回．

反復法を利用した固有ベクトルの計算方法は前回の話で良いとして，
それで求めた固有ベクトルの直交性に問題があることがある．

これは，まず]]></description>
			<content:encoded><![CDATA[<p>研究室で考えた話を反芻すべく記録していくこのコーナー，第二回．</p>

<p>反復法を利用した固有ベクトルの計算方法は前回の話で良いとして，
それで求めた固有ベクトルの直交性に問題があることがある．</p>

<p>これは，まず一つに（と言っても今のところこれしか知らない…）固有値同士が近接している場合に起こる．</p>

<p>逆反復法で数値的に求めるときに問題が起こる例として，
行列Aに固有値&lambda;<sub>1</sub>と&lambda;<sub>2</sub>があり，
&lambda;<sub>2</sub>は&lambda;<sub>1</sub>とほとんど同じとする（数学的には&lambda;<sub>1</sub>&ne;&lambda;<sub>2</sub>だが数値的に&lambda;<sub>1</sub>&#8786;&lambda;<sub>2</sub>）．
まずA<sub>1</sub> = (&lambda;<sub>1</sub>E &#8211; A)の絶対値最小固有値に対応する固有ベクトルを求め，
次にA<sub>2</sub> = (&lambda;<sub>2</sub>E &#8211; A)のそれを求める．
この時，&lambda;<sub>1</sub>と&lambda;<sub>2</sub>は数値的にほぼ同じ値なので
A<sub>1</sub>&#8786;A<sub>2</sub>であり，
それぞれの反復結果はどちらも似たようなベクトルになってしまう．</p>

<p>異なる固有値に属する固有ベクトルは直交すると考えて処理しているのに，
ここで同じベクトルが出てきてしまい，後で困ったことになったりするわけです．</p>

<p>ではどうするかというと．似た値の固有値同士を適当な誤差評価の元に同じ値とみなして
（仮にN個の固有値を同値とみなしたとする），
N本の直交するベクトルを初期値として用意して，反復法を適用する．
これらの直交ベクトルはイテレーションの度にある方向に傾くけれど，
その都度直交化を施すことで直交性を確保できる，と．</p>

<p>直交化付き同時冪乗法は似たような考え方だったと思う．</p>
]]></content:encoded>
			<wfw:commentRss>http://www.numericalfactor.org/wp/archives/234/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>固有ベクトルを求める</title>
		<link>http://www.numericalfactor.org/wp/archives/219</link>
		<comments>http://www.numericalfactor.org/wp/archives/219#comments</comments>
		<pubDate>Sun, 26 Aug 2007 15:46:25 +0000</pubDate>
		<dc:creator>line</dc:creator>
				<category><![CDATA[algorithm]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[math]]></category>

		<guid isPermaLink="false">http://www.numericalfactor.org/wp/archives/219</guid>
		<description><![CDATA[<p>すみませんがサーバでエラーが起こりました。このページを再読込してください</p><p>すみませんがサーバでエラーが起こりました。このページを再読込してください</p>固有ベクトルを（数値的に）求める方法．

行列の固有ベクトルと固有値は，
（あるベクトルにその行列をかけた結果を）それぞれ伸縮する方向と伸縮率を表します．
というのは4274065782,textからの受け売り．
アニメ [...]]]></description>
			<content:encoded><![CDATA[<p>すみませんがサーバでエラーが起こりました。このページを再読込してください</p><p>すみませんがサーバでエラーが起こりました。このページを再読込してください</p><p>固有ベクトルを（数値的に）求める方法．</p>

<p>行列の固有ベクトルと固有値は，
（あるベクトルにその行列をかけた結果を）それぞれ伸縮する方向と伸縮率を表します．
というのは<amazon>4274065782,text</amazon>からの受け売り．
<a href="http://www.ohmsha.co.jp/data/link/4-274-06578-2/anime/index.html">アニメーションで見る線形代数</a>を見るとわかりやすい．</p>

<p><amazon>4274065782,caption</amazon></p>

<p>つまり，ベクトルに行列をかける（<b>y</b>=A<b>x</b>とでも書く）と，
元のベクトルはその行列の固有ベクトルの方向に移される．
ここで固有ベクトルは一般には複数存在するが，
（ベクトル<b>y</b>の）方向はそれらのうち一番伸縮率が大きい固有ベクトルに左右される．
つまり最も大きい固有値に対応する固有ベクトルの方向に支配される
（固有値が負だけど絶対値は大きいときは，その固有ベクトルと逆の方向を向くだけで，
結局その方向に支配されることに変わりはない．ということで厳密には
<strong>絶対値最大の</strong>固有値に対応する〜というのが正しい）．</p>

<p>以上よりこんなことを考える．
適当な初期ベクトル<b>x</b><sub>0</sub>を用意して，
それに行列Aをかけてベクトル<b>x</b><sub>1</sub>を得る．
またベクトル<b>x</b><sub>1</sub>に行列Aをかけて，
ベクトル<b>x</b><sub>2</sub>を得る．
さて，この手順を延々繰り返していくと，
最終的にベクトル<b>x</b><sub>n</sub>は行列Aの絶対値最大の固有値に対応する固有ベクトルの方向に向かうはず．
これで固有ベクトル（の近似）が一つ得られる．このやり方が冪乗法（power method）．</p>

<p>これとは逆に，Aの逆行列A<sup>-1</sup>をかけていくと，
今度は絶対値最小の固有値に対応する固有ベクトルの方向に向かうことになる．
実際にはA<sup>-1</sup>を陽に求めず，LU分解して連立一次方程式を解く方が良いらしい．
つまり初期ベクトル<b>x</b><sub>0</sub>を与えて
A<b>x</b><sub>1</sub>=<b>x</b><sub>0</sub>を解き，次に
A<b>x</b><sub>2</sub>=<b>x</b><sub>1</sub>を解くというのを繰り返す．
これもまた固有ベクトルが得られる．このやり方が逆反復法（inverse iteration method）．</p>

<p>どちらも収束性は良いらしい．</p>
]]></content:encoded>
			<wfw:commentRss>http://www.numericalfactor.org/wp/archives/219/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>変な関数</title>
		<link>http://www.numericalfactor.org/wp/archives/190</link>
		<comments>http://www.numericalfactor.org/wp/archives/190#comments</comments>
		<pubDate>Wed, 16 May 2007 16:37:07 +0000</pubDate>
		<dc:creator>line</dc:creator>
				<category><![CDATA[math]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[university]]></category>

		<guid isPermaLink="false">http://www.numericalfactor.org/wp/archives/190</guid>
		<description><![CDATA[こんな関数を研究室の先生に教えてもらった．



この関数はどんな振る舞いをしているか．と言うか，どんな x を与えるとどのような値を取るか．

解答は CM の後で!（何



ディリクレの関数と呼ばれているもの．
]]></description>
			<content:encoded><![CDATA[<p>こんな関数を研究室の先生に教えてもらった．</p>

<p><img width='500' height='143' src='http://www.numericalfactor.org/wp/wp-content/uploads/texclip20070517001251.png' alt='f(x)=\lim_{n\to\infty} \left( \lim_{k\to\infty} cos^{2k} (n! \pi x) \right)' /></p>

<p>この関数はどんな振る舞いをしているか．と言うか，どんな x を与えるとどのような値を取るか．</p>

<p>解答は CM の後で!（何</p>

<p><img src='http://www.numericalfactor.org/wp/wp-content/uploads/texclip20070517000423.png' alt='  f(x)=\begin{cases} 1 &#038; x \in \mathbb{Q}\\ 0 &#038; otherwise\\ \end{cases}' /></p>

<p><a href="http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%83%AA%E3%82%AF%E3%83%AC%E3%81%AE%E9%96%A2%E6%95%B0">ディリクレの関数</a>と呼ばれているもの．</p>

<p>f(x) の一部だけ取り出し， g(x) = lim<sub>k&rarr;&infin;</sub> cos<sup>2k</sup> (n!&pi;x)（n は固定）について考える．まず cos<sup>2k</sup> を cos の 2 乗の k 乗と考えると，値域が [-1, 1] の cos を 2 乗してるので g(x) の値域は [0, 1] らしく，さらに k&rarr;&infin; なので，結局 g(x) の関数値としては 0 か 1 かのどちらかを取るようだ（0&#8806;r<1 のとき lim<sub>k&rarr;&infin;</sub>r<sup>k</sup> = 0）．つまり cos<sup>2</sup> が 1 のとき g(x) が 1 で， cos<sup>2</sup>  がそれ以外の値を取ると g(x) は 0 ．と言うことで， cos<sup>2</sup>  が 1 を取るような時はどういう場合かを考えれば良さそう．</p>

<p>一般的には，cos<sup>2</sup>(r) = 1 が成り立つような r は，&pi;の整数倍である（r=c&pi;,  c&isin;<b>Z</b>）．さて g(x) の cos の中身について考えると，これは n!&pi;x で，n! は整数だけど x は実数．よって， n!x が整数であれば， cos<sup>2</sup> (n!&pi;x) は 1 を取る． n!x が整数になるような x とはどんなものかというと， x=m/n&#8217; の形に書けるもの（ただし m は整数， n&#8217; は n! の約数）．</p>

<p>で，ここで固定してた n を動かして（つまりここから f(x)=lim<sub>n&rarr;&infin;</sub>g(x) を考える） n&rarr;&infin; とすると， x の制約として x=m/n&#8217; という式があったけれど，これは n が十分大きいときには n&#8217; として 1 以上の任意の整数を取れることを示し，つまり x が有理数であることを表している（表現が微妙?）．</p>

<p>結局， x が有理数の時 f(x)=1 で，そうでない時（つまり x が無理数の時） f(x)=0 となる，という．</p>

<p>ここで導いた結論を満たす関数を作れと言われると難しいのに，最初に与えられた f(x) はとても初歩的な要素で作られているので，なんか不思議な感じがします．こんなのを 150 年以上前に考えてたディリクレはすごい．</p>

<p>文中の数式は <a href="http://maru.bonyari.jp/texclip/">TeXclip</a> を使わせてもらいました．綺麗で良いですね． Ichiro Maruta さんに感謝．</p>

<p>このエントリ書いてて思いましたが， MathML っていつまでたっても流行らないですね．ブラウザが対応してもさらにフォントが必要になるって，要求として高すぎる．ブラウザがフォントも持っててくれればねぇ．あと MathML は複雑なので手で書くような代物では無いので， tex2mathml 的なコマンドが必要だと思います． Web でもいいけどローカルに欲しい．</p>
]]></content:encoded>
			<wfw:commentRss>http://www.numericalfactor.org/wp/archives/190/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
