新しく発言する  EXIT  インデックスへ
和の公式

  和の公式 しばっち 2008/02/10 17:36:38 

和の公式  返事を書く  ノートメニュー
しばっち <dihjvcfsyu> 2008/02/10 17:36:38
ΣX^Nを求める


PUBLIC NUMERIC MAXLEVEL
LET MAXLEVEL=20
DIM Y(MAXLEVEL+1),X(MAXLEVEL+1)
FOR I=1 TO MAXLEVEL
PRINT "ΣX^";STR$(I);"=";
CALL SUM(X,I)
CALL DISPLAY(X,I+1)
NEXT I
END

EXTERNAL SUB SUM(X(),N)
!'Σ(X^M)=A*N+B*N^2+C*N^3+...+D*N^(M+1)
!' 1
!'1^1*A+1^2*B+1^3*C=Σ(N^2)=1^2
!' N=1
!' 2
!'2^1*A+2^2*B+2^3*C=Σ(N^2)=1^2+2^2
!' N=1
!' 3
!'3^1*A+3^2*B+3^3*C=Σ(N^2)=1^2+2^2+3^2
!' N=1
DIM A(N+1,N+1),B(N+1)
FOR I=1 TO N+1
FOR J=1 TO N+1
LET A(I,J)=I^J
NEXT J
LET B(I)=SUMN(N,I)
NEXT I
MAT A=INV(A)
MAT X=A*B
END SUB

EXTERNAL FUNCTION SUMN(M,X)
FOR I=1 TO X
LET S=S+I^M
NEXT I
LET SUMN=S
END FUNCTION

EXTERNAL SUB DISPLAY(A(),N)
IF N>1 THEN
IF A(N)<0 THEN PRINT "-";
IF ABS(A(N))<>1 THEN
PRINT STR$(ABS(A(N)));"*X^";STR$(N);
ELSE
PRINT "X^";STR$(N);
END IF
END IF
FOR I=N-1 TO 2 STEP -1
IF A(I)<>0 THEN
IF A(I)<0 THEN PRINT "-"; ELSE PRINT "+";
IF ABS(A(I))<>1 THEN
PRINT STR$(ABS(A(I)));"*X^";STR$(I);
ELSEIF ABS(A(I))=1 THEN
PRINT "X^";STR$(I);
END IF
END IF
NEXT I
IF A(1)<>0 THEN
IF N>1 THEN
IF A(1)<0 THEN PRINT "-"; ELSE PRINT "+";
END IF
IF ABS(A(1))<>1 THEN
PRINT STR$(ABS(A(1)));"*X";
ELSEIF ABS(A(1))=1 THEN
PRINT "X";
END IF
END IF
PRINT
END SUB

  !ベルヌーイ多項式からΣi^kを求める 山中和義 2008/02/12 15:00:46 
   └!ベルヌーイ数からΣi^kを求める 山中和義 2008/02/12 16:26:21 
    └!ライプニッツの方法からΣi^kを求める 山中和義 2008/02/12 22:29:13  (修正1回)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。