スポンサーサイト

2008/07/04 13:38 |  TOP

円周率のわからないところ。

円周率の計算

π = 3.14159 26535 89793 ・・・

○円周率を半径1の円を内部から近似する正2^n角形の周囲の長さで求めよ

最初、正2^2角形で近似し、一辺の長さをf(2)=sqrt(2)とする。
正2^n角形の一辺f(n)と正2^(n+1)角形の一辺f(n+1)の関係は、
f(n+1)=sqrt(2-sqrt(4-f(n)*f(n)))
である。円周率は、(2^n)*f(n)/2 となる。


● プログラム
#include
#include
main() {
int n;
double f,pi,w;
pi = 4.0*atan(1.0);
printf("π = %16.12lf \n\n",pi);
printf(" n f(n) π -近似値\n");
w = 4.0; /* w=2^2。*/
f = sqrt(2.0);
for( n=2; n<=31; n++ ) {
f = sqrt(2.0 - sqrt(4.0 - f*f));
w = w * 2.0; /* w=2^n。*/
printf("%2d: ",n);
printf("%15.12f %15.12f\n",f,pi-w*f/2);
}
}



 はい。Cのプログラミングなわけですが、ちょっとわからないところがあるのでメモです。

 プログラムは前提わかってりゃどうとでもなるのでいいんですが、前提部分の、円周率は、(2^n)*f(n)/2 となる。ってのがわからん。

 (2^n)が多角形の各辺の数、f(n)はそれらの長さ。でいいんだよね多分。(ここが間違ってたらどうしようw)

 で、それらの乗算が多角形の辺の長さになる。

 ここまではいいんだけど、なんで2で割ってるの?

 なんで??

 

テーマ : プログラミング - ジャンル : コンピュータ

2008/04/27 03:16 | メモCOMMENT(2)TRACKBACK(0)  TOP

2元連立1次方程式のわからないところ

2元連立1次方程式

 a * x + b * y = e
 c * x + d * y = f

って、

 x = (d*e - b*f)/(a*d - b*c)
 y = (e - a*x)/b

と出せるみたいだけど、なんで???よくわからん。


 普通に展開すると

 x = (e+f - (b+d)y)/(a+c)
 y = (e+f - (a+c)x)/(b+d)

とかになって、xとyのそれぞれの数値を求めなければ出せなくね?

xとyって、変数の計算だけで何故出せるの??

テーマ : 数学 - ジャンル : 学問・文化・芸術

2008/04/26 08:15 | メモCOMMENT(0)TRACKBACK(0)  TOP

C言語わからないことメモその1

 わからないことメモなんで華麗にスルー推奨!!!

 でも、わかる人は答えていってくれてもいーよwww


続きを読む »

テーマ : プログラミング - ジャンル : コンピュータ

2008/03/31 19:16 | メモCOMMENT(0)TRACKBACK(0)  TOP

 | BLOG TOP |