<?xml version="1.0" encoding="Shift_JIS" ?>
<!DOCTYPE page SYSTEM "../../com/dtd/myml.dtd">
<?xml-stylesheet type="text/xsl" href="../Trans_xml.xsl"?>
<page>




<head>
	<filename>sin</filename>
	<belong>円周率を求める</belong>
	<title>三角形の面積公式の利用</title>
	<description>三角形の面積公式から円周率を導こうとして失敗した例。</description>
	<directory>../../</directory>
	<archives>../</archives>
	<date_making year="2005" month="06" day="24" />
	<date_update year="2005" month="06" day="24" />
	<xmlversion type="def" ver="1.0" />
	<pageid>g4YsnSyTjmbw</pageid>
	<script type="text/javascript" charset="Shift_JIS" src="sin.js" />
</head>


<navigation>
	<direct isXML="yes" href="../index" isArchives="yes">Archives academic</direct>
	<direct href="index" isXML="yes">円周率を求める</direct>
	<direct>三角形の面積公式の利用</direct>
</navigation>


<body>

<section>
<h2>π=lim[θ⇒0](180/θ)sinθを導く</h2>
<p class="modified"><date year="2005" month="06" day="24" /></p>
<p>高校1年で習うレベルの数学を用いて円周率を計算することにする。ただし表記に極限を用いているが、極限の高度な式変形は一切用いない。この部分は後に分かるので、この式を1から求めてみよう。</p>
<picture><img src="sin-1.png" width="191" height="159" alt="三角形ABC、∠CAB=θ" /></picture>
<p>まずこのような三角形があったとする。
分かっている辺はACとAB。角はθが判明している。</p>
<p>小学校で習った三角形の面積公式は、面積=底辺×高さ÷2だった。
この三角形の面積を求めるには高さが足りない。
そこで、頂点CからABに対し垂直な線を引く。ABとの交点をHとする。</p>
<picture><img src="sin-2.png" width="191" height="159" alt="CからABに垂直な線を引く" /></picture>
<p>CHが分かれば面積が分かる。</p>
<p>CHはsinθ=CH/AC</p>
<p>CH=AC・sinθ</p>
<p>故に、三角形の面積は
AB×AC×sinθ÷2となることが分かる。
この式を次の場合に適用する。</p>
<picture><img src="sin-3.png" width="100" height="100" alt="円" /></picture>
<p>円の内部に三角形を描いた。
この三角形の2辺の長さは両方r。
その間の角の大きさは90゜である。</p>
<p>先の公式より、面積はr×r×sin90゜÷2 = r<sup>2</sup>sin90゜/<sub>2</sub> = r<sup>2</sup>/<sub>2</sub> 。</p>
<picture><img src="sin-4.png" width="100" height="100" alt="円に内接する正方形" /></picture>
<p>これより緑の部分の面積は 4(r<sup>2</sup>/<sub>2</sub>)となる。</p>
<p>この緑の部分の面積がどうしたんだということだが、角θの値を小さくしていってみよう。</p>
<picture><img src="sin-5.png" width="100" height="100" alt="円に内接する正八角形" /></picture>
<p>θが360/8、45゜の場合はこうだ。
どんどん緑の部分が円に近くなっていることが分かる。
これを無限に繰り返す。
これより多角形の面積は、(360/θ)r<sup>2</sup>sinθ/<sub>2</sub></p>
<p>円の面積の公式はπr<sup>2</sup>。<br />(360/θ)r<sup>2</sup>sinθ/<sub>2</sub>で、θを0に近づけていったときの面積は円に近づく。</p>
<p>よって、(360/θ)r<sup>2</sup>sinθ/<sub>2</sub> = πr<sup>2</sup><br />
式を整理し、<strong>(180/θ)sinθ = π　(θは限りなく0に近い)</strong>となる。
この、θを0に近づける処理をlim[θ⇒0](180/θ)sinθと書く。即ち、</p>
<p>π=lim[θ⇒0](180/θ)sinθ</p>
</section>

<section>
<h2>π=lim[θ⇒0](180/θ)sinθを利用した計算プログラム</h2>
<p class="modified"><date year="2005" month="06" day="24" /></p>
<p>まずはこの公式で実際に計算してみた。</p>
<form action="#" onsubmit="return false;">
<fieldset>
<legend>π=lim[θ⇒0](180/θ)sinθ</legend>
<dl>
  <dt>θ</dt>
  <dd>1/<input type="text" name="R" value="100" size="20" /></dd>
  <dt>π</dt>
  <dd><input type="text" name="PI" value="" readonly="readonly" size="31" /></dd>
</dl>
<p class="submit"><input type="button" value="計算" onclick="SIN(this.form)" onkeypress="SIN(this.form)" /></p>
</fieldset></form>
<p>しかし――Math.sin(n)に代入するnの値はラジアン。度数をラジアンに直すのに次のプログラムを使った。</p>
<pre>var R = Math.PI/(180/X);</pre>
<p>この式自体がMath.PI(円周率)を含んでいる。。。</p>
</section>

<section>
<h2>結論</h2>
<p class="modified"><date year="2005" month="06" day="24" /></p>
<p><strong>●|￣|＿</strong></p>
</section>

<section>
<h2>おまけ</h2>
<p class="modified"><date year="2005" month="06" day="24" /></p>
<p>べき級数展開はsinθを無限に微分することによって得られる。式は、</p>
<picture><img src="sin-6.png" width="235" height="55" alt="sinのべき級数展開式" /></picture>
<p>Xを変数とした計算プログラムを組んでみる。</p>
<pre>var X = 1;//(ラジアン)
var MAX = 100;//(演算制度)
var sins=X;
for(i=1;i&lt;MAX;i++){
        var facts=1;
        for(j=1;j&lt;=(2*i+1);j++){
                facts*=j;
        }
        sins += Math.pow(-1,i)/facts*Math.pow(X,2*i+1);
}</pre>
<p>Xはsinθのθの部分。MAXは求めるsinθの精度sinsは求めたsinθの値を格納する。実際に走らせてみる。</p>
<form id="Sin" action="#" onsubmit="return false;">
<fieldset>
<legend>べき級数展開によるsinθ</legend>
<dl>
  <dt>精度</dt>
  <dd><input type="text" value="100" size="7" name="MAX" /></dd>
  <dt>θ</dt>
  <dd><input type="text" value="50" size="7" name="X" /></dd>
  <dt>Debug</dt>
  <dd><textarea rows="10" cols="50" name="text">　</textarea></dd>
</dl>
<p class="submit"><input type="button" value="計算" onclick="SINX(this.form);" onkeypress="SINX(this.form);" /></p>
</fieldset></form>
<p>べき級数展開を使っても代入する角度はラジアンなため、円周率の使用は避けて通れないOTL</p>
</section>

</body>

</page>
