ラベル expansion of maxima の投稿を表示しています。 すべての投稿を表示
ラベル expansion of maxima の投稿を表示しています。 すべての投稿を表示

2010年11月13日土曜日

自作関数のメモ(プロトタイプの時の)

式に指定した関数が使われているか調べる。式に積分、伊藤積分が含まれる場合、その要素の中も調べる。
depends_func (expr func)
> true (if expr depends func)
> false (otherwise)
ex.
(depends_func expr 'mplus)

file:


file:


file:

maximaで使用する数式の関数f(x):=x+1などをlisp内で定義する

(setf (symbol-plist $f) '(MPROPS (NIL MEXPR ((LAMBDA) ((MLIST) $x) (MPLUS $x 1)))))
maximaで
f(x):=x+1;
としたことと同義。

下記のようにすれば、maximaの表示上は定義してように見えるが、その関数を呼び出すことはできない。
(list `(mdefine simp) func2 (mul2 ini (pow '%e ($intstyle e2 y))))


メモ
(setq func1 (concat x n))
(setq func2 (list `(,func1 simp) y))
(setf result1 (mul2 ini (pow '%e ($intstyle e2 y))) )
(setf result2 `(MPROPS (NIL MEXPR ((LAMBDA) ((MLIST) ,y) ,result1))) )
(setf (symbol-plist func1) result2)

2010年11月9日火曜日

Fubiniの定理

Fubiniの定理の実装

目標:時間積分と確率積分の順序を交換。




task:
1. 式からintegrate or ito_integrate を探す。

2. integrandからito_integrate または integrate を探す。
2-1. integrate(ito_integrate())となっているのを発見 => 3
2-2. otherwise => 2

3.順序交換

2010年11月7日日曜日

伊藤の公式

伊藤の公式の実装。
ブラウン運動が異なるときはちゃんと二次変分がゼロになってます。









問題点
1. 初期値を考慮するのを忘れてる。FINISHED!!
2. 時間微分を忘れている。FINISHED!!


課題
1. 被積分関数の整理。係数を前に出す、項を分けるなど。FINISHED 10/11/09
2. \int (\int f dw \int g dw) dw 中も伊藤の公式で整理する。FINISHED!!


発展
1. Fubiniの定理
2. 確率微分方程式