計算結果が合いません。

 投稿者:たろさ  投稿日:2017年 6月12日(月)12時30分41秒
  OPTION ARITHMETIC COMPLEX

FOR n=2 TO 10 STEP 0.1
   LET x=LOG(FACT(n-1))
   PRINT ROUND(n,2);x
NEXT n
END
---------------------------------
BASIC Acc と 十進BASIC

https://www.wolframalpha.com/
ln(gamma(x));
ln((x-1)!)


http://blogs.yahoo.co.jp/donald_stinger

 

Re: 計算結果が合いません。

 投稿者:白石和夫  投稿日:2017年 6月12日(月)18時18分15秒
  > No.4377[元記事へ]

ご報告ありがとうございました。
FACT関数は非負整数以外の入力に対しEXTYPE4000の例外を生成するのが正しいのですが,
2進モード,複素数モードでチェックが抜けていました。
いずれ修正しますが,とりあえず引数が非負整数の範囲で使ってください。
なお,これは,FACT(n)=PERM(n,n)で定義しているので,PERM関数のバグです。
PERM(n,r)は,rが非負整数でないときEXTYPE4000になるべきでした。



 

Re: 計算結果が合いません。

 投稿者:たろさ  投稿日:2017年 6月12日(月)19時31分41秒
  > No.4378[元記事へ]

白石和夫さんへのお返事です。

> ご報告ありがとうございました。
> FACT関数は非負整数以外の入力に対しEXTYPE4000の例外を生成するのが正しいのですが,
> 2進モード,複素数モードでチェックが抜けていました。
> いずれ修正しますが,とりあえず引数が非負整数の範囲で使ってください。
> なお,これは,FACT(n)=PERM(n,n)で定義しているので,PERM関数のバグです。
> PERM(n,r)は,rが非負整数でないときEXTYPE4000になるべきでした。
>

お忙しいところ恐縮です。別件です。

----------------------------------------
!sin(x)+cos(x)=ρ_n ,sin(x)+cos(x)=zeta(n),
OPTION ARITHMETIC COMPLEX
SET BITMAP SIZE 640*2+1,640*2+1 ! x軸方向にデフォルトのn倍拡張
LET Wi=50
SET WINDOW -.5,2,-5,wi
SET COLOR MODE "REGULAR"
SET COLOR MIX(0) 0,0,0 !背景色黒
SET COLOR MIX(1) 0,0,1 !青
SET COLOR MIX(2) 1,0,0 !赤
SET COLOR MIX(3) 1,0,1 !赤紫
SET COLOR MIX(4) 0,1,0 !緑
SET COLOR MIX(5) 0,1,1 !水色
SET COLOR MIX(6) 1,1,0 !黄色
SET COLOR MIX(7) 1,1,1 !白
CLEAR !CLEAR文は,モード切替え前にSET COLOR MIX(0)で割り当てられた色で画面を塗りつぶす。
DRAW GRID(.5,10)
SET LINE COLOR 5
LET ZERO1=14.1435658457259942670362036372 !abs(ρ_1)
DRAW circle  WITH SCALE(ZERO1)*SHIFT(0,0)

LET ZERO2=21.0279849385071248276781391990
DRAW circle  WITH SCALE(ZERO2)*SHIFT(0,0)

LET ZERO3=25.0158549103229941605743395159
DRAW circle  WITH SCALE(ZERO3)*SHIFT(0,0)

LET ZERO4=30.4289843286609910063177407380
DRAW circle  WITH SCALE(ZERO4)*SHIFT(0,0)

LET ZERO5=32.9388567164704955328815401721
DRAW circle  WITH SCALE(ZERO5)*SHIFT(0,0)

LET A9=19

DATA 0.3751071671920218266   !ρ_n
DATA 0.3808358315180773568
DATA 0.3827206823919593268
DATA 0.3844917185921564522
DATA 0.3851159549678919465
DATA 0.3860527943271225999
DATA 0.3865933572251905934
DATA 0.3869323439242140375
DATA 0.3874937533934756098
DATA 0.3876785568691843285
DATA 0.392699081698724       !zeta(2)
DATA 0.11527703852715692264
DATA 0.0430686148913785
DATA 0.018822570327114491965
DATA 0.00874851187966394
DATA 0.0041922627745319701263
DATA 0.00204285704164369
DATA 0.0010052075320191288978
DATA 0.000497535187258165

DIM A(A9)
MAT READ A

DATA -1.4991587101393674264 !ρ_n
DATA -1.6967776724345700568
DATA -1.7834404027948773685
DATA -1.8812542252228525807
DATA -1.9208434596511019464
DATA -1.9868259982857292363
DATA -2.0292671172330924267
DATA -2.0578419991380527779
DATA -2.1090764852814033995
DATA -2.1271575682140434683
DATA -0.281861187900338      !zeta(2)
DATA 0
DATA 0
DATA 0
DATA 0
DATA 0
DATA 0
DATA 0
DATA 0

DIM B(A9)
MAT READ B
SET POINT STYLE 7
LET i=COMPLEX(0,1)
FOR n=1 TO A9
   FOR nn=1 TO 4
      IF n<11 THEN
         LET x=2*(PI*nn - COMPLEX(A(n) ,B(n))) !ρ_n
      ELSE
         LET x=2*(PI*nn + COMPLEX(A(n) ,B(n))) !zeta(n)
      END IF
      LET z1=(1/2 + i/2)*EXP(-i*x) + (1/2 - i/2)*EXP(i*x)
      LET s1=(1/2 + i/2)*EXP(-i*x)
      LET s2=(1/2 - i/2)*EXP(i*x)
      SET POINT COLOR 2
      PLOT POINTS: RE(s1)+RE(s2) ,IM(s1)+IM(s2)
      PRINT ROUND(n,2);":";z1;RE(s1)+RE(s2);IM(s1)+IM(s2)
   NEXT nn
NEXT n
END
------------------------------------------


LET x=2*(PI*nn - COMPLEX(A(n) ,B(n))) !ρ_n

LET x=2*(PI*nn + COMPLEX(A(n) ,B(n))) !zeta(n)


X  DATA

sin(x)+cos(x)=zeta(n)
sin(x)+cos(x)=ρ_n


LET x=2*(PI*nn (-) COMPLEX(A(n) ,B(n))) !ρ_n

LET x=2*(PI*nn (+) COMPLEX(A(n) ,B(n))) !zeta(n)

この ± のギャップ 高精度計算サイトでも経験しました。



http://blogs.yahoo.co.jp/donald_stinger

 

戻る