新しく発言する EXIT インデックスへ
コーシーの積分公式

  コーシーの積分公式 クスクス 2006/12/08 20:50:27 
  !コーシーの積分公式:----複素正接函数tan(... クスクス 2006/12/08 20:55:01 
  │└つづき クスクス 2006/12/08 20:56:24 
  │ └注:複素正弦関数、余弦関数の定義について... クスクス 2006/12/09 00:40:55 
  │  ├!難しいので、この状態から始めていいですか... SECOND 2006/12/09 03:19:17 
  │  │└関数の定義周りがモジュールを使って不必要... クスクス 2006/12/09 13:15:27 
  │  └!殆んど違いが有りませんでした。 SECOND 2006/12/10 02:52:50 
  │   └実際の計算ではほとんど差がないようですね... クスクス 2006/12/10 16:50:28 
  │    └話が違って恐縮ですが、4次のルンゲ・クッ... SECOND 2006/12/10 17:24:51 
  │     └ルンゲ・クッタ法で1階の常微分方程式を解く... クスクス 2006/12/13 01:49:26 
  │      └全くその通りになりました。h=0.1とかやって... SECOND 2006/12/13 04:59:38 
  tan(z)のコーシーの積分公式の検証2。先の... クスクス 2006/12/09 14:26:50 
   └プログラムコメント クスクス 2006/12/09 14:29:32 
    └プログラム本体。 クスクス 2006/12/09 14:30:19 

  コーシーの積分公式 クスクス 2006/12/08 20:50:27  ツリーへ

コーシーの積分公式 返事を書く
クスクス 2006/12/08 20:50:27
これは「関数引数」で作ったサンプルのおまけです。十進BASICでは
複素数の加減剰余が自由にできます。せっかくの機能ですので、
単なる実数値の区分求積ではなく、複素積分を複素スチルチェス
積分の定義により求めるサンプルを作って見ました。複素正接
関数 tan(z) の原点中心、半径1.5の円周に沿うコーシー積分の
値を、-8 から 8 までの実軸上、実部と虚部に分けてプロット
します。

  !コーシーの積分公式:----複素正接函数tan(... クスクス 2006/12/08 20:55:01  ツリーへ

Re: コーシーの積分公式 返事を書く
クスクス 2006/12/08 20:55:01
! コーシーの積分公式: ---- 複素正接函数 tan(z) のコーシー積分のプロット ----
!
! ・tan(z) の半径1.5, 原点中心の円周 C 上におけるコーシー積分
! を I(z) とする。Re(I(z)) と Im(I(z))-2 のグラフを区間[-8,8]で描く。
! 複素函数論は、円周 C の内部において tan(z) がコーシー積分に
! 一致し、外で0になることを保障する。プログラムにより、コーシー
! 積分が[-1.5,1.5] 外の実軸上零になること、(-1.5, 1.5) において
! tan(x) に一致することが確認できる。
!
! ・複素線積分は複素スチルチェス積分として表される。STIELTJES_SUM(A, B, M)は
! 複素スチルチェス積分の定義により、コーシー積分を数値的に計算する。
! 本質的にこれは区分求積である。
!
! ・tan(z) は -π/2, π/2 を特異点に持つから、原点中心の積分路 C の半径を
! π/2 より大きく取ることはできない。実際プログラム中の LET DEF_FN.R = 1.5を
! LET DEF_FN.R = 1.6 等として動かしてみれば納得できる。

!-------------- 主プログラム --------------
OPTION ARITHMETIC COMPLEX

DECLARE EXTERNAL NUMERIC DEF_FN.A, DEF_FN.R
DECLARE EXTERNAL FUNCTION DEF_FN.CAUCHY, DEF_FN.C

LET X1 = -8
LET X2 = 8
LET Y1 = -8
LET Y2 = 8
LET DS = 0.02 ! 円弧サイズ
LET DEF_FN.R = 1.5 ! 積分路半径
LET M = CEIL(2*DEF_FN.R*PI/DS) ! 半径 DEF_FN.R の円周を長さ DS の円弧 M 個に分割する

SET WINDOW X1,X2, Y1,Y2
DRAW GRID

PLOT TEXT, AT X1+(X2-X1)*0.01,Y2-(Y2-Y1)*0.05: "線: 実正接函数 tan(x) のグラフ,"
PLOT TEXT, AT X1+(X2-X1)*0.01,Y2-(Y2-Y1)*0.1: "I(z): tan(z) の0中心, 半径" & STR$(DEF_FN.R) & "の円周に沿うコーシー積分,"
PLOT TEXT, AT X1+(X2-X1)*0.01,Y2-(Y2-Y1)*0.15: "赤○: Re(I(z)),"
PLOT TEXT, AT X1+(X2-X1)*0.01,Y2-(Y2-Y1)*0.2: "青○: Im(I(z))-2."
SET POINT STYLE 4
FOR T=-8 TO 8 STEP 0.1
LET DEF_FN.A = T
LET Z = STIELTJES_SUM(0, 2*PI, M)
SET POINT COLOR 4
PLOT POINTS:T,RE(Z)
SET POINT COLOR 2
PLOT POINTS:T,IM(Z)-2
NEXT T

SET LINE COLOR 4
FOR T=-PI/2 TO PI/2 STEP 0.1
PLOT LINES: t,tan(t);
NEXT T

END
!---------------- 主プログラム終わり ----------------

  │└つづき クスクス 2006/12/08 20:56:24  ツリーへ

Re: !コーシーの積分公式:----複素正接函数tan(... 返事を書く
クスクス 2006/12/08 20:56:24
つづき

! 函数定義モジュール
MODULE DEF_FN
MODULE OPTION ARITHMETIC COMPLEX
SHARE NUMERIC I_
PUBLIC NUMERIC A,R ! A: コーシー積分の変数, R: 積分路半径
PUBLIC FUNCTION SINE,COSINE,F,CAUCHY,C

LET R = 1.5 ! 積分路 C の半径
LET I_ = COMPLEX(0,1) ! 虚数単位

! 複素正弦函数 sin(z)
EXTERNAL FUNCTION SINE(Z)
LET SINE = (EXP(I_*Z)-EXP(-I_*Z))/(2*I_)
END FUNCTION

! 複素余弦関数 cos(z)
EXTERNAL FUNCTION COSINE(Z)
LET COSINE = (EXP(I_*Z)+EXP(-I_*Z))/2
END FUNCTION

! 目標函数 (tan(z))
EXTERNAL FUNCTION F(Z)
LET F = SINE(Z)/COSINE(Z)
END FUNCTION

! F(Z)×コーシーの積分核/(2πi) = (1/2πi)sin(z)/(z-a)
EXTERNAL FUNCTION CAUCHY(Z)
WHEN EXCEPTION IN
LET CAUCHY = (1/(2*PI*I_))*DEF_FN.F(Z)/(Z-A)
USE
END WHEN
END FUNCTION

! 積分路 c(t) (半径 Rの原点中心の円周)
EXTERNAL FUNCTION C(T)
LET C = R*EXP(I_*T)
END FUNCTION
END MODULE

! DEF_FN.CAUCHY(DEF_FUN.C(T)) のスティルチェス和の計算
! ・T0: 始時刻, T1: 終時刻, M: 分点数
! ・DEF_FN.FUNC: 被積分函数(モジュール DEF_FN で定義する)
EXTERNAL FUNCTION STIELTJES_SUM(T0, T1, M)
OPTION ARITHMETIC COMPLEX

LET H = (T1-T0)/M
LET T = T0+H/2
LET SUM = 0
FOR I=0 TO M-1
LET SUM = SUM + DEF_FN.CAUCHY(DEF_FN.C(T))*(DEF_FN.C(T+H)-DEF_FN.C(T))
LET T = T + H
NEXT I
LET STIELTJES_SUM = SUM
END FUNCTION

  │ └注:複素正弦関数、余弦関数の定義について... クスクス 2006/12/09 00:40:55  ツリーへ

Re: つづき 返事を書く
クスクス 2006/12/09 00:40:55
注:複素正弦関数、余弦関数の定義について。指数関数を使って
定義してしまいましたが、十進BASICでは双曲線関数が組み込みで
ありますから、本当は公式

cos(x+i*y)=cos(x)cosh(y)-i*sin(x)sinh(y)
sin(x+i*y)=sin(x)cosh(y)+i*cos(x)sinh(y)

を使って桁落ちを防ぐべきです。

  │  ├!難しいので、この状態から始めていいですか... SECOND 2006/12/09 03:19:17  ツリーへ

Re: 注:複素正弦関数、余弦関数の定義について... 返事を書く
SECOND 2006/12/09 03:19:17
!難しいので、この状態から始めていいですか。

! コーシーの積分公式: 複素正接函数 tan(z) のコーシー積分のプロット
!
! ・tan(z) の半径1.5, 原点中心の円周 C 上におけるコーシー積分
! を I(z) とする。Re(I(z)) と Im(I(z))-2 のグラフを区間[-8,8]で描く。
! 複素函数論は、円周 C の内部において tan(z) がコーシー積分に
! 一致し、外で0になることを保障する。プログラムにより、コーシー
! 積分が[-1.5,1.5] 外の実軸上零になること、(-1.5, 1.5) において
! tan(x) に一致することが確認できる。
!
! ・複素線積分は複素スチルチェス積分として表される。STIELTJES_SUM(A, B, M)は
! 複素スチルチェス積分の定義により、コーシー積分を数値的に計算する。
! 本質的にこれは区分求積である。
!
! ・tan(z) は -π/2, π/2 を特異点に持つから、原点中心の積分路 C の半径を
! π/2 より大きく取ることはできない。実際プログラム中の LET DEF_FN.R = 1.5を
! LET DEF_FN.R = 1.6 等として動かしてみれば納得できる。

!----
OPTION ARITHMETIC COMPLEX
LET X1=-8
LET X2= 8
LET Y1=-8
LET Y2= 8
LET DS= 0.02 !円弧サイズ
LET R = 1.5 !積分路 C 半径
LET M = CEIL(2*R*PI/DS)!半径 DEF_FN.R の円周を長さ DS の円弧 M 個に分割する

SET WINDOW X1,X2, Y1,Y2
DRAW GRID
PLOT TEXT, AT X1+(X2-X1)*0.01,Y2-(Y2-Y1)*0.05: "線: 実正接函数 tan(x) のグラフ,"
PLOT TEXT, AT X1+(X2-X1)*0.01,Y2-(Y2-Y1)*0.1: "I(z): tan(z) の0中心, 半径" & STR$(R) & "の円周に沿うコーシー積分,"
PLOT TEXT, AT X1+(X2-X1)*0.01,Y2-(Y2-Y1)*0.15: "赤○: Re(I(z)),"
PLOT TEXT, AT X1+(X2-X1)*0.01,Y2-(Y2-Y1)*0.2: "青○: Im(I(z))-2."

SET POINT STYLE 4
FOR T= -8 TO 8 STEP 0.1
LET A= T
LET Z= STIELTJES_SUM(0, 2*PI, M, A, R)
SET POINT COLOR 4
PLOT POINTS:T,RE(Z)
SET POINT COLOR 2
PLOT POINTS:T,IM(Z)-2
NEXT T

SET LINE COLOR 4
FOR T= -PI/2 TO PI/2 STEP 0.1
PLOT LINES: t,tan(t);
NEXT T
END

!---- CAUCHY(C(T)) のスティルチェス和の計算
! ・T0: 始時刻, T1: 終時刻, M: 分点数
! A: コーシー積分の変数, R: 積分路C半径

EXTERNAL FUNCTION STIELTJES_SUM(T0, T1, M, A, R)
OPTION ARITHMETIC COMPLEX
LET I_= COMPLEX(0,1)
LET H = (T1-T0)/M
LET T = T0+H/2
LET SUM = 0
FOR I =0 TO M-1
LET SUM= SUM + CAUCHY(C(T))*(C(T+H)-C(T))
LET T= T + H
NEXT I
LET STIELTJES_SUM= SUM

!DEF SINE(Z)= (EXP(I_*Z)-EXP(-I_*Z))/(2*I_)!複素正弦函数 sin(z)
!DEF COSINE(Z)= (EXP(I_*Z)+EXP(-I_*Z))/2 ! 複素余弦関数 cos(z)
DEF F(Z)= SINE(Z)/COSINE(Z) !       目標函数 (tan(z))
DEF C(T)= R*EXP(I_*T) !          積分路 c(t) (半径 Rの原点中心の円周)
DEF CAUCHY(Z)= (1/(2*PI*I_))*F(Z)/(Z-A) ! F(Z)×コーシーの積分核/(2πi)= (1/2πi)sin(z)/(z-a)
!----
DEF COSINE(Z)= COS(re(z))*COSH(im(z))-I_*SIN(re(z))*SINH(im(z)) !新cos(z)
DEF SINE(Z)= SIN(re(z))*COSH(im(z))+I_*COS(re(z))*SINH(im(z)) !新sin(z)
END FUNCTION

  │  │└関数の定義周りがモジュールを使って不必要... クスクス 2006/12/09 13:15:27  ツリーへ

Re: !難しいので、この状態から始めていいですか... 返事を書く
クスクス 2006/12/09 13:15:27
関数の定義周りがモジュールを使って不必要に難解になっている
のは、関数引数問題を解決しようとして試作したプログラムを使
い回したからです。「被積分関数名は決め打ちにして、関数定義の
本体は別モジュールDEF_FNで行う。DEF_FN を差し替えるだけで、
同じプログラムを使い回せるようにする。」という事だったんですが・・・
本プログラムの趣旨とは何の関係もありませんので、こんな書き方
はすべきではありません。SECOND さんの書き方が正しいです。

  │  └!殆んど違いが有りませんでした。 SECOND 2006/12/10 02:52:50  ツリーへ

Re: 注:複素正弦関数、余弦関数の定義について... 返事を書く
SECOND 2006/12/10 02:52:50
!殆んど違いが有りませんでした。
!新sin,cos と、旧sin,cos との比較テストプログラムです。
!オーバーフローまでの耐性は、|Z|=710 と |Z|=711 、
!互いの差の、相対比は、いずれも 1~6( x10^-15) でした。
!sinh,cosh が内部で、exp() を使用していると想像されます。
!元へ戻される方が・・
!----
OPTION ARITHMETIC COMPLEX
LET I_= COMPLEX(0,1)

DEF SINE(Z)= (EXP(I_*Z)-EXP(-I_*Z))/(2*I_)!複素正弦函数 sin(z)
DEF COSINE(Z)= (EXP(I_*Z)+EXP(-I_*Z))/2 ! 複素余弦関数 cos(z)

DEF 新SINE(Z)= SIN(re(z))*COSH(im(z))+I_*COS(re(z))*SINH(im(z))
DEF 新COSINE(Z)= COS(re(z))*COSH(im(z))-I_*SIN(re(z))*SINH(im(z))

SET WINDOW -800,1350,-11,9
SET COLOR MIX(15) 0.6,0.6,0.6
DRAW grid(200,1)

LET w1=-18
LET w2=18
LET w3=-8
LET w4=8

SUB prin(w,w$,w1$)
PLOT TEXT,AT SGN(w)*r,ABS(w)-10:w1$&"-overflow"
PLOT TEXT,AT SGN(w)*r,ABS(w)-11:"at |Z|="&STR$(r)
PLOT TEXT,AT SGN(w)*r,ABS(w)-12:w$&w1$
PLOT TEXT,AT SGN(w)*r,ABS(w)-13:"x10^-15"
LET w=0
END SUB

LET r=1
DO
FOR θ=0 TO 2*PI STEP PI/10
LET z=r*EXP(I_*θ)
WHEN EXCEPTION IN
LET a=sine(z)
USE
IF w1<>0 THEN CALL prin(w1,"(sinZ-新sinZ)/","sinZ")
END WHEN
WHEN EXCEPTION IN
LET b=新sine(z)
USE
IF w2<>0 THEN CALL prin(w2,"(sinZ-新sinZ)/","新sinZ")
END WHEN
IF w1<>0 AND w2<>0 THEN
PLOT POINTS:-r,10^15*ABS((a-b)/a)
PLOT POINTS: r,10^15*ABS((a-b)/b)
END IF
WHEN EXCEPTION IN
LET c=cosine(z)
USE
IF w3<>0 THEN CALL prin(w3,"(cosZ-新cosZ)/","cosZ")
END WHEN
WHEN EXCEPTION IN
LET d=新cosine(z)
USE
IF w4<>0 THEN CALL prin(w4,"(cosZ-新cosZ)/","新cosZ")
END WHEN
IF w3<>0 AND w4<>0 THEN
PLOT POINTS:-r,10^15*ABS((c-d)/c)-10
PLOT POINTS: r,10^15*ABS((c-d)/d)-10
END IF
NEXT θ
LET r=r+1
LOOP UNTIL w1=0 AND w2=0 AND w3=0 AND w4=0

END

  │   └実際の計算ではほとんど差がないようですね... クスクス 2006/12/10 16:50:28  ツリーへ

Re: !殆んど違いが有りませんでした。 返事を書く
クスクス 2006/12/10 16:50:28
実際の計算ではほとんど差がないようですね。ただ実引数に対しての
三角関数、双曲線関数の有効桁数がはっきり分かっている場合、
新しい方の定義では、複素引数に対する三角関数の有効桁数が正確に
計算できるメリットがあると思います。

  │    └話が違って恐縮ですが、4次のルンゲ・クッ... SECOND 2006/12/10 17:24:51  ツリーへ

Re: 実際の計算ではほとんど差がないようですね... 返事を書く
SECOND 2006/12/10 17:24:51
話が違って恐縮ですが、4次のルンゲ・クッタ法について教えて下さい。
このページの「2重振り子のカオス」の中で、
微分方程式を、差分化し、tを用いないで使用しています。
これで、正しいでしょうか。

  │     └ルンゲ・クッタ法で1階の常微分方程式を解く... クスクス 2006/12/13 01:49:26  ツリーへ

Re: 話が違って恐縮ですが、4次のルンゲ・クッ... 返事を書く
クスクス 2006/12/13 01:49:26
ルンゲ・クッタ法で1階の常微分方程式を解く場合、時間間隔の幅
h は解こうとする方程式に応じて決めねばなりません。1 だから
大きすぎるとか、小さく取れば取るほど近似の精度が上がるとか
ということはありません。重力加速度GをMKS単位系で9.8に取ると
桁あふれを起こすのは、刻みの幅が1に取られているのと関係が
あると思います。刻み幅を固定してしまった場合、収束を改善
するには、Gなどの解こうとする方程式側のパラーメータを調整
せざるおえなくなるでしょう。

RK法の最適刻み幅は試行錯誤で問題ごとに決めるしかありません。小さく取りすぎれば、逆に精度が落ちたりしますし、大きく
取り過ぎれば、計算値がバラけて全く収束しなかったり、解とは
程遠いものを計算したりすることになります。刻み幅を決めなが
ら計算できる算法もあるようですが、それはRK法を越える別の算法です。

  │      └全くその通りになりました。h=0.1とかやって... SECOND 2006/12/13 04:59:38  ツリーへ

Re: ルンゲ・クッタ法で1階の常微分方程式を解く... 返事を書く
SECOND 2006/12/13 04:59:38
全くその通りになりました。h=0.1 とかやって、g=9.8 に
合せ様とすると、BASIC 側の桁落ちの累積誤差が増える為と
想像しますが、破たんと、暴走、オーバーフローに至るまでの
時間が、遥かに短くなりました。h=1 の現状では、乗算が
不要な為か?、30分は、持ちこたえています。 が・・
やはり、オーバーフローは、時間の問題でやってきます。
これを防ぐには、どうするのでしょうか。

数学的解は、カオスだとしても、現実の計算は、桁落ちのために
周期を持っていると、思うのですが?

  tan(z)のコーシーの積分公式の検証2。先の... クスクス 2006/12/09 14:26:50  ツリーへ

Re: コーシーの積分公式 返事を書く
クスクス 2006/12/09 14:26:50
tan(z) のコーシーの積分公式の検証2。先のプログラムは公式
を検証すると言っても、実軸じょうを調べただけでした。これでは
不十分です。そこで、複素平面上の正方形[-L,L]×[-L,L]内の点z
をランダムに抜き出して、z において公式が精度ε内で成立するか
否かをプロットするプログラムを作りました。パラメータは変数
にしてあるので変更は容易です。SECOND さんのアドバイスにより
関数の定義を変えたので、多少は読みやすくなったと思います。

画面上の○印は公式の成立を肯定、×印は否定する情報です。

   └プログラムコメント クスクス 2006/12/09 14:29:32  ツリーへ

Re: tan(z)のコーシーの積分公式の検証2。先の... 返事を書く
クスクス 2006/12/09 14:29:32
プログラムコメント

! コーシーの積分公式2: ---- 複素正接函数 tan(z) のコーシーの積分公式の検証 ----
!
! ・tan(z) の半径R, 原点中心の円周 C 上におけるコーシー積分
! を I(a) とする。tan(z) のコーシーの積分公式の I(a) について
! 誤差 ε>0 内での成立を正方形 [-L,L]×[-L,L] 内の点をランダムに
! 抜き出して検査する。
!
! ・黒丸は tan(z) の特異点 -π/2,π/2。黄色の円は積分路。
! |z|>R のとき
! a) |I(z)| < ε なら z の位置に青○
! b) |I(z)| >= ε なら の位置×
! |z|<R のとき
! a) |tan(z)-I(z)| < ε なら z の位置に赤○
! b) |tan(z)-I(z)| >= ε なら z の位置に×
! |z|=R のとき
! 円周上の点は除外集合。なにもプロットしない。
!
! ・要するに積分公式の成立を否定するネガティブ情報が×印でプロットされる。
!
! ・特異点-π/2, π/2 の周りに×が密集するのは、I(a) の近似の精度が
! そこで大きく下がるから。

    └プログラム本体。 クスクス 2006/12/09 14:30:19  ツリーへ

Re: プログラムコメント 返事を書く
クスクス 2006/12/09 14:30:19
プログラム本体。

OPTION ARITHMETIC COMPLEX

LET I_ = COMPLEX(0,1) ! 虚数単位
DEF SINE(Z) = SIN(RE(Z))*COSH(IM(Z)) + I_*COS(RE(Z))*SINH(IM(Z)) ! 複素正弦関数 sin(z)
DEF COSINE(Z) = COS(RE(Z))*COSH(IM(Z)) - I_*SIN(RE(Z))*SINH(IM(Z)) ! 複素余弦関数 cos(z)
DEF TANG(Z) = SINE(Z)/COSINE(Z) ! 複素正接関数 tan(z)
DEF CAUCHY(Z, A) = (1/(2*PI*I_))*TANG(Z)/(Z-A) ! F(Z)×コーシーの積分核/(2πi) = (1/2πi)sin(z)/(z-a)
DEF C(T) = R*EXP(I_*T) ! 積分路 = 半径R, 原点中心の円周
DEF I(A,M) = STIELTJES_SUM(0, 2*PI, M) ! tan(z) の C に沿うコーシー積分を分割数 M で近似したもの

LET DS = 0.01 ! 円弧サイズ
LET R = 1.55 ! 積分路半径
LET M = CEIL(2*R*PI/DS) ! 半径 R の円周を長さ DS の円弧 M 個に分割する
LET L = 5 ! 複素平面上の正方形 [-L,L]×[-L,L]。この領域をプログラムが走査する。
LET EPSILON = 0.006 ! 誤差の上限
LET N = 10000 ! サンプル数

LET X1 = -L
LET X2 = L
LET Y1 = -L
LET Y2 = L
SET WINDOW X1,X2, Y1,Y2
DRAW GRID

SET LINE WIDTH 2 ! 積分路を黄色の円で描く
SET LINE COLOR "YELLOW"
DRAW CIRCLE WITH SCALE(R)
SET LINE COLOR "BLACK"
DRAW CIRCLE WITH SCALE((X2-X1)/300)*SHIFT(-PI/2,0) ! tan(z) の特異点を黒丸で描く
DRAW CIRCLE WITH SCALE((X2-X1)/300)*SHIFT(PI/2,0)
SET TEXT JUSTIFY "right", "bottom"
PLOT TEXT, AT -PI/2,0: "-π/2"
SET TEXT JUSTIFY "left", "bottom"
PLOT TEXT, AT PI/2,0: "π/2"

SET POINT COLOR 4
SET POINT STYLE 4
RANDOMIZE
DO WHILE N>0
LET X = X1+(X2-X1)*RND
LET Y = Y1+(Y2-Y1)*RND
LET A = complex(X,Y)
LET Z = STIELTJES_SUM(0, 2*PI, M)
IF ABS(A)>R THEN
IF ABS(Z)<EPSILON THEN
SET POINT COLOR 2
SET POINT STYLE 4
ELSE
SET POINT COLOR 1
SET POINT STYLE 5
END IF
PLOT POINTS: X,Y
ELSEIF ABS(A)<R THEN
IF ABS(TANG(A)-Z)<EPSILON THEN
SET POINT COLOR 4
SET POINT STYLE 4
ELSE
SET POINT COLOR 1
SET POINT STYLE 5
END IF
PLOT POINTS:X,Y
END IF
LET N=N-1
LOOP

! CAUCHY(C(T)) のスティルチェス和の計算
! ・T0: 始時刻, T1: 終時刻, M: 分点数
FUNCTION STIELTJES_SUM(T0, T1, M)

LET H = (T1-T0)/M
LET T = T0+H/2
LET SUM = 0
FOR J=0 TO M-1
LET SUM = SUM + CAUCHY(C(T),A)*(C(T+H)-C(T))
LET T = T + H
NEXT J
LET STIELTJES_SUM = SUM
END FUNCTION

END


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