新しく発言する  EXIT  インデックスへ

数値微分式


  数値微分式 しばっち 2008/03/19 21:46:52 
  どのように使うのですか 島村1243 2008/03/20 10:01:11 
  │└返事 しばっち 2008/03/20 13:22:28 
  │ └有難うございます。 島村1243 2008/03/21 22:18:20 
  │  └!Richardsonの補外法(extrapolation) 山中和義 2008/03/22 13:40:09 
  │   └こんなに短いコードで 島村1243 2008/03/22 17:14:23 
  可変精度数値微分 しばっち 2008/03/20 21:07:22  (修正1回)
  │├F=X^2を試したら 島村1243 2008/03/22 10:23:28  (修正1回)
  ││└ご指摘ありがとうございます。こちらのミス... しばっち 2008/03/22 14:59:11 
  ││ └完璧でした。 島村1243 2008/03/22 16:36:45 
  │└可変精度高階数値微分 しばっち 2008/03/23 09:54:12 
Re: 可変精度数値微分  返事を書く  ノートメニュー
しばっち <dihjvcfsyu> 2008/03/23 09:54:12
可変精度高階数値微分


LET H=1/512
INPUT PROMPT "X=":X
INPUT PROMPT "微分階数=":M
LET N=7 !'次数
LET NN=(N+1)/2 !'中央差分
!'LET NN=1 !'前進差分
!'LET NN=N !'後進差分
PRINT DIFF(X,H,NN,N,M);F(X)
END

EXTERNAL FUNCTION DIFF(XX,H,MM,NN,P)
DIM X(NN),Y(NN),A(NN),TMP(NN)
FOR I=1-MM TO NN-MM
LET X(I+MM)=XX+I*H
LET Y(I+MM)=F(X(I+MM))
NEXT I
FOR I=1 TO NN
LET KK=1
LET LL=1
FOR J=1 TO NN
IF J<>I THEN
LET LL=LL*(X(I)-X(J))
LET A(KK)=X(J)
LET KK=KK+1
END IF
NEXT J
LET SS=SS+FAC(P)*DIFFCALC(NN-1,XX,A,TMP,1,NN-1-P)*Y(I)/LL
NEXT I
LET DIFF=SS
END FUNCTION

EXTERNAL FUNCTION F(X)
LET F=X^10
END FUNCTION

EXTERNAL FUNCTION FAC(X)
LET S=1
FOR I=2 TO X
LET S=S*I
NEXT I
LET FAC=S
END FUNCTION

EXTERNAL FUNCTION DIFFCALC(N,XX,X(),T(),K,R)
IF R=0 THEN
LET S=1
FOR I=1 TO N
IF T(I)=1 THEN LET S=S*(XX-X(I))
NEXT I
LET DIFFCALC=S
ELSE
FOR I=K TO N-R+1
LET T(I)=1
LET SS=SS+DIFFCALC(N,XX,X,T,I+1,R-1)
LET T(I)=0
NEXT I
LET DIFFCALC=SS
END IF
END FUNCTION
  高階数値微分式 しばっち 2008/03/22 17:21:13 

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