教えてください

 投稿者:GAI  投稿日:2014年 1月 2日(木)14時17分21秒
  4つが複雑に絡み合う漸化式で
a[n]=(a[n-1]+b[n-1])/2;
b[n]=sqrt(a[n-1]*b[n-1]);
c[n]=(c[n-1]/(4*a[n]))^2;
s[n]=s[n-1]-2^n*c[n];
ただし
a[0]=1;b[0]=1/sqrt(2);c[0]=1/2;s[0]=1/2
とする。

このとき
2*a[n]^2/s[n](as n-->∞)を調べたい。

これをプログラムに組んでやってみようと試みていたんですが、絡まりがうまく処理出来ずに挫折しております。
どの様に処理したら可能なのか教えて下さい。
 

Re: 教えてください

 投稿者:山中和義  投稿日:2014年 1月 2日(木)15時38分49秒
  > No.3277[元記事へ]

GAIさんへのお返事です。

> 4つが複雑に絡み合う漸化式で
> a[n]=(a[n-1]+b[n-1])/2;
> b[n]=sqrt(a[n-1]*b[n-1]);
> c[n]=(c[n-1]/(4*a[n]))^2;
> s[n]=s[n-1]-2^n*c[n];
> ただし
> a[0]=1;b[0]=1/sqrt(2);c[0]=1/2;s[0]=1/2
> とする。
>
> このとき
> 2*a[n]^2/s[n](as n-->∞)を調べたい。

結果は、Πでしょうか!?

nを1、n-1を0と置き換える。
a[n]=(a[n-1]+b[n-1])/2は、a1=(a0+b0)/2となる。

OPTION ARITHMETIC DECIMAL_HIGH

LET a0=1
LET b0=1/SQR(2)
LET c0=1/2
LET s0=1/2

FOR n=1 TO 20
   LET a1=(a0+b0)/2
   LET b1=SQR(a0*b0)
   LET c1=(c0/(4*a1))^2
   LET s1=s0-2^n*c1

   PRINT n; 2*a1^2/s1 - PI

   LET a0=a1 !次へ
   LET b0=b1
   LET c0=c1
   LET s0=s1
NEXT n

END


次のように記述できるが実用的ではありません。(同じ値を何度も計算するため)
n=15は、困難ですね。

OPTION ARITHMETIC DECIMAL_HIGH

FUNCTION a(n)
   IF n=0 THEN LET a=1 ELSE LET a=(a(n-1)+b(n-1))/2
END FUNCTION

FUNCTION b(n)
   IF n=0 THEN LET b=1/SQR(2) ELSE LET b=SQR(a(n-1)*b(n-1))
END FUNCTION

FUNCTION c(n)
   IF n=0 THEN LET c=1/2 ELSE LET c=(c(n-1)/(4*a(n)))^2
END FUNCTION

FUNCTION s(n)
   IF n=0 THEN LET s=1/2 ELSE LET s=s(n-1)-2^n*c(n)
END FUNCTION

FOR n=1 TO 12
   PRINT n; 2*a(n)^2/s(n) - PI
NEXT n

END

 

戻る