HOME <- system("echo ${HOME}", intern=T)
setup_file <- paste(HOME,"/bin/eng_lang_setup.R",sep="")
source(setup_file)
## === knitr, reticulate, eng_lang are go. ===
(linel:70)$ /* 行長を指定(コメント例) */
exp1 : (x+y)^2; /* 式の定義 */
exp2 : expand(exp1); /* 式exp1を展開 */
(display2d:false)$ /* 表示形式の変更 */
factor(exp2); /* 式exp2を因数分解 */
solve(x^2-2*x-1=0,x); /* 2次方程式の求解 */
solve([a*x+b*y=e,c*x+d*y=f],[x,y]); /* 連立方程式の求解 */
/* 作図例 */
draw2d( terminal='png, file_name="test1_files/fig1",
title="Two simple plots",
xlabel="x",ylabel="y",grid=true,
color=red,key="A sinus",
explicit(sin(x),x,1,10),
color=blue,line_type=dots,key="A cosinus",
explicit(cos(x),x,1,10)
)$
## ~/bin/go TMP/tmp_lang/chunk-1.mx > TMP/tmp_lang/chunk-1.out 2>&1
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-1.mx")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-1.mx
## linel:70
## exp1:(x+y)^2
## 2
## (y + x)
## exp2:expand(exp1)
## 2 2
## y + 2 x y + x
## display2d:false
## factor(exp2)
## (y+x)^2
## solve(x^2-2*x-1 = 0,x)
## [x = 1-sqrt(2),x = sqrt(2)+1]
## solve([a*x+b*y = e,c*x+d*y = f],[x,y])
## [[x = -(d*e-b*f)/(b*c-a*d),y = (c*e-a*f)/(b*c-a*d)]]
## draw2d(terminal = 'png,file_name = "test1_files/fig1",
## title = "Two simple plots",xlabel = "x",ylabel = "y",
## grid = true,color = red,key = "A sinus",
## explicit(sin(x),x,1,10),color = blue,line_type = dots,
## key = "A cosinus",explicit(cos(x),x,1,10))
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-1.mx"
batchload("/home/inoue/.maxima/max-init.mac")$
on3lib(21); /* on3ライブライリーの呼び出し */
on3help(); /* ヘルプ */
if false then (
functions /* on3ライブラリの関数一覧 */
)$
if false then (
print("--- 1. on3simp_ex ---------"), on3simp_ex(),
print("--- 2. on3std_ex ----------"), on3std_ex(),
print("--- 3. on3decomp_ex -------"), on3decomp_ex(),
print("--- 4. on3ev_ex -----------"), on3ev_ex(),
print("--- 5. on3diff_ex ---------"), on3diff_ex(),
print("--- 6. on3integ_ex --------"), on3integ_ex(),
print("--- 7. on3solve_ex --------"), on3solve_ex(),
print("--- 8. on3dim2_uni2 -------"), on3dim2_uni2('noplot,'noview),
print("--- 9. on3dim2_exp2 -------"), on3dim2_exp2('noplot,'noview),
print("---10. on3pw_ex -----------"), on3pw_ex()
)$
## ~/bin/go TMP/tmp_lang/chunk-2.mx > TMP/tmp_lang/chunk-2.out 2>&1
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-2.mx")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-2.mx
## batchload("/home/inoue/.maxima/max-init.mac")
## *** INOUE's Personal Init File : ~/.maxima/max-init.mac ***
## on3lib(21)
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## "-- batchload: ~/Maxlib-20/on3lib21.mx & on3env() ---"
## on3help()
## === on3lib.mx (定義域を伴った関数の数式操作) 一覧 ===
## 0. on3help() : on3関数の機能一覧
## 1. on3(z,z0,z1,arg) : on3関数(関数定義域)の定義[変数,下限,上限,開閉]
## 2. f2l(on3funcs) : on3関数式をon3リスト形式に変換する[多変数対応版]
## 3. l2f(on3list) : on3リスト形式をon3関数形式に変換する[多変数対応版]
## 4. on3simp(on3funcs) : on3関数式の積に関する簡約化(on3decompに組み込み)
## 5. on3decomp(funcs,[args]) : [多変数対応版]
## on3関数式の和(差)において素な区間(領域)への分解表現を与える
## 6. on3std(on3func) : on3一般式の標準化
## 7. on3ev(on3func,arg) : 関数部に{factor,ratsimp,expand}を作用する
## 8. on3solve(funcs,vars) : on3関数式の求解[多変数対応版]
## 9. on3diff(func,var,p) : on3関数式の微分[多変数対応版]
## 10. on3integ(func,var,[args]) : on3関数式の積分[多変数対応版]
## on3integ(func,var) : 不定積分関数(分布関数に対応)
## on3integ(func,var,x0,x1) : 定積分値
## 11. on3chgvar2(funcs) : on3関数式f(x,y)を変換(t=x+y,u=y)した関数g(t,u)を返す
## 12. on3show(funcs) : on3関数式の表示[多変数対応版]
##
## 13. on3pw(funcs) : on3関数式のカプセル化
## ex. on3_ex(), on3simp_ex(), on3std_ex(),
## on3decomp_ex(), on3show_ex(), on3ev_ex(),
## on3diff_ex(), on3integ_ex(), on3solve_ex(),
## on3chgvar2_ex() on3pw_ex(),
## ex. on3dim2_uni2() : 一様分布に従う独立確率変数の和の分布
## on3dim2_exp2() : 指数分布に従う独立確率変数の和の分布
## ex. on3test() : on3_ex, on3list_ex, on3simp_ex, on3decomp_ex の連続実行
## ---> 関数表示 dispfun(on3,on3simp,...) または grind(on3)
##
## "--- end of on3help ---"
## if false then functions
## if false
## then (print("--- 1. on3simp_ex ---------"),on3simp_ex(),
## print("--- 2. on3std_ex ----------"),on3std_ex(),
## print("--- 3. on3decomp_ex -------"),on3decomp_ex(),
## print("--- 4. on3ev_ex -----------"),on3ev_ex(),
## print("--- 5. on3diff_ex ---------"),on3diff_ex(),
## print("--- 6. on3integ_ex --------"),on3integ_ex(),
## print("--- 7. on3solve_ex --------"),on3solve_ex(),
## print("--- 8. on3dim2_uni2 -------"),on3dim2_uni2('noplot,'noview),
## print("--- 9. on3dim2_exp2 -------"),on3dim2_exp2('noplot,'noview),
## print("---10. on3pw_ex -----------"),on3pw_ex())
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-2.mx"
batchload("/home/inoue/Maxlib-20/on3lib21.mx")$
on3env()$
on3('ex)$
max_save()$ /* lisp ファイル /tmp/max_save.lisp に書き出す */
## ~/bin/go TMP/tmp_lang/chunk-3.mx > TMP/tmp_lang/chunk-3.out 2>&1
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-3.mx")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-3.mx
## batchload("/home/inoue/Maxlib-20/on3lib21.mx")
## on3env()
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## on3('ex)
## === on3('ex) : on3 関数の使用例 ===
## ▼ 基本動作
## ★ ◎ on3(0,1,3,co) = 0
## ★ ◎ on3(1,1,3,co) = 1
## ★ ◎ on3(3,1,3,co) = 0
## ★ ◎ on3(x,1,3,co) = on3(x,1,3,co)
## ★ ◎ on3(3,1,b,co) = on3(3,1,b,co)
## ★ ◎ on3(x,minf,inf,oo) = on3(x,minf,inf,oo)
## <- ( = 1 であるが,on3decomp()の仕様のため無処理とする)
## ▼ inf/minf の取扱
## ★ ◆ 不一致 ◆ on3(inf,1,inf,co)
## = 0
## <- ans = 1
## ★ ◎ on3(inf+1,1,inf,co) = 0
## ▼ 変数式の取扱
## ★ ◎ on3(a,a-1,a+3,co) = 1
## ★ ◎ on3(a+3,a-1,a+3,co) = 0
## ★ ◎ on3(t-u,t-u,(-u)+t+3,co) = 1
## ★ ◎ on3((-u)+t+3,t-u,(-u)+t+3,co) = 0
## ▼ on3()関数のリスト変換,eval評価
## ★ ◎ on3(x^2,1,4,co,list) = [on3,x^2,1,4,co]
## ★ ◎ on3(x^2,1,4,co,eval) = on3(x,1,2,co)+on3(x,-2,-1,oc)
## ★ ◎ on3(log(x),1,2,cc,eval) = on3(x,%e,%e^2,cc)
## ★ ◎ on3(sin(x),1/2,1,cc,eval) = on3(x,%pi/6,%pi/2,cc)
## ★ ◎ on3(sin(2*x+%pi/4),1/2,1,oo,eval) = on3(x,-%pi/24,%pi/8,oo)
## max_save()
## save("/tmp/max_save.lisp", all)
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-3.mx"
on3()$
on3('ex)$
## ~/bin/go TMP/tmp_lang/chunk-4.mxl > TMP/tmp_lang/chunk-4.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-4.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-4.mxl
## on3()
## --on3('help)--
## 機能: 変数zが不等式 zl <= z < zr (lc=co) のとき1を返しそのたのとき0を返す
## 文法: on3(z,zl,zr,lr,...) lrは開(o)閉(c)を表す. 追加引数としてlist,evalが可能
## 例示:
## on3(z,zl,zr,co); 変数zが不等式 zl <= z < zr のとき1を返しそのたのとき0を返す
## on3(0,1,3,co); -> 0 on3(1,1,3co) -> 1 on3(3,1,3,co) -> 0
## on3(2,1,3,co); -> 1
## on3(x,1,3,co); -> on3(x,1,3,co) 判定不能の場合は定義式を返す
## on3(a,a-1,a+3,co); -> 1
## on3(x^2,1,4,co,list); -> [on3,x^2,1,4,co] (リスト形式に変換)
## on3(log(x),1,2,cc,eval); -> on3(x,%e,%e^2,cc) (evalによる評価変換)
## メモ: findstr('on3) -> on3 を含む関数名一覧を標示する
## --end of on3('help)--
##
## on3('ex)
## === on3('ex) : on3 関数の使用例 ===
## ▼ 基本動作
## ★ ◎ on3(0,1,3,co) = 0
## ★ ◎ on3(1,1,3,co) = 1
## ★ ◎ on3(3,1,3,co) = 0
## ★ ◎ on3(x,1,3,co) = on3(x,1,3,co)
## ★ ◎ on3(3,1,b,co) = on3(3,1,b,co)
## ★ ◎ on3(x,minf,inf,oo) = on3(x,minf,inf,oo)
## <- ( = 1 であるが,on3decomp()の仕様のため無処理とする)
## ▼ inf/minf の取扱
## ★ ◆ 不一致 ◆ on3(inf,1,inf,co)
## = 0
## <- ans = 1
## ★ ◎ on3(inf+1,1,inf,co) = 0
## ▼ 変数式の取扱
## ★ ◎ on3(a,a-1,a+3,co) = 1
## ★ ◎ on3(a+3,a-1,a+3,co) = 0
## ★ ◎ on3(t-u,t-u,(-u)+t+3,co) = 1
## ★ ◎ on3((-u)+t+3,t-u,(-u)+t+3,co) = 0
## ▼ on3()関数のリスト変換,eval評価
## ★ ◎ on3(x^2,1,4,co,list) = [on3,x^2,1,4,co]
## ★ ◎ on3(x^2,1,4,co,eval) = on3(x,1,2,co)+on3(x,-2,-1,oc)
## ★ ◎ on3(log(x),1,2,cc,eval) = on3(x,%e,%e^2,cc)
## ★ ◎ on3(sin(x),1/2,1,cc,eval) = on3(x,%pi/6,%pi/2,cc)
## ★ ◎ on3(sin(2*x+%pi/4),1/2,1,oo,eval) = on3(x,-%pi/24,%pi/8,oo)
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-4.mxl"
on3simp()$
on3simp('ex)$
## ~/bin/go TMP/tmp_lang/chunk-5.mxl > TMP/tmp_lang/chunk-5.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-5.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-5.mxl
## on3simp()
## --begin of on3simp('help)--
## 機能: on3(z,zl,zr,lr) 関数の積に関する簡約化(簡約化規則 on3rule2 を使用する)
## 文法: on3simp(on3()の積)
## 例示: on3simp(x * on3(x,0,3,co) * on3(x,0,3,co)) -> x*on3(x,0,3,co)
## on3simp(x* on3(x,minf,3,co) * x^2 * on3(x,2,4,co)) -> x^3*on3(x,2,3,co)
## on3simp(x^3 * on3(x,0,3,co) / (x*on3(x,1,5,co))) -> x^2*on3(x,1,3,co)
## on3simp(1/(f1*on3(x,1,5,co) + f2*on3(x,2,8,co)) * on3(x,3,10,co))
## -> on3(x,3,10,co)/(f2*on3(x,2,8,co)+f1*on3(x,1,5,co))
## --end of on3simp('help')--
##
## on3simp('ex)
## --begin of on3simp('ex)--
## 例.on3関数の積/商の簡約化
## ★ ◎ on3simp(x * on3(x,0,3,co) * on3(x,0,3,co)) = x*on3(x,0,3,co)
## ★ ◎ on3simp(x^3 * on3(x,0,3,co) / (x * on3(x,0,3,co)))
## = x^2*on3(x,0,3,co)
## ★ ◎ on3simp(x* on3(x,minf,3,co) * x^2 * on3(x,2,4,co))
## = x^3*on3(x,2,3,co)
## ★ ◎ on3simp(x^3 * on3(x,0,3,co) / (x*on3(x,1,5,co)))
## = x^2*on3(x,1,3,co)
## ★ ◎ on3simp(x* on3(x,1,3,co) * x^3 * on3(x,2,4,co) * x * on3(x,2,5,co))
## = x^5*on3(x,2,3,co)
## ★ ◎ on3simp((f1*on3(x,1,5,co) + f2*on3(x,2,8,co)) * on3(x,3,10,co))
## = f2*on3(x,3,8,co)+f1*on3(x,3,5,co)
## ★ ◎ on3simp(1/(f1*on3(x,1,5,co) + f2*on3(x,2,8,co)) * on3(x,3,10,co))
## = on3(x,3,10,co)/(f2*on3(x,2,8,co)+f1*on3(x,1,5,co))
## on3(x, 3, 10, co)
## out = -----------------------------------------
## f2 on3(x, 2, 8, co) + f1 on3(x, 1, 5, co)
## ★ ◎ on3simp((f1*on3(x,1,5,co) + f2*on3(x,2,8,co))*on3(x,minf,inf,oo))
## = f2*on3(x,2,8,co)+f1*on3(x,1,5,co)
## 例0.on3関数の積(評価不能の場合と置数後の評価)
## CS: a = a , ex0 = x^3 * on3(x,0,3,co) / (x*on3(x,a,3,co)) , ex0f =
## on3simp(x^3 * on3(x,0,3,co) / (x*on3(x,a,3,co)))
## ++ 仮定: assume : a <= 3 を追加し,処理を続行する ++
## (%t3) out = x^2*on3(x,0,3,co)*on3(x,a,3,co)
## CS: a = 2
## (%t4) a = 2
## (%t5) out2 = x^2*on3(x,2,3,co)
## --end of on3simp('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-5.mxl"
on3std()$
on3std('ex)$
## ~/bin/go TMP/tmp_lang/chunk-6.mxl > TMP/tmp_lang/chunk-6.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-6.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-6.mxl
## on3std()
## --begin of on3std('help)--
## 機能: 式から指定変数に関するon3標準型(微分・積分可能な多項式)表現を返す
## R1: 非on3式(on3none) → 無処理
## R2: on3単項式(on3monoone,on3mono) → 無処理
## R3: on3多項式(on3poly) → 定数項 f0 があれば f0*on3(x,minf,inf,oo) とする
## R4: on3有理式(on3inv,on3polyinv) → on3排他的区分分解形(on3多項式になる)を返す
## 文法: on3std(expr,var,...)
## 例示: on3std(expr) (1変数の場合) on3std(expr,var) (2変数以上の場合)
## --end of on3std('help')--
##
## on3std('ex)
## --begin of on3std('ex)--
## == on3std_ex : 標準型(変数毎,on3有理式はon3decomp21()が必要) ===
## ◆ 例1
## ex = f0
## on3vars(ex) -> [] var -> var on3typep(ex) -> on3none
## ◎ out = f0
## ◆ 例2
## ex = on3(x,1,2,co)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3monoone
## ◎ out = on3(x,1,2,co)
## ◆ 例3
## ex = -on3(x,1,2,co)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3mono
## ◎ out = -on3(x,1,2,co)
## ◆ 例4
## ex = on3(x,1,2,co)+f0
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out = f0*on3(x,minf,inf,oo)+on3(x,1,2,co)
## ◆ 例5
## ex = f1*f2*on3(x,1,2,co)+f0
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out = f0*on3(x,minf,inf,oo)+f1*f2*on3(x,1,2,co)
## ◆ 例6
## ex = f1*log(x)*on3(x,1,2,co)+f0
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)
## ◆ 例7
## ex = f1*on3(x,5,7,co)+f1*on3(x,3,5,co)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out = f1*on3(x,5,7,co)+f1*on3(x,3,5,co)
## ◆ 例8
## ex = f2*on3(x,2,5,co)+f1*on3(x,1,3,co)+f3*on3(x,0,inf,co)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out = f2*on3(x,2,5,co)+f1*on3(x,1,3,co)+f3*on3(x,0,inf,co)
## ◆ 例9
## ex = 1/(f2*on3(x,3,7,co)+f1*on3(x,1,5,co))+f0*on3(x,3,5,co)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3polyinv
## ◎ out = on3(x,5,7,co)/f2+((f0*(f2+f1)+1)*on3(x,3,5,co))/(f2+f1)+on3(x,1,3,co)/f1
## ◆ 例10
## ex = 1/((f2*on3(x,3,7,co))/(f22*on3(x,3,5,co)+f21*on3(x,1,3,co))+f1*on3(x,1,5,co))+f0
##
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3polyinv
## ◎ out =
## f0*on3(x,5,7,co)+(((f0*f1+1)*f22+f0*f2)*on3(x,3,5,co))/(f1*f22+f2)
## +((f0*f1+1)*on3(x,1,3,co))/f1
## ◆ 例11
## ex = x^2*on3(x,minf,0,oo)+(1-x)*on3(x,1,inf,oo)+((1-x^2)*on3(x,0,1,oo))/2+sin(x)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out =
## sin(x)*on3(x,minf,inf,oo)+x^2*on3(x,minf,0,oo)+(1-x)*on3(x,1,inf,oo)
## -((x^2-1)*on3(x,0,1,oo))/2
## ◆ 例12
## ex = x^2*on3(x,minf,0,oo)+(1-x)*on3(x,1,inf,oo)+((1-x^2)*on3(x,0,1,oo))/2+myfunc(x)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out =
## myfunc(x)*on3(x,minf,inf,oo)+x^2*on3(x,minf,0,oo)+(1-x)*on3(x,1,inf,oo)
## -((x^2-1)*on3(x,0,1,oo))/2
## ◆ 例13
## ex = %e^(1-x)*on3(x,1,inf,co)+x^2*on3(x,0,1,co)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out = %e^(1-x)*on3(x,1,inf,co)+x^2*on3(x,0,1,co)
## ◆ 例14
## ex = f2*on3(x,c,d,co)+f1*on3(x,a,b,co)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out = f2*on3(x,c,d,co)+f1*on3(x,a,b,co)
## ◆ 例15
## ex = f2(x)*on3(x,2,4,co)+f1(x)*on3(x,1,3,co)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out = f2(x)*on3(x,2,4,co)+f1(x)*on3(x,1,3,co)
## ◆ 例16
## ex = f2(x)*on3(x,c,d,co)+f1(x)*on3(x,a,b,co)
## on3vars(ex) -> [x] var -> x on3typep(ex) -> on3poly
## ◎ out = f2(x)*on3(x,c,d,co)+f1(x)*on3(x,a,b,co)
## ◆ 例17
## ex = f1*log(x)*on3(x,1,2,co)*on3(y,3,4,co)+f0
## on3vars(ex) -> [x,y] var -> x on3typep(ex) -> on3poly
## ◎ out = f1*log(x)*on3(x,1,2,co)*on3(y,3,4,co)+f0*on3(x,minf,inf,oo)
## ◆ 例18
## ex = f1*on3(x,1,2,co)*on3(y,3,4,co)+f2+f0
## on3vars(ex) -> [x,y] var -> x on3typep(ex) -> on3poly
## ◎ out = f1*on3(x,1,2,co)*on3(y,3,4,co)+(f2+f0)*on3(x,minf,inf,oo)
## ◆ 例19
## ex = f0*on3(y,5,6,co)+f1*on3(x,1,2,co)*on3(y,3,4,co)
## on3vars(ex) -> [x,y] var -> x on3typep(ex) -> on3poly
## ◎ out = f0*on3(x,minf,inf,oo)*on3(y,5,6,co)+f1*on3(x,1,2,co)*on3(y,3,4,co)
## ◆ 例20
## ex = f1*on3(x,3,7,co)*on3(y,4,8,co)+f2*on3(x,1,5,co)*on3(y,2,6,co)
## on3vars(ex) -> [x,y] var -> x on3typep(ex) -> on3poly
## ◎ out = f1*on3(x,3,7,co)*on3(y,4,8,co)+f2*on3(x,1,5,co)*on3(y,2,6,co)
## ◆ 例21
## ex =
## (y+x+5)*(on3(x,2,3,co)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),cc)
## +on3(x,-3,-2,co)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),cc)
## +on3(x,-2,2,co)*on3(y,-sqrt(9-x^2),-sqrt(4-x^2),cc)
## +on3(x,-2,2,co)*on3(y,sqrt(4-x^2),sqrt(9-x^2),cc))
## on3vars(ex) -> [x,y] var -> x on3typep(ex) -> on3poly
## ◎ out =
## on3(x,2,3,co)*(y+x+5)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),cc)
## +on3(x,-3,-2,co)*(y+x+5)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),cc)
## +on3(x,-2,2,co)*((y+x+5)*on3(y,-sqrt(9-x^2),-sqrt(4-x^2),cc)
## +(y+x+5)*on3(y,sqrt(4-x^2),sqrt(9-x^2),cc))
## ◆ 例22
## ex = r*on3(r,2,3,cc)*(r*sin(t)+r*cos(t)+5)*on3(t,0,2*%pi,cc)
## on3vars(ex) -> [r,t] var -> r on3typep(ex) -> on3poly
## ◎ out = on3(r,2,3,cc)*(r^2*sin(t)+r^2*cos(t)+5*r)*on3(t,0,2*%pi,cc)
## ◆ 例23
## ex = f2*on3(x,1,2,co)*on3(y,3,4,co)+f1*on3(x,1,2,co)*on3(y,3,4,co)
## on3vars(ex) -> [x,y] var -> x on3typep(ex) -> on3poly
## ◎ out = (f2+f1)*on3(x,1,2,co)*on3(y,3,4,co)
## ◆ 例24
## ex = f2*on3(x,1,2,co)*on3(y,4,6,co)+f1*on3(x,1,2,co)*on3(y,3,5,co)
## on3vars(ex) -> [x,y] var -> x on3typep(ex) -> on3poly
## ◎ out = on3(x,1,2,co)*(f2*on3(y,4,6,co)+f1*on3(y,3,5,co))
## ◆ 例25
## ex = 1/(f2*on3(x,1,2,co)*on3(y,4,6,co)+f1*on3(x,1,2,co)*on3(y,3,5,co))
## on3vars(ex) -> [x,y] var -> x on3typep(ex) -> on3inv
## ◎ out = on3(x,1,2,co)/(f2*on3(y,4,6,co)+f1*on3(y,3,5,co))
## ◆ 例26
## ex = on3(x,1,2,co)*on3(y,3,4,co)*on3(z,5,6,co)
## on3vars(ex) -> [x,y,z] var -> x on3typep(ex) -> on3mono
## ◎ out = on3(x,1,2,co)*on3(y,3,4,co)*on3(z,5,6,co)
## ◆ 例27
## ex = f1*on3(x,1,2,co)*on3(y,3,4,co)*on3(z,5,6,co)+f2*on3(y,3,4,co)*on3(z,5,6,co)
## on3vars(ex) -> [x,y,z] var -> x on3typep(ex) -> on3poly
## ◎ out =
## f2*on3(x,minf,inf,oo)*on3(y,3,4,co)*on3(z,5,6,co)
## +f1*on3(x,1,2,co)*on3(y,3,4,co)*on3(z,5,6,co)
## --end of on3std('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-6.mxl"
on3typep()$
on3typep('ex)$
## ~/bin/go TMP/tmp_lang/chunk-7.mxl > TMP/tmp_lang/chunk-7.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-7.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-7.mxl
## on3typep()
## --begin of on3typep('help)--
## 機能: 式からon3式タイプを調べ結果を返す
## on3noe(非on3式), on3monoone(on3単項式,関数部1), on3mono(on3単項式),
## on3inv(on3分数式), on3poly(on3多項式), on3polyinv(on3有理式),
## on3unknown(その他のon3式),
## 文法: on3typep(expr,...)
## 例示:
## --end of on3typep('help')--
##
## on3typep('ex)
## --begin of on3typep('ex)--
## ---<on3タイプ情報>---
## ex = f0
## out:on3typep(ex) = on3none
## ---<on3タイプ情報>---
## ex = on3(x,1,2,co)
## out:on3typep(ex) = on3monoone
## ---<on3タイプ情報>---
## ex = -on3(x,1,2,co)
## out:on3typep(ex) = on3mono
## ---<on3タイプ情報>---
## ex = on3(x,1,2,co)+f0
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = f0-f1*on3(x,1,2,co)
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = f1*f2*on3(x,1,2,co)+f0
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = f1*log(x)*on3(x,1,2,co)+f0
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = f1*on3(x,5,7,co)+f1*on3(x,3,5,co)
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = f2*on3(x,2,5,co)+f1*on3(x,1,3,co)+f3*on3(x,0,inf,co)
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = 1/(f2*on3(x,3,7,co)+f1*on3(x,1,5,co))+f0*on3(x,3,5,co)
## out:on3typep(ex) = on3polyinv
## ---<on3タイプ情報>---
## ex = 1/((f2*on3(x,3,7,co))/(f22*on3(x,3,5,co)+f21*on3(x,1,3,co))+f1*on3(x,1,5,co))+f0
##
## out:on3typep(ex) = on3polyinv
## ---<on3タイプ情報>---
## ex = x^2*on3(x,minf,0,oo)+(1-x)*on3(x,1,inf,oo)+((1-x^2)*on3(x,0,1,oo))/2+sin(x)
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = x^2*on3(x,minf,0,oo)+(1-x)*on3(x,1,inf,oo)+((1-x^2)*on3(x,0,1,oo))/2+myfunc(x)
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = %e^(1-x)*on3(x,1,inf,co)+x^2*on3(x,0,1,co)
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = f1*on3(x,a,b,co)
## out:on3typep(ex) = on3mono
## ---<on3タイプ情報>---
## ex = f2*on3(x,c,d,co)+f1*on3(x,a,b,co)
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = f1(x)*on3(x,1,2,co)
## out:on3typep(ex) = on3mono
## ---<on3タイプ情報>---
## ex = f2(x)*on3(x,2,4,co)+f1(x)*on3(x,1,3,co)
## out:on3typep(ex) = on3poly
## ---<on3タイプ情報>---
## ex = f1(x)*on3(x,a,b,co)
## out:on3typep(ex) = on3mono
## ---<on3タイプ情報>---
## ex = f2(x)*on3(x,c,d,co)+f1(x)*on3(x,a,b,co)
## out:on3typep(ex) = on3poly
## --end of on3typep('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-7.mxl"
on3info()$
on3info('ex)$
## ~/bin/go TMP/tmp_lang/chunk-8.mxl > TMP/tmp_lang/chunk-8.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-8.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-8.mxl
## on3info()
## --begin of on3info('help)--
## 機能: expr に含まれる変数varの関数on3(var...)の情報をリストで返す
## 結果のリストはoutLev()で取り出せる.
## on3多項式を前提とするため,定数項が存在する合も考慮されている(変数毎のon3stdの機能を有する)
## 引数に'std がある場合は指定された変数に関する標準化の結果を返す
## expr が on3有理式の場合は on3decomp21(expr,x,[仮定1,...]) によりon3多項式化を得る.
## 文法: on3info(expr,x,...) or on3info(expr)
## on3info(expr,x,'factor), on3info(expr,x,'std)
## 例示: on3info(f1*log(x)*on3(x,1,2,co)+f0, x,'std)
## -> f0*on3(x,minf,1,oo) + (f0+f1)*on3(x,1,2,co) + f0*on3(x,2,inf,co) (標準化)
## --end of on3info('help')--
##
## on3info('ex)
## --begin of on3info('ex)--
## ---begin of on3info_ex---
## ◆ 例0 ex0 = f1*log(x)*on3(x,1,2,co)+f0 <- on3std未処理の場合
## on3info(ex0,x) =
## [expr = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co),var = x,
## Lon3 = [[on3,x,1,2,co],[on3,x,minf,inf,oo]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(x,1,2,co),on3(x,minf,inf,oo)],Lon3coef = [f1*log(x),f0],
## Lon3lr0 = [minf,1,2,inf],Lon3lr = [1,2],undefpnts = [],
## outf = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)]
## ◆ on3info(ex0,x,'std) = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)
## <- 'std 指定の場合
## ◆ 例1 ex1 = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)
## <- on3std処理済みの場合
## on3info(ex1,x) =
## [expr = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co),var = x,
## Lon3 = [[on3,x,1,2,co],[on3,x,minf,inf,oo]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(x,1,2,co),on3(x,minf,inf,oo)],Lon3coef = [f1*log(x),f0],
## Lon3lr0 = [minf,1,2,inf],Lon3lr = [1,2],undefpnts = [],
## outf = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)]
## ◆ 例1-2 ex1 = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)
## <- 結果リストの一括取り込みと一括削除の例
## ★ (outLev(on3info(ex1,x),"test_"), /* 結果リストをtest_*で取り込む */
## c0show(test_Lon3f), c0show(test_Lon3coef), /* 取り込みリストの表示 */
## killvars(["test_"]) /* 取り込みリストの一括削除 */ , values)
## test_Lon3f = [on3(x,1,2,co),on3(x,minf,inf,oo)]
## test_Lon3coef = [f1*log(x),f0]
## out =
## [ass_hist,chkerrsum,icerror,USER,HOME,ENV,cmd,tmpdirsL,tmp_dir,tmp_maxima_dir,
## tmp_user_dir,tmp_lang_dir,figs_dir,args,max_save_file,progn,debug,std,expr,
## var,wL,ic,Lon3,Lon3lr0,Lon3lr,on3v,on3f,on3coef,Lon3v,Lon3f,Lon3coef,
## undefpnts,outL,outf,ex0,ex1,ex2,ex22,ex3,ex4,ex,cmds,L,out,chk,ans,hlp,hlpL,
## cmdsansL,cmdsL,w_out,chkm,k]
## ◆ 例2-1 ex2 = (f*on3(x,1,3,co))/(f2*on3(x,c,d,co)+f1*on3(x,a,b,co))
## <- 有理式の分母に適用した場合
## ratdenom(ex2) = on3(x,a,b,co)*f1+f2*on3(x,c,d,co)
## on3info(ratdenom(ex2),x) =
## [expr = f2*on3(x,c,d,co)+f1*on3(x,a,b,co),var = x,
## Lon3 = [[on3,x,a,b,co],[on3,x,c,d,co]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(x,a,b,co),on3(x,c,d,co)],Lon3coef = [f1,f2],Lon3lr0 = [a,b,c,d],
## Lon3lr = [a,b,c,d],undefpnts = [false,false,false,false],
## outf = f2*on3(x,c,d,co)+f1*on3(x,a,b,co)]
## ◆ 例2-2 ex22 =
## (f4*on3(x,2,4,co)+f3*on3(x,1,3,co))/(f2*on3(x,c,d,co)+f1*on3(x,a,b,co))
## <- 有理式に適用した場合
## ex22 = (f4*on3(x,2,4,co)+f3*on3(x,1,3,co))/(f2*on3(x,c,d,co)+f1*on3(x,a,b,co))
## on3info(ex22,x,'std) =
## (f4*on3(x,2,4,co))/(f2*on3(x,c,d,co)+f1*on3(x,a,b,co))
## +(f3*on3(x,1,3,co))/(f2*on3(x,c,d,co)+f1*on3(x,a,b,co))
##
## ■ on3decomp21(ex22,x,[1<a,a<2,2<c,c<3,3<b,b<4,4<d]) を実行しon3多項式(排他的分解済)を得る
##
## on3decomp21(ex22,x,[1 < a,a < 2,2 < c,c < 3,3 < b,b < 4,4 < d]) =
## ((f4+f3)*on3(x,c,3,co))/(f2+f1)+(f4*on3(x,b,4,co))/f2+(f3*on3(x,a,2,co))/f1
## +(f4*on3(x,3,b,co))/(f2+f1)+((f4+f3)*on3(x,2,c,co))/f1
## ◆ 例3 ex3 = ex3 第1引数が単変数でない場合
## ex3 = f2*on3(t-u,u,inf,co)+f1*on3(t-u,1,3,co)
## on3info(ex3,t) =
## [expr = f2*on3(t-u,u,inf,co)+f1*on3(t-u,1,3,co),var = t,
## Lon3 = [[on3,t-u,1,3,co],[on3,t-u,u,inf,co]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(t-u,1,3,co),on3(t-u,u,inf,co)],Lon3coef = [f1,f2],Lon3lr0 = [1,3,inf,u],
## Lon3lr = [1,3,u],undefpnts = [false],outf = f2*on3(t-u,u,inf,co)+f1*on3(t-u,1,3,co)]
## ◆ 例4 ex4 = on3(x,1,8,co)*f1(x,y)*on3(y,minf,3,oo)+f2(x,y)*on3(y,2,5,cc)
## 2変数関数の場合
## on3info(ex4,y) =
## [expr = on3(x,1,8,co)*f1(x,y)*on3(y,minf,3,oo)+f2(x,y)*on3(y,2,5,cc),var = y,
## Lon3 = [[on3,y,2,5,cc],[on3,y,minf,3,oo]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(y,2,5,cc),on3(y,minf,3,oo)],Lon3coef = [f2(x,y),on3(x,1,8,co)*f1(x,y)],
## Lon3lr0 = [minf,2,3,5],Lon3lr = [2,3,5],undefpnts = [],
## outf = on3(x,1,8,co)*f1(x,y)*on3(y,minf,3,oo)+f2(x,y)*on3(y,2,5,cc)]
## --end of on3info('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-8.mxl"
on3decomp()$
on3decomp('ex)$
## ~/bin/go TMP/tmp_lang/chunk-9.mxl > TMP/tmp_lang/chunk-9.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-9.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-9.mxl
## on3decomp()
## --begin of on3decomp('help)--
## 機能: on3一般式の排他的分解処理全般
## 文法: on3decomp(expr,...)
## 例示: on3decomp(on3(x,1,2,co)+f0) =
## f0*on3(x,minf,1,oo)+f0*on3(x,2,inf,co)+(f0+1)*on3(x,1,2,co)
## on3decomp(1/(on3(x,1,2,co)+f0)) =
## on3(x,minf,1,oo)/f0+on3(x,2,inf,co)/f0+on3(x,1,2,co)/(f0+1)
## --end of on3decomp('help')--
##
## on3decomp('ex)
## --begin of on3decomp('ex)--
## == on3decomp_ex : 排他的領域分解 ==
## ★ ◎ on3decomp(on3(x,1,2,co)+f0) =
## f0*on3(x,minf,1,oo)+f0*on3(x,2,inf,co)+(f0+1)*on3(x,1,2,co)
## ★ ◎ on3decomp(1/(on3(x,1,2,co)+f0)) =
## on3(x,minf,1,oo)/f0+on3(x,2,inf,co)/f0+on3(x,1,2,co)/(f0+1)
## [ 1 ]
## [ ------ (1 <= x < 2) ]
## [ f0 + 1 ]
## [ ]
## [ 1 ]
## [ -- (2 <= x < inf) ]
## out = [ f0 ]
## [ ]
## [ 1 ]
## [ -- (minf < x < 1) ]
## [ f0 ]
## [ ]
## [ 0 ( otherwise ) ]
## ★ ◎ on3decomp(f1*on3(x,5,7,co)+f1*on3(x,3,5,co)) = f1*on3(x,3,7,co) 領域結合
## ★ ◎ on3decomp(f2*on3(x,2,5,co)+f1*on3(x,1,3,co)+f3*on3(x,0,inf,co))
## =
## f3*on3(x,5,inf,co)+(f3+f2)*on3(x,3,5,co)+(f3+f2+f1)*on3(x,2,3,co)
## +(f3+f1)*on3(x,1,2,co)+f3*on3(x,0,1,co)
## ★ ◎ on3decomp(on3(x,3,10,co)/(f2*on3(x,2,8,co)+f1*on3(x,1,5,co)))
## = on3(x,5,8,co)/f2+on3(x,3,5,co)/(f2+f1)
## [ 1 ]
## [ ------- (3 <= x < 5) ]
## [ f2 + f1 ]
## [ ]
## out = [ 1 ]
## [ -- (5 <= x < 8) ]
## [ f2 ]
## [ ]
## [ 0 ( otherwise ) ]
## ★ ◎ on3decomp(f2*on3(x,2,8,co)+f1*on3(x,1,5,co)) =
## f2*on3(x,5,8,co)+(f2+f1)*on3(x,2,5,co)+f1*on3(x,1,2,co)
## [ f1 (1 <= x < 2) ]
## [ ]
## [ f2 + f1 (2 <= x < 5) ]
## out = [ ]
## [ f2 (5 <= x < 8) ]
## [ ]
## [ 0 ( otherwise ) ]
## ★ ◎ on3decomp(1/(f2*on3(x,3,7,co)+f1*on3(x,1,5,co))+f0*on3(x,3,5,co))
## = on3(x,5,7,co)/f2+((f0*f2+f0*f1+1)*on3(x,3,5,co))/(f2+f1)+on3(x,1,3,co)/f1
## [ 1 ]
## [ -- (1 <= x < 3) ]
## [ f1 ]
## [ ]
## [ f0 f2 + f0 f1 + 1 ]
## [ ----------------- (3 <= x < 5) ]
## out = [ f2 + f1 ]
## [ ]
## [ 1 ]
## [ -- (5 <= x < 7) ]
## [ f2 ]
## [ ]
## [ 0 ( otherwise ) ]
## ★ ◎
## on3decomp(1/((f2*on3(x,3,7,co))/(f22*on3(x,3,5,co)+f21*on3(x,1,3,co))+f1*on3(x,1,5,co))+f0)
##
## =
## f0*on3(x,minf,1,oo)+f0*on3(x,5,inf,co)
## +((f0*f1*f22+f22+f0*f2)*on3(x,3,5,co))/(f1*f22+f2)
## +((f0*f1+1)*on3(x,1,3,co))/f1
## [ f0 f1 + 1 ]
## [ --------- (1 <= x < 3) ]
## [ f1 ]
## [ ]
## [ f0 f1 f22 + f22 + f0 f2 ]
## [ ----------------------- (3 <= x < 5) ]
## out = [ f1 f22 + f2 ]
## [ ]
## [ f0 (5 <= x < inf) ]
## [ ]
## [ f0 (minf < x < 1) ]
## [ ]
## [ 0 ( otherwise ) ]
## ★ ◎ on3decomp(f0*on3(y,5,6,co)+f1*on3(x,1,2,co)*on3(y,3,4,co))
## =
## f0*on3(x,minf,1,oo)*on3(y,5,6,co)+f0*on3(x,1,inf,co)*on3(y,5,6,co)
## +f1*on3(x,1,2,co)*on3(y,3,4,co)
## [ f1 (1 <= x < 2) & (3 <= y < 4) ]
## [ ]
## [ f0 (1 <= x < inf) & (5 <= y < 6) ]
## out = [ ]
## [ f0 (minf < x < 1) & (5 <= y < 6) ]
## [ ]
## [ 0 ( otherwise ) ]
## --end of on3decomp('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-9.mxl"
on3decomp_one()$
on3decomp_one('ex)$
## ~/bin/go TMP/tmp_lang/chunk-10.mxl > TMP/tmp_lang/chunk-10.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-10.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-10.mxl
## on3decomp_one()
## --begin of on3decomp_one('help)--
## 機能: 変数毎の逐次排他的領域分解:特定変数に着目したon3()関数の排他的領域分解を行う.
## 引数に'invが指定されると結果の逆数が返される.
## 条件: 指定した特定変数に関する端点はすべて数値で大小関係は既知とする.
## on3info(expr,var,'std)処理済み
## 文法: on3decomp_one(on3func,var,...)
## 例示:
## ex : f1(x)*on3(x,1,3,co) + f2(x)*on3(x,2,5,co)
## -> f(x,xf) : f1(x)*on3(xf,1,3,co) + f2(x)*on3(xf,2,5,co)
## 端点 minf---1---2---3---5---inf
## -> f1(x)*on3(xf,1,2,co) + (f1(x)+f2(x))*on3(xf,2,3,co) + f2(x)*on3(xf,3,5,co)
## -> 1/f1(x)*on3(xf,1,2,co) + 1/(f1(x)+f2(x))*on3(xf,2,3,co) + 1/f2(x)*on3(xf,3,5,co)
## ('inv が指定された場合)
## 端点の開閉
## ev(f(x,xf),xf=1)=f1(x), ev(f(x,xf,xf=1.5)=f1(x), ev(f(x,xf),xf=2)=f1(x)+f2(x)
## -> on3(xf,1,2,co)
## ev(f(x,xf),xf=2)=f1(x)+f2(x), ev(f(x,xf,xf=2.5)=f1(x)+f2(x), ev(f(x,xf),xf=3)=f2(x)
## -> on3(xf,2,3,co)
## ev(f(x,xf),xf=3)=f2(x), ev(f(x,xf,xf=4)=f2(x), ev(f(x,xf),xf=5)=0
## -> on3(xf,3,5,co)
## --end of on3decomp_one('help')--
##
## on3decomp_one('ex)
## --begin of on3decomp_one('ex)--
## ★ (/* 例1. 排他的区分分解 */
## ex : f1(x)*on3(x,minf,3,co) + f2(x)*on3(x,2,5,cc),
## f : on3decomp_one(ex,x)
## )
## ◎ out = f1(x)*on3(x,minf,2,oo)+f2(x)*on3(x,3,5,cc)+(f2(x)+f1(x))*on3(x,2,3,co)
## ★ (/* 例2-1. 2変量関数を変数yで分解 */
## f20 : f1(x,y)*on3(x,1,8,co)*on3(y,minf,3,oo) + f2(x,y)*on3(y,2,5,cc),
## fy : on3decomp_one(f20,y)
## )
## ◎ out =
## on3(x,1,8,co)*f1(x,y)*on3(y,minf,2,oo)+f2(x,y)*on3(y,3,5,cc)
## +(f2(x,y)+on3(x,1,8,co)*f1(x,y))*on3(y,2,3,co)
##
## ★ (/* 例2-2. fy を変数xで分解 */
## fy : ratexpand(fy), fyx : on3decomp_one(fy,x)
## )
## ◎ out =
## on3(x,1,8,co)*(f1(x,y)*on3(y,minf,2,oo)+f2(x,y)*on3(y,3,5,cc)+f2(x,y)*on3(y,2,3,co)
## +f1(x,y)*on3(y,2,3,co))
## +on3(x,minf,1,oo)*(f2(x,y)*on3(y,3,5,cc)+f2(x,y)*on3(y,2,3,co))
## +on3(x,8,inf,co)*(f2(x,y)*on3(y,3,5,cc)+f2(x,y)*on3(y,2,3,co))
## ● ev(fy,y = 2) = f2(x,2)+on3(x,1,8,co)*f1(x,2)
## --end of on3decomp_one('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-10.mxl"
on3decomp21()$
on3decomp21('ex)$
## ~/bin/go TMP/tmp_lang/chunk-12.mxl > TMP/tmp_lang/chunk-12.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-12.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-12.mxl
## on3decomp21()
## --begin of on3decomp21('help)--
## 機能: 指定変数varに関するon3(var,,,,)関数式の排他的区分分解を変数var毎に試みる
## on3有理式,未定端点に対応する, 特異点(分母が零になる点), 特異区間に対応
## 比較 : on3decomp()は未定端点無しの場合に多変数領域の排他的領域分解を与える
## 文法: on3decomp21(on3func,var,...)
## 例示:
## on3decomp21(1/(x-3),x) -> 1/(x-3)*on3(x,minf,3,oo) + 1/(x-3)*on3(x,3,inf,oo) (特異点)
## ex : f0 + f1*on3(x,a,b,co),
## on3decomp21(ex,x),
## -> f0*on3(x,minf,a,oo) + (f0+f1)*on3(x,a,b,co) + f0*on3(x,b,inf,co)
## on3decomp21(1/(f0 + f1*on3(x,1,3,co)), x),
## -> 1/f0*on3(x,minf,1,oo) + 1/(f0+f1)*on3(x,1,3,co) + 1/f0*on3(x,3,inf,co)
## on3decomp21(1/(f0 + f1*on3(x,a,b,co)), x),
## -> 1/f0*on3(x,minf,a,oo) + 1/(f0+f1)*on3(x,a,b,co) + 1/f0*on3(x,b,inf,co)
## --end of on3decomp21('help')--
##
## on3decomp21('ex)
## --begin of on3decomp21('ex)--
## ★ (/* 例1, on3多項式(未定端点を含む) 明示仮定 */
## ex : f0 + f1*on3(x,a,b,co),
## out : on3decomp21(ex,x,[a<b],debug0))
## ◎ out = f0*on3(x,b,inf,co)+(f1+f0)*on3(x,a,b,co)+f0*on3(x,minf,a,oo)
## ★
## (/* 例2 on3多項式(係数部にxの関数), 未定端点, 明示仮定 ---a---c---b---d--- */
##
## ex3 : f0(x) + f1(x)*on3(x,a,b,co) + f2(x)*on3(x,c,d,co),
## out : on3decomp21(1/ex3,x,[a<c,c<b,b<d],debug0))
## ◎ out =
## on3(x,d,inf,co)/f0(x)+on3(x,c,b,co)/(f2(x)+f1(x)+f0(x))+on3(x,b,d,co)/(f2(x)+f0(x))
## +on3(x,a,c,co)/(f1(x)+f0(x))+on3(x,minf,a,oo)/f0(x)
## ★
## (/* 例3 on3多項式,未定端点を含む, 明示仮定 ---1---a---2---b---3---4--- */
##
## ex : f1*on3(x,1,3,co) + f2*on3(x,2,4,co) + f3*on3(x,a,b,co),
## out : on3decomp21(ex,x,[1<a, a<2, 2<b, b<3],debug0))
## ◎ out =
## (f2+f1)*on3(x,b,3,co)+(f3+f1)*on3(x,a,2,co)+f2*on3(x,3,4,co)
## +(f3+f2+f1)*on3(x,2,b,co)+f1*on3(x,1,a,co)
## ★
## (/* 例4-1. on3有理式:分母が0となる区間が存在しない場合, 未定端点なし */
##
## ex : f0*on3(x,2,6,co)/(f1*on3(x,1,5,co) + f2*on3(x,3,7,co)),
## out : on3decomp21(ex,x,debug0))
## ◎ out = (f0*on3(x,5,6,co))/f2+(f0*on3(x,3,5,co))/(f2+f1)+(f0*on3(x,2,3,co))/f1
## 注:特異区間を明示した解 ansd ->
## None*on3(x,7,8,oo)+(f0*on3(x,5,7,co))/f2+(f0*on3(x,3,5,co))/(f2+f1)
## +(f0*on3(x,1,3,co))/f1+None*on3(x,0,1,oo)
##
## --> ev(ansd,None=0) で特異区間項(None*で始まる項)を除いた表現を得る
##
## ★
## (/* 例4-2. on3有理式:分母が0となる区間が存在する場合の対応, 未定端点なし */
##
## ex : f0*on3(x,0,8,co)/(f1*on3(x,1,5,co) + f2*on3(x,3,7,co)),
## out : on3decomp21(ex,x,debug0))
## ◎ out = (f0*on3(x,5,7,co))/f2+(f0*on3(x,3,5,co))/(f2+f1)+(f0*on3(x,1,3,co))/f1
## ★ (/* 例5-1 on3有理式:分母が0となる区間が存在しない場合 */
## /* 未定端点を含む, 明示仮定 ---a---1---c---b---5---d--- */
## ex : (f2*on3(x,1,5,co)+f3*on3(x,c,d,co))/(f0 + f1*on3(x,a,b,co)),
## out : on3decomp21(ex,x,[a<1,1<c,c<b,b<5,5<d],debug0))
## ◎ out =
## ((f3+f2)*on3(x,c,b,co))/(f1+f0)+((f3+f2)*on3(x,b,5,co))/f0+(f3*on3(x,5,d,co))/f0
## +(f2*on3(x,1,c,co))/(f1+f0)
## ★ (/* 例5-2 on3有理式:分母が0となる区間が存在する場合の対応, */
##
## /* 未定端点を含む, 明示仮定 ---a---c---b---d--- */
## ex : f0/(f1*on3(x,a,b,co) + f2*on3(x,c,d,co)),
## out : on3decomp21(ex,x,[a<c,c<b,b<d],debug0))
## ◎ out = (f0*on3(x,c,b,co))/(f2+f1)+(f0*on3(x,b,d,co))/f2+(f0*on3(x,a,c,co))/f1
## 特異区間項(None*で始まる項)を含めた結果 ansd ->
## None*on3(x,d,inf,oo)+(f0*on3(x,c,b,co))/(f2+f1)+(f0*on3(x,b,d,co))/f2
## +(f0*on3(x,a,c,co))/f1+None*on3(x,minf,a,oo)
##
## --> ev(ansd,None=0) で特異区間項(None*で始まる項)を除いた表現を得る
##
## ★ (/* 例5-3 on3有理式:分母が0となる区間が存在する場合の対応, */
##
##
## /* 未定端点を含む, 特異点[e,c], 明示仮定 ---a--(e)--(c)---b---d--- */
##
## f0 : 1/((x-e)*(x-c)),
## ex : f0/(on3(x,a,b,co) + on3(x,c,d,co)),
## out : on3decomp21(ex,x,[a<e,e<c,c<b,b<d],debug0))
## ◎ out =
## on3(x,e,c,oo)/((x-c)*(x-e))+on3(x,c,b,oo)/(2*(x-c)*(x-e))
## +on3(x,b,d,co)/((x-c)*(x-e))+on3(x,a,e,co)/((x-c)*(x-e))
## ★ (/* 例6-1. 2変量関数を変数 y で分解 */
## f20 : f1(x,y)*on3(x,1,8,co)*on3(y,minf,3,oo) + f2(x,y)*on3(y,2,5,cc),
## fy : on3decomp21(f20,y,debug0))
## ◎ out =
## on3(x,1,8,co)*f1(x,y)*on3(y,minf,2,oo)+f2(x,y)*on3(y,3,5,cc)
## +(f2(x,y)+on3(x,1,8,co)*f1(x,y))*on3(y,2,3,co)
##
## ★ (/* 例6-2. 2変量関数を変数 x で分解 */
## fy : ratexpand(fy), fyx : on3decomp21(fy,x,debug0), c0show(ev(fy,y = 2)), fyx)
## ev(fy,y = 2) = f2(x,2)+on3(x,1,8,co)*f1(x,2)
## ◎ out =
## on3(x,1,8,co)*(f1(x,y)*(on3(y,minf,2,oo)+on3(y,2,3,co))
## +f2(x,y)*(on3(y,3,5,cc)+on3(y,2,3,co)))
## +on3(x,minf,1,oo)*f2(x,y)*(on3(y,3,5,cc)+on3(y,2,3,co))
## +on3(x,8,inf,co)*f2(x,y)*(on3(y,3,5,cc)+on3(y,2,3,co))
## ★ (/* 例7-1 on3多項式 + on3有理式 の排他的分解-1(共通分母), */
## ex : on3(x,1,5,co) + on3(x,1,5,co)/(on3(x,1,3,co)+on3(x,2,4,co)),
## out : on3decomp21(ex,x,debug0))
## ◎ out = 2*on3(x,3,4,co)+(3*on3(x,2,3,co))/2+2*on3(x,1,2,co)
## ★
## (/* 例7-2 on3多項式 + on3有理式 の排他的分解-2(有理式部分の分解), */
##
## ex : on3decomp21(on3(x,1,5,co)/(on3(x,1,3,co)+on3(x,2,4,co)),x) ,
## cashow(ex),
## out : on3decomp21(on3(x,1,5,co) + ex, x,debug0))
## ex -> on3(x,3,4,co)+on3(x,2,3,co)/2+on3(x,1,2,co)
## ◎ out = on3(x,4,5,co)+2*on3(x,3,4,co)+(3*on3(x,2,3,co))/2+2*on3(x,1,2,co)
## --end of on3decomp21('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-12.mxl"
on3decomp21() を内部使用する。
on3decompm()$
on3decompm('ex)$
## ~/bin/go TMP/tmp_lang/chunk-13.mxl > TMP/tmp_lang/chunk-13.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-13.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-13.mxl
## on3decompm()
## --begin of on3decompm('help)--
## 機能: 区間関数 on3(x,...) の多項式を排他的区間に分解する処理を変数リスト'varsL=[x,y,z] の順序で行なう。
## 制限:3変数までのon3多項式。適切な仮定の設定があれば,区間の端点は未定定数を許す。以下の手順に従う。
## 第1分解 expr : sum_{i=1}^iend v1_Lon3f[i]*v1_Lon3coef[i] = v1_outf
## 第2分解 v1_Lon3coef[i] : sum_{j=1}^jend v2_Lon3f[j]*v2_Lon3coef[j] = v2_outf
## 第3分解 v2_Lon3coef[j] : sum_{k=1}^kend v3_Lon3f[k]*v3_Lon3coef[k] = v3_outf
## 文法: on3decompm(expr, ’varsL=[x,y], 'assume=[...])
## 例示:
## ex11 : f1(x)*on3(x,1,5,co) + f2(x)*on3(x,3,7,co),
## on3decompm(ex11,'vars=[x]);
## ---> f1(x)*on3(x,1,3,co) + (f1(x)+f2(x))*on3(x,3,5,co) + f2(x)*on3(x,5,7,co)
## ex12 : f1(x)*on3(x,1,5,co) + f2(x)*on3(x,a,b,co), /* 1--a--5--b */
## assw1 : [1<a,a<5,5<b], /* 仮定の設定 */
## on3decompm(ex12,'vars=[x], 'assume=assw1);
## ---> f1(x)*on3(x,1,a,co) + (f1(x)+f2(x))*on3(x,a,5,co) + f2(x)*on3(x,5,b,co),
## ex22 : f2(x,y)*on3(x,3,7,co)*on3(y,b,d,co)
## + f1(x,y)*on3(x,1,5,co)*on3(y,2,6,co), /* --2--b--6--d-- */
## assw2 : [2<b, b<6, 6<d], /* 仮定の設定 */
## on3decompm(ex22,'vars=[x,y], 'assume=assw2),
## ---> on3(x,3,5,co)*((f1(x,y)+f2(x,y))*on3(y,b,6,co)+f2(x,y)*on3(y,6,d,co)
## +f1(x,y)*on3(y,2,b,co))
## +on3(x,5,7,co)*f2(x,y)*on3(y,b,d,co)
## +on3(x,1,3,co)*f1(x,y)*on3(y,2,6,co),
## --end of on3decompm('help')--
##
## on3decompm('ex)
## --begin of on3decompm('ex)--
## ★ ( /* 例.1 on3decompm() の結果 */
## c0show(expr, varsL, assw),
## out : on3decompm(expr,'vars=varsL, 'assume=assw, debug)
## )
## expr = f2(x)*on3(x,3,7,co)+f1(x)*on3(x,1,5,co) varsL = [x] assw = []
## ◎ out = f2(x)*on3(x,5,7,co)+(f2(x)+f1(x))*on3(x,3,5,co)+f1(x)*on3(x,1,3,co)
## ★ ( /* 例.2 on3decompm() の結果 */
## c0show(expr, varsL, assw),
## out : on3decompm(expr,'vars=varsL, 'assume=assw, debug)
## )
## expr = f2(x)*on3(x,a,b,co)+f1(x)*on3(x,1,5,co) varsL = [x] assw =
## [1 < a,a < 5,5 < b]
## ◎ out = (f2(x)+f1(x))*on3(x,a,5,co)+f2(x)*on3(x,5,b,co)+f1(x)*on3(x,1,a,co)
## ★ ( /* 例.3 on3decompm() の結果 */
## c0show(expr, varsL, assw),
## out : on3decompm(expr,'vars=varsL, 'assume=assw, debug)
## )
## expr = on3(x,3,7,co)*f2(x,y)*on3(y,4,8,co)+on3(x,1,5,co)*f1(x,y)*on3(y,2,6,co) varsL
## = [x,y] assw = []
## ◎ out =
## on3(x,3,5,co)*(f2(x,y)*on3(y,6,8,co)+(f2(x,y)+f1(x,y))*on3(y,4,6,co)
## +f1(x,y)*on3(y,2,4,co))
## +on3(x,5,7,co)*f2(x,y)*on3(y,4,8,co)+on3(x,1,3,co)*f1(x,y)*on3(y,2,6,co)
## ★ ( /* 例.4 on3decompm() の結果 */
## c0show(expr, varsL, assw),
## out : on3decompm(expr,'vars=varsL, 'assume=assw, debug)
## )
## expr = on3(x,3,7,co)*f2(x,y)*on3(y,b,d,co)+on3(x,1,5,co)*f1(x,y)*on3(y,2,6,co) varsL
## = [x,y] assw = [2 < b,b < 6,6 < d]
## ◎ out =
## on3(x,5,7,co)*f2(x,y)*on3(y,b,d,co)+on3(x,3,5,co)
## *((f2(x,y)+f1(x,y))*on3(y,b,6,co)
## +f2(x,y)*on3(y,6,d,co)+f1(x,y)*on3(y,2,b,co))
## +on3(x,1,3,co)*f1(x,y)*on3(y,2,6,co)
## ★ ( /* 例.5 on3decompm() の結果 */
## c0show(expr, varsL, assw),
## out : on3decompm(expr,'vars=varsL, 'assume=assw, debug)
## )
## expr =
## f1*on3(x,1,5,co)*on3(y,2,6,co)*on3(z,5,10,co)
## +f2*on3(x,3,7,co)*on3(y,4,8,co)*on3(z,0,10,co) varsL = [x,y,z] assw = []
## ◎ out =
## on3(x,3,5,co)*(on3(y,4,6,co)*((f2+f1)*on3(z,5,10,co)+f2*on3(z,0,5,co))
## +f1*on3(y,2,4,co)*on3(z,5,10,co)+f2*on3(y,6,8,co)*on3(z,0,10,co))
## +f1*on3(x,1,3,co)*on3(y,2,6,co)*on3(z,5,10,co)
## +f2*on3(x,5,7,co)*on3(y,4,8,co)*on3(z,0,10,co)
## --end of on3decompm('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-13.mxl"
on3info()$
on3info('ex)$
## ~/bin/go TMP/tmp_lang/chunk-14.mxl > TMP/tmp_lang/chunk-14.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-14.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-14.mxl
## on3info()
## --begin of on3info('help)--
## 機能: expr に含まれる変数varの関数on3(var...)の情報をリストで返す
## 結果のリストはoutLev()で取り出せる.
## on3多項式を前提とするため,定数項が存在する合も考慮されている(変数毎のon3stdの機能を有する)
## 引数に'std がある場合は指定された変数に関する標準化の結果を返す
## expr が on3有理式の場合は on3decomp21(expr,x,[仮定1,...]) によりon3多項式化を得る.
## 文法: on3info(expr,x,...) or on3info(expr)
## on3info(expr,x,'factor), on3info(expr,x,'std)
## 例示: on3info(f1*log(x)*on3(x,1,2,co)+f0, x,'std)
## -> f0*on3(x,minf,1,oo) + (f0+f1)*on3(x,1,2,co) + f0*on3(x,2,inf,co) (標準化)
## --end of on3info('help')--
##
## on3info('ex)
## --begin of on3info('ex)--
## ---begin of on3info_ex---
## ◆ 例0 ex0 = f1*log(x)*on3(x,1,2,co)+f0 <- on3std未処理の場合
## on3info(ex0,x) =
## [expr = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co),var = x,
## Lon3 = [[on3,x,1,2,co],[on3,x,minf,inf,oo]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(x,1,2,co),on3(x,minf,inf,oo)],Lon3coef = [f1*log(x),f0],
## Lon3lr0 = [minf,1,2,inf],Lon3lr = [1,2],undefpnts = [],
## outf = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)]
## ◆ on3info(ex0,x,'std) = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)
## <- 'std 指定の場合
## ◆ 例1 ex1 = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)
## <- on3std処理済みの場合
## on3info(ex1,x) =
## [expr = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co),var = x,
## Lon3 = [[on3,x,1,2,co],[on3,x,minf,inf,oo]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(x,1,2,co),on3(x,minf,inf,oo)],Lon3coef = [f1*log(x),f0],
## Lon3lr0 = [minf,1,2,inf],Lon3lr = [1,2],undefpnts = [],
## outf = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)]
## ◆ 例1-2 ex1 = f0*on3(x,minf,inf,oo)+f1*log(x)*on3(x,1,2,co)
## <- 結果リストの一括取り込みと一括削除の例
## ★ (outLev(on3info(ex1,x),"test_"), /* 結果リストをtest_*で取り込む */
## c0show(test_Lon3f), c0show(test_Lon3coef), /* 取り込みリストの表示 */
## killvars(["test_"]) /* 取り込みリストの一括削除 */ , values)
## test_Lon3f = [on3(x,1,2,co),on3(x,minf,inf,oo)]
## test_Lon3coef = [f1*log(x),f0]
## out =
## [ass_hist,chkerrsum,icerror,USER,HOME,ENV,cmd,tmpdirsL,tmp_dir,tmp_maxima_dir,
## tmp_user_dir,tmp_lang_dir,figs_dir,args,max_save_file,progn,debug,std,expr,
## var,wL,ic,Lon3,Lon3lr0,Lon3lr,on3v,on3f,on3coef,Lon3v,Lon3f,Lon3coef,
## undefpnts,outL,outf,ex0,ex1,ex2,ex22,ex3,ex4,ex,cmds,L,out,chk,ans,hlp,hlpL,
## cmdsansL,cmdsL,w_out,chkm,k]
## ◆ 例2-1 ex2 = (f*on3(x,1,3,co))/(f2*on3(x,c,d,co)+f1*on3(x,a,b,co))
## <- 有理式の分母に適用した場合
## ratdenom(ex2) = on3(x,a,b,co)*f1+f2*on3(x,c,d,co)
## on3info(ratdenom(ex2),x) =
## [expr = f2*on3(x,c,d,co)+f1*on3(x,a,b,co),var = x,
## Lon3 = [[on3,x,a,b,co],[on3,x,c,d,co]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(x,a,b,co),on3(x,c,d,co)],Lon3coef = [f1,f2],Lon3lr0 = [a,b,c,d],
## Lon3lr = [a,b,c,d],undefpnts = [false,false,false,false],
## outf = f2*on3(x,c,d,co)+f1*on3(x,a,b,co)]
## ◆ 例2-2 ex22 =
## (f4*on3(x,2,4,co)+f3*on3(x,1,3,co))/(f2*on3(x,c,d,co)+f1*on3(x,a,b,co))
## <- 有理式に適用した場合
## ex22 = (f4*on3(x,2,4,co)+f3*on3(x,1,3,co))/(f2*on3(x,c,d,co)+f1*on3(x,a,b,co))
## on3info(ex22,x,'std) =
## (f4*on3(x,2,4,co))/(f2*on3(x,c,d,co)+f1*on3(x,a,b,co))
## +(f3*on3(x,1,3,co))/(f2*on3(x,c,d,co)+f1*on3(x,a,b,co))
##
## ■ on3decomp21(ex22,x,[1<a,a<2,2<c,c<3,3<b,b<4,4<d]) を実行しon3多項式(排他的分解済)を得る
##
## on3decomp21(ex22,x,[1 < a,a < 2,2 < c,c < 3,3 < b,b < 4,4 < d]) =
## ((f4+f3)*on3(x,c,3,co))/(f2+f1)+(f4*on3(x,b,4,co))/f2+(f3*on3(x,a,2,co))/f1
## +(f4*on3(x,3,b,co))/(f2+f1)+((f4+f3)*on3(x,2,c,co))/f1
## ◆ 例3 ex3 = ex3 第1引数が単変数でない場合
## ex3 = f2*on3(t-u,u,inf,co)+f1*on3(t-u,1,3,co)
## on3info(ex3,t) =
## [expr = f2*on3(t-u,u,inf,co)+f1*on3(t-u,1,3,co),var = t,
## Lon3 = [[on3,t-u,1,3,co],[on3,t-u,u,inf,co]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(t-u,1,3,co),on3(t-u,u,inf,co)],Lon3coef = [f1,f2],Lon3lr0 = [1,3,inf,u],
## Lon3lr = [1,3,u],undefpnts = [false],outf = f2*on3(t-u,u,inf,co)+f1*on3(t-u,1,3,co)]
## ◆ 例4 ex4 = on3(x,1,8,co)*f1(x,y)*on3(y,minf,3,oo)+f2(x,y)*on3(y,2,5,cc)
## 2変数関数の場合
## on3info(ex4,y) =
## [expr = on3(x,1,8,co)*f1(x,y)*on3(y,minf,3,oo)+f2(x,y)*on3(y,2,5,cc),var = y,
## Lon3 = [[on3,y,2,5,cc],[on3,y,minf,3,oo]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(y,2,5,cc),on3(y,minf,3,oo)],Lon3coef = [f2(x,y),on3(x,1,8,co)*f1(x,y)],
## Lon3lr0 = [minf,2,3,5],Lon3lr = [2,3,5],undefpnts = [],
## outf = on3(x,1,8,co)*f1(x,y)*on3(y,minf,3,oo)+f2(x,y)*on3(y,2,5,cc)]
## --end of on3info('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-14.mxl"
outLev()$
outLev('ex)$
## ~/bin/go TMP/tmp_lang/chunk-15.mxl > TMP/tmp_lang/chunk-15.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-15.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-15.mxl
## outLev()
## --begin of outLev('help)--
## 機能: 名前付きリストを展開する
## 文法: outLev(outL,"test_")
## 例示: outL : [L1=[l11,l12],L2=[l21]]
## outLev(outL,"test_") -> test_L1=[l11,l12], test_L2=[l21]
## --end of outLev('help')--
##
## outLev('ex)
## --begin of outLev('ex)--
## ★ (/* outLev() の実行例 */
## ex : on3(x,a,b,co)*on3(y,yl,yr,oo) + x*on3(x,c,d,cc),
## outL : on3info(ex,x), /* on3info()の結果(名前付きリスト)を得る */
## c0show(outL), /* outL の内容確認 */
## outLev(outL,"test_"), /* 変数test_* の形で展開 */
## cshow(values) /* 変数一覧で確認する */
## )
## outL =
## [expr = on3(x,a,b,co)*on3(y,yl,yr,oo)+x*on3(x,c,d,cc),var = x,
## Lon3 = [[on3,x,a,b,co],[on3,x,c,d,cc]],Lon3v = [on3v_1,on3v_2],
## Lon3f = [on3(x,a,b,co),on3(x,c,d,cc)],Lon3coef = [on3(y,yl,yr,oo),x],
## Lon3lr0 = [a,b,c,d],Lon3lr = [a,b,c,d],undefpnts = [false,false,false,false],
## outf = on3(x,a,b,co)*on3(y,yl,yr,oo)+x*on3(x,c,d,cc)]
## CS: values =
## [ass_hist,chkerrsum,icerror,USER,HOME,ENV,cmd,tmpdirsL,tmp_dir,tmp_maxima_dir,
## tmp_user_dir,tmp_lang_dir,figs_dir,args,max_save_file,progn,debug,L,Ll,Lr,prestr,str,
## ex,x,outL,cmds,ans,hlp,hlpL,cmdsansL,cmdsL,w_out,chk,chkm,k,test_expr,test_var,
## test_Lon3,test_Lon3v,test_Lon3f,test_Lon3coef,test_Lon3lr0,test_Lon3lr,
## test_undefpnts,test_outf]
## out =
## [ass_hist,chkerrsum,icerror,USER,HOME,ENV,cmd,tmpdirsL,tmp_dir,tmp_maxima_dir,
## tmp_user_dir,tmp_lang_dir,figs_dir,args,max_save_file,progn,debug,L,Ll,Lr,
## prestr,str,ex,x,outL,cmds,ans,hlp,hlpL,cmdsansL,cmdsL,w_out,chk,chkm,k,
## test_expr,test_var,test_Lon3,test_Lon3v,test_Lon3f,test_Lon3coef,test_Lon3lr0,
## test_Lon3lr,test_undefpnts,test_outf]
## --end of outLev('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-15.mxl"
find_key()$
find_key('ex)$
find_key_no()$
find_key_no('ex)$
## ~/bin/go TMP/tmp_lang/chunk-16.mxl > TMP/tmp_lang/chunk-16.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-16.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-16.mxl
## find_key()
## --begin of find_key('help)--
## 機能: キー付きリストからキー名を含む最初の要素を取り出す. キー名がない場合はFALSEを返す.
## 文法: find_key(list,key,...)
## 例示: find_key([key1=a,key2=b,key3=c],key2) -> key2=b
## --end of find_key('help')--
##
## find_key('ex)
## --begin of find_key('ex)--
## --begin of find_key_ex
## dlist =
## [terminal = png,file_name = "figs/find_key-1",columns = 2,dimensions = [1000,400]]
## find_key(dlist,'columns) = columns = 2
## find_key(dlist,'file_name) = file_name = "figs/find_key-1"
## find_key(dlist,'not_key_name) = false
## --end of find_key('ex)--
## find_key_no()
## --begin of find_key_no('help)--
## 機能: キー付きリストからキー名を含む要素の位置を取り出す
## 文法: find_key_no(list,key,...)
## 例示: find_key_no([key1=a,key2=b,key3=c],key2); -> 2
## find_key_no([key1=a,key2=b,key3=c],key4); -> 0
## --end of find_key_no('help')--
##
## find_key_no('ex)
## --begin of find_key_no('ex)--
## --begin of find_key_no_ex
## dlist =
## [terminal = png,file_name = "figs/find_key_no-1",columns = 2,dimensions = [1000,400]]
## find_key_no(dlist,'columns) = 3
## find_key_no(dlist,'file_name) = 2
## --end of find_key_no('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-16.mxl"
ass_set()$
ass_set('ex)$
fact_var()$
fact_var('ex)$
fact_forget()$
fact_forget('ex)$
killvars()$
killvars('ex)$
## ~/bin/go TMP/tmp_lang/chunk-17.mxl > TMP/tmp_lang/chunk-17.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-17.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-17.mxl
## ass_set()
## --begin of ass_set('help)--
## 機能: 仮定の設定
## 文法: ass_set([a<c,c<b,b<d])
## 例示: ass_set([a<c,c<b,b<d])
## var_fact([a,b,c,d]) facts()出力から変数リストに関連する事実を表示する
## fact_var([a<c,c<b,b<d]) 引数で指定された事実(facts)に現れる変数をリストで返す
## fact_forget([a,b,c,d]) 変数リスト/事実リストで指定された事実を消去する
## on3byon3([[on3,x,1,3,co],[on3,x,2,4,co]],debug1) -> on3(x,2,3,co)
## --end of ass_set('help')--
##
## ass_set('ex)
## --begin of ass_set('ex)--
## ★ /* 仮定の設定: */ ass_set([a<c,c<b,b<d])
## ◎ out = [c > a,b > c,d > b]
## ★ /* 事実の表示: */ var_fact([a,b,c,d])
## ◎ out = [b > c,c > a,d > b]
## ★ /* 事実の変数: */ fact_var([c > a,b > c,d > b])
## ◎ out = [a,b,c,d]
## ★ /* 仮定の本での on3()関数の積 */
## on3byon3(on3(x,a,b,co)*on3(x,c,d,co))
## ◎ out = on3(x,c,b,co)
## ★ /* 事実の消去: */ fact_forget([a,b,c,d])
## ◎ out = []
## ★ /*事実消去の確認: */ var_fact([a,b,c,d])
## ◎ out = []
## ★ /* 無仮定の場合の on3()関数の積 */
## on3byon3(on3(x,a,b,co)*on3(x,c,d,co))
## progn = <on3byon3> wout = unknown ← 積の結果
## ◎ out = unknown
## fact_var()
## --begin of fact_var('help)--
## 機能: facts()出力から変数リストに関連する事実を表示する
## 文法: fact_var([a,b,c,d])
## 例示: fact_var([a<c,c<b,b<d]) -> [a,b,c,d]
## fact_var('facts) -> facts()出力から変数リストに関連する事実を表示する
## --end of fact_var('help)--
##
## fact_var('ex)
## --begin of ass_set('ex)--
## --begin of ass_set('ex)--
## ★ /* 仮定の設定: */ ass_set([a<c,c<b,b<d])
## ◎ out = [c > a,b > c,d > b]
## ★ /* 事実の表示: */ var_fact([a,b,c,d])
## ◎ out = [b > c,c > a,d > b]
## ★ /* 事実の変数: */ fact_var([c > a,b > c,d > b])
## ◎ out = [a,b,c,d]
## ★ /* 仮定の本での on3()関数の積 */
## on3byon3(on3(x,a,b,co)*on3(x,c,d,co))
## ◎ out = on3(x,c,b,co)
## ★ /* 事実の消去: */ fact_forget([a,b,c,d])
## ◎ out = []
## ★ /*事実消去の確認: */ var_fact([a,b,c,d])
## ◎ out = []
## ★ /* 無仮定の場合の on3()関数の積 */
## on3byon3(on3(x,a,b,co)*on3(x,c,d,co))
## progn = <on3byon3> wout = unknown ← 積の結果
## ◎ out = unknown
## fact_forget()
## --begin of fact_forget('help)--
## 機能: 変数リスト/事実リストで指定された事実を消去する
## 文法: fact_forget([a,b,c,d])
## 例示: fact_forget([a,b,c,d]) -> [a,b,c,d] で指定された事実を消去する
## --end of fact_forget('help)--
##
## fact_forget('ex)
## --begin of ass_set('ex)--
## --begin of ass_set('ex)--
## ★ /* 仮定の設定: */ ass_set([a<c,c<b,b<d])
## ◎ out = [c > a,b > c,d > b]
## ★ /* 事実の表示: */ var_fact([a,b,c,d])
## ◎ out = [b > c,c > a,d > b]
## ★ /* 事実の変数: */ fact_var([c > a,b > c,d > b])
## ◎ out = [a,b,c,d]
## ★ /* 仮定の本での on3()関数の積 */
## on3byon3(on3(x,a,b,co)*on3(x,c,d,co))
## ◎ out = on3(x,c,b,co)
## ★ /* 事実の消去: */ fact_forget([a,b,c,d])
## ◎ out = []
## ★ /*事実消去の確認: */ var_fact([a,b,c,d])
## ◎ out = []
## ★ /* 無仮定の場合の on3()関数の積 */
## on3byon3(on3(x,a,b,co)*on3(x,c,d,co))
## progn = <on3byon3> wout = unknown ← 積の結果
## ◎ out = unknown
## killvars()
## --begin of killvars('help)--
## 機能: values; で表示される変数リストからkeysで指定された変数を(一括)削除する
## 文法: killvars(["denom_","numer_","w_","out_"],...)
## 例示:
## values;
## killvars(["denom_","numer_","w_","out_"]);
## values;
## --end of killvars('help')--
##
## killvars('ex)
## --begin of killvars('ex)--
## 現在の変数リスト: values =
## [ass_hist,chkerrsum,icerror,USER,HOME,ENV,cmd,tmpdirsL,tmp_dir,tmp_maxima_dir,
## tmp_user_dir,tmp_lang_dir,figs_dir,args,max_save_file,progn,debug,keys,key,str,svL]
## killvars(["denom_","numer_","w_","out_"]) =
## [ass_hist,chkerrsum,icerror,USER,HOME,ENV,cmd,tmpdirsL,tmp_dir,tmp_maxima_dir,
## tmp_user_dir,tmp_lang_dir,figs_dir,args,max_save_file,progn,debug,keys,key,str,svL]
## 上記処理後の変数リスト: values =
## [ass_hist,chkerrsum,icerror,USER,HOME,ENV,cmd,tmpdirsL,tmp_dir,tmp_maxima_dir,
## tmp_user_dir,tmp_lang_dir,figs_dir,args,max_save_file,progn,debug,keys,key,str,svL]
## --end of killvars('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-17.mxl"
on3ev()$
on3ev('ex)$
## ~/bin/go TMP/tmp_lang/chunk-18.mxl > TMP/tmp_lang/chunk-18.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-18.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-18.mxl
## on3ev()
## --begin of on3ev('help)--
## 機能: on3poly の各関数部を{factor,expand,ratsimp}した表現を返す
## 文法: on3ev(expr,...)
## 例示: ex : x*on3(x,3,4,co)+(x^2-2*x+1)*on3(x,1,2,co)
## on3ev(ex,factor) = x*on3(x,3,4,co)+(x-1)^2*on3(x,1,2,co)
## ex1e : %e^(1-x)*on3(x,1,inf,co)+x^2*on3(x,0,1,co)
## out : on3integ(ex1e,x)
## = (%e^-x*(4*%e^x-3*%e)*on3(x,1,inf,co))/3+(x^3*on3(x,0,1,co))/3
## on3ev(out,expand) = (4/3-%e^(1-x))*on3(x,1,inf,co)+(x^3*on3(x,0,1,co))/3
## --end of on3ev('help')--
##
## on3ev('ex)
## --begin of on3ev('ex)--
## --- on3ev_ex ---
## ★ ( /* 例1. on3 多項式の関数部の因数分解 */
## ex1 : (x^2-2*x+1)*on3(x,1,2,co) + x*on3(x,3,4,co),
## out : on3ev(ex1,factor) )
## ◎ out = x*on3(x,3,4,co)+(x-1)^2*on3(x,1,2,co)
## ★ ( /* 例2. on3 多項式の展開 */
## ex2 : %e^(1-x)*on3(x,1,inf,co)+x^2*on3(x,0,1,co),
## out0 : on3integ(ex2,x), print(" out0 = ",out0),
## out : on3ev(out0,expand) )
## out0 = (1-%e^(1-x))*on3(x,1,inf,co)+on3(x,1,inf,co)/3+(x^3*on3(x,0,1,co))/3
## ◎ out = (4/3-%e^(1-x))*on3(x,1,inf,co)+(x^3*on3(x,0,1,co))/3
## --end of on3ev('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-18.mxl"
on3diff()$
on3diff('ex)$
## ~/bin/go TMP/tmp_lang/chunk-19.mxl > TMP/tmp_lang/chunk-19.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-19.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-19.mxl
## on3diff()
## --begin of on3diff('help)--
## 機能: on3 関数の微分(多変数関数の1変数に関するp階偏微分)を求める
## 文法: on3diff(expr,var,p,...)
## 例示: on3diff(expr,var) <- p=1 として1階偏微分を返す
## ★ ◎ on3diff(sin(x),x) = cos(x)
## ★ ◎ on3diff(x^2*on3(x,0,1,co) + %e^(1-x)*on3(x,1,inf,co), x, 1)
## = 2*x*on3(x,0,1,co)-%e^(1-x)*on3(x,1,inf,oo)
## --end of on3diff('help')--
##
## on3diff('ex)
## --begin of on3diff('ex)--
## == on3diff : 微分 ==
## ▼ 微分
## ★ ◎ on3diff(sin(x),x) = cos(x)
## ★ ◎ on3diff(x^2*on3(x,0,1,co) + %e^(1-x)*on3(x,1,inf,co), x, 1)
## = 2*x*on3(x,0,1,co)-%e^(1-x)*on3(x,1,inf,oo)
## [ 2 x (0 <= x < 1) ]
## [ ]
## out = [ 1 - x ]
## [ - %e (1 < x < inf) ]
## [ ]
## [ 0 ( otherwise ) ]
## ★ ◎
## on3diff(x^2*on3(x,minf,0,oo)+1/2*(1-x^2)*on3(x,0,1,oo)+(1-x)*on3(x,1,inf,oo), x, 1)
## = 2*x*on3(x,minf,0,oo)-on3(x,1,inf,co)-x*on3(x,0,1,oo)
## [ - x (0 < x < 1) ]
## [ ]
## [ - 1 (1 <= x < inf) ]
## out = [ ]
## [ 2 x (minf < x < 0) ]
## [ ]
## [ 0 ( otherwise ) ]
## ★ ◎
## on3diff(x^2 * on3(x,minf,0,oo) + 1/2*(1-x^2)*on3(x,0,1,oo) + (1-x)*on3(x,1,inf,oo) + sin(x)*on3(x,minf,inf,oo), x, 1)
##
## = (cos(x)+2*x)*on3(x,minf,0,oo)+(cos(x)-1)*on3(x,1,inf,co)+(cos(x)-x)*on3(x,0,1,oo)
##
## [ cos(x) - x (0 < x < 1) ]
## [ ]
## [ cos(x) - 1 (1 <= x < inf) ]
## out = [ ]
## [ cos(x) + 2 x (minf < x < 0) ]
## [ ]
## [ 0 ( otherwise ) ]
## --end of on3diff('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-19.mxl"
on3integ()$
on3integ('ex)$
## ~/bin/go TMP/tmp_lang/chunk-20.mxl > TMP/tmp_lang/chunk-20.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-20.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-20.mxl
## on3integ()
## --begin of on3integ('help)--
## 機能: on3()関数を含む式の不定積分,定積分を返す.未定端点,on3有理式に対応(on3decomp21()を使用)
## 文法: on3integ(on3func,var,{vl,vr},...)
## F_i(x) = (F_i(x)-F_i(xl))*on3(x,xl,xr,lr)
## +(F_i(xr)-F_i(xl))*on3(x,xr,inf,lr1),
## where if xl=minf then F_i(xl)=0 (積分定数の定義),
## lr=cc or oc then lr1=oo, lr=co or oo then lr1=co
## 例示: on3integ(on3func,x) 変数xに関する不定積分
## on3integ(2*x, x) -> x^2
## on3integ(2*x + on3(x,1,3,co), x)$
## -> x^2 + (x-1)*on3(x,1,3,co) + (3-1)*on3(x,3,inf,co)
## f2 : 2*on3(x,0,%pi/2,cc)*sin(2*x)+cos(x)*on3(x,0,%pi/2,cc)$
## on3integ(f2,x) ->
## (-on3(x,0,%pi/2,cc)*cos(2*x))+3*on3(x,%pi/2,inf,oo)
## +(sin(x)+1)*on3(x,0,%pi/2,cc)
## f4 : 2*on3(x,0,%pi/4,cc)*sin(2*x)+cos(x)*on3(x,0,%pi/2,cc)
## on3integ(f4,x) ->
## (on3(x,0,%pi/4,cc)*(1-cos(2*x))+on3(x,%pi/4,inf,oo)
## +sin(x)*on3(x,0,%pi/2,cc)+on3(x,%pi/2,inf,oo)
## on3integ(on3func,x,xl,xr) 変数xに関する区間[xl,xr]の定積分
## on3integ(f4,x,minf,inf) -> 2
## ev(out4,x = inf) -> 2
## on3integ(expr(-x)*on3(x,0,inf,co),x,0,inf); -> 1
## --end of on3integ('help')--
##
## on3integ('ex)
## --begin of on3integ('ex)--
## ★ ( /* 例1. 不定積分 */
## ex : on3(x,1,3,co) + on3(x,5,7,oc),
## F : on3integ(ex,x)
## )
## ◎ out = 2*on3(x,7,inf,oo)+(x-5)*on3(x,5,7,oc)+2*on3(x,3,inf,co)+(x-1)*on3(x,1,3,co)
## 注: 不定積分関数 F の微分: on3diff(F,x) = on3(x,5,7,oo)+on3(x,1,3,oo)
## <- 端点の開閉に注意
## ★ ( /* 例2-1. 不定積分(on3多項式:非排他分解) */
## ex : on3(x,1,5,co) + on3(x,3,7,oc),
## F : on3integ(ex,x)
## )
## ◎ out = 4*on3(x,7,inf,oo)+4*on3(x,5,inf,co)+(x-3)*on3(x,3,7,oc)+(x-1)*on3(x,1,5,co)
## 注: 不定積分関数 F の排他的分解: on3decomp21(F,x) =
## 8*on3(x,7,inf,oo)+(x+1)*on3(x,5,7,cc)+(2*x-4)*on3(x,3,5,oo)+(x-1)*on3(x,1,3,cc)
## ★
## ( /* 例2-2. 不定積分(on3多項式:非排他分解->排他的分解,不定積分,排他的分解) */
##
## ex : on3(x,1,5,co) + on3(x,3,7,oc),
## ex1 : on3decomp21(ex,x), c0show("on3排他分解:",ex1),
## F : on3integ(ex1,x)
## )
## on3排他分解: ex1 = on3(x,5,7,cc)+2*on3(x,3,5,oo)+on3(x,1,3,cc)
## ◎ out =
## 2*on3(x,7,inf,oo)+4*on3(x,5,inf,co)+(x-5)*on3(x,5,7,cc)+2*on3(x,3,inf,oo)
## +(2*x-6)*on3(x,3,5,oo)+(x-1)*on3(x,1,3,cc)
## 注: 不定積分関数 F の排他的分解: on3decomp21(F,x) =
## 8*on3(x,7,inf,oo)+(x+1)*on3(x,5,7,cc)+(2*(x-3)+2)*on3(x,3,5,oo)+(x-1)*on3(x,1,3,cc)
## 注: 不定積分関数 F の微分: on3diff(F,x) =
## on3(x,5,7,oo)+2*on3(x,3,5,oo)+on3(x,1,3,oo)
## ★ ( /* 例3. 不定積分 */
## ex : %e^(1-x)*on3(x,1,inf,co)+x^2*on3(x,0,1,co),
## F : on3integ(ex,x)
## )
## ◎ out = (1-%e^(1-x))*on3(x,1,inf,co)+on3(x,1,inf,co)/3+(x^3*on3(x,0,1,co))/3
## [ 3 ]
## [ x ]
## [ -- (0 <= x < 1) ]
## [ 3 ]
## F = [ ]
## [ 4 1 - x ]
## [ - - %e (1 <= x < inf) ]
## [ 3 ]
## [ ]
## [ 0 ( otherwise ) ]
## ★ ( /* 例4. 不定積分 */
## ex : %e^x*on3(x,minf,0,oo)+%e^(-x)*on3(x,0,inf,co),
## F : on3integ(ex,x), F : on3decomp21(F,x)
## )
## ◎ out = %e^x*on3(x,minf,0,oo)+%e^-x*(2*%e^x-1)*on3(x,0,inf,co)
## [ - x x ]
## [ %e (2 %e - 1) (0 <= x < inf) ]
## [ ]
## F = [ x ]
## [ %e (minf < x < 0) ]
## [ ]
## [ 0 ( otherwise ) ]
## ★ ( /* 例5. 不定積分 */
## ex : 3*x^2*on3(x,3,4,co)*on3(y,6,8,co)+2*x*on3(x,1,4,co)*y*on3(y,2,4,co),
## F : on3integ(ex,x), F : on3decomp21(F,x)
## )
## ◎ out =
## on3(x,3,4,co)*((x-3)*(x^2+3*x+9)*on3(y,6,8,co)+(x-1)*(x+1)*y*on3(y,2,4,co))
## +on3(x,4,inf,co)*(37*on3(y,6,8,co)+15*y*on3(y,2,4,co))
## +(x-1)*(x+1)*on3(x,1,3,co)*y*on3(y,2,4,co)
## ★ ( /* 例6. 不定積分 */
## ex : f1*on3(x,a,b,co)+f2*on3(x,c,d,co),
## F : on3integ(ex,x)
## )
## ◎ out =
## (d*f2-c*f2)*on3(x,d,inf,co)+(f2*x-c*f2)*on3(x,c,d,co)+(b*f1-a*f1)*on3(x,b,inf,co)
## +(f1*x-a*f1)*on3(x,a,b,co)
## ★ ( /* 例7. 不定積分 */
## ex : f1*on3(x,a,b,co)+f2*on3(x,c,d,co),
## F : on3integ(ex,x)
## )
## ◎ out =
## (d*f2-c*f2)*on3(x,d,inf,co)+(f2*x-c*f2)*on3(x,c,d,co)+(b*f1-a*f1)*on3(x,b,inf,co)
## +(f1*x-a*f1)*on3(x,a,b,co)
## ★ ( /* 例8. 不定積分 */
## ex : f0+1/(f1*on3(x,a,b,co)+f2*on3(x,c,d,co)),
## ex : on3decomp21(ex,x,[a<c,c<b,b<d],debug0), c0show(ex),
## F : on3integ(ex,x)
## )
## ex =
## ((f0*f2+f0*f1+1)*on3(x,c,b,co))/(f2+f1)+((f0*f2+1)*on3(x,b,d,co))/f2
## +((f0*f1+1)*on3(x,a,c,co))/f1
## ◎ out =
## ((d*(f0*f2+1))/f2-(b*(f0*f2+1))/f2)*on3(x,d,inf,co)
## +(((f0*f2+f0*f1+1)*x)/(f2+f1)-(c*(f0*f2+f0*f1+1))/(f2+f1))*on3(x,c,b,co)
## +((c*(f0*f1+1))/f1-(a*(f0*f1+1))/f1)*on3(x,c,inf,co)
## +(((f0*f2+1)*x)/f2-(b*(f0*f2+1))/f2)*on3(x,b,d,co)
## +((b*(f0*f2+f0*f1+1))/(f2+f1)-(c*(f0*f2+f0*f1+1))/(f2+f1))*on3(x,b,inf,co)
## +(((f0*f1+1)*x)/f1-(a*(f0*f1+1))/f1)*on3(x,a,c,co)
## ★ ( /* 例9. 不定積分関数 (y に関して) */
## ex : f2*on3(x,0,1,co)*on3(y,x,2,co)+f1*on3(x,0,1,co)*on3(y,x,1,co),
## F : on3integ(ex,y), F : ev(F, ratexpand, ratsimp)
## )
## ◎ out =
## on3(x,0,1,co)*(y*(f2*on3(y,x,2,co)+f1*on3(y,x,1,co))
## +2*f2*on3(y,2,inf,co)+f1*on3(y,1,inf,co))
## +x*on3(x,0,1,co)
## *(f2*((-on3(y,x,2,co))-on3(y,2,inf,co))+f1*((-on3(y,x,1,co))-on3(y,1,inf,co)))
## ★ ( /* 例10. 不定積分関数 (y に関して) */
## ex : f1*on3(x,1,2,co)*on3(y,y1(x),y2(x),co),
## F : on3integ(ex,y)
## )
## ◎ out =
## (f1*y2(x)*on3(x,1,2,co)-f1*y1(x)*on3(x,1,2,co))*on3(y,y2(x),inf,co)
## +(f1*on3(x,1,2,co)*y-f1*y1(x)*on3(x,1,2,co))*on3(y,y1(x),y2(x),co)
## ★ ( /* 例11. 2重定積分 */
## ex : (y+x+5)*(on3(x,2,3,co)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),cc)
## +on3(x,-3,-2,co)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),cc)
## +on3(x,-2,2,co)*on3(y,-sqrt(9-x^2),-sqrt(4-x^2),cc)
## +on3(x,-2,2,co)*on3(y,sqrt(4-x^2),sqrt(9-x^2),cc)),
## Fx : on3integ(ex,y,minf,inf), print(" Fx = ",Fx),
## F : on3integ(Fx,x,minf,inf) )
## Fx =
## 2*(x+5)*sqrt(9-x^2)*on3(x,2,3,co)+2*(x+5)*sqrt(9-x^2)*on3(x,-2,2,co)
## -2*(x+5)*sqrt(4-x^2)*on3(x,-2,2,co)
## +2*(x+5)*sqrt(9-x^2)*on3(x,-3,-2,co)
## ◎ out = 25*%pi
## --end of on3integ('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-20.mxl"
on3integ19()$
on3integ19('ex)$
## ~/bin/go TMP/tmp_lang/chunk-21.mxl > TMP/tmp_lang/chunk-21.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-21.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-21.mxl
## on3integ19()
## --begin of on3integ19('help)--
## 機能: on3()関数を含む式の不定積分,定積分を返す.(on3decomp()を必要としない)
## 文法: on3integ19(on3func,var,{vl,vr},...)
## F_i(x) = (F_i(x)-F_i(xl))*on3(x,xl,xr,lr)
## +(F_i(xr)-F_i(xl))*on3(x,xr,inf,lr1),
## where if xl=minf then F_i(xl)=0 (積分定数の定義),
## lr=cc or oc then lr1=oo, lr=co or oo then lr1=co
## 例示: on3integ19(on3func,x) 変数xに関する不定積分
## on3integ19(2*x, x) -> x^2
## on3integ19(2*x + on3(x,1,3,co), x)$
## -> x^2 + (x-1)*on3(x,1,3,co) + (3-1)*on3(x,3,inf,co)
## f2 : 2*on3(x,0,%pi/2,cc)*sin(2*x)+cos(x)*on3(x,0,%pi/2,cc)$
## on3integ19(f2,x) ->
## (-on3(x,0,%pi/2,cc)*cos(2*x))+3*on3(x,%pi/2,inf,oo)
## +(sin(x)+1)*on3(x,0,%pi/2,cc)
## f4 : 2*on3(x,0,%pi/4,cc)*sin(2*x)+cos(x)*on3(x,0,%pi/2,cc)
## on3integ19(f4,x) ->
## (on3(x,0,%pi/4,cc)*(1-cos(2*x))+on3(x,%pi/4,inf,oo)
## +sin(x)*on3(x,0,%pi/2,cc)+on3(x,%pi/2,inf,oo)
## on3integ19(on3func,x,xl,xr) 変数xに関する区間[xl,xr]の定積分
## on3integ19(f4,x,minf,inf) -> 2
## ev(out4,x = inf) -> 2
## on3integ19(exp(-x)*on3(x,0,inf,co),x,0,inf); -> 1
## --end of on3integ19('help')--
##
## on3integ19('ex)
## --begin of on3integ19('ex)--
## ★ ( /* 例1. 不定積分 */
## f : f0, cashow(on3typep(f)),
## F : on3integ19(f,x) )
## on3typep(f) -> on3none
## ◎ out = f0*x
## ★ ( /* 例2. 不定積分 */
## f : f1*on3(x,1,3,co) + f2*on3(x,4,6,co),
## F : on3integ19(f,x), F : on3decomp(F) )
## ◎ out =
## 2*(f2+f1)*on3(x,6,inf,co)+(f2*x-4*f2+2*f1)*on3(x,4,6,co)+2*f1*on3(x,3,4,co)
## +f1*(x-1)*on3(x,1,3,co)
## ★ ( /* 例3. 不定積分 */
## f : 2*sin(2*x)*on3(x,0,%pi/2,cc) + 3*cos(3*x)*on3(x,0,%pi/3,cc),
## F : on3integ19(f,x) )
## ◎ out =
## on3(x,0,%pi/3,cc)*sin(3*x)+on3(x,0,%pi/2,cc)*(1-cos(2*x))+2*on3(x,%pi/2,inf,oo)
## on3ev(F,factor) ->
## on3(x,0,%pi/3,cc)*sin(3*x)-on3(x,0,%pi/2,cc)*(cos(2*x)-1)+2*on3(x,%pi/2,inf,oo)
## 例4a: 微分関数の積分
## f = %e^(x-1)*on3(x,minf,1,oo)+%e^(1-x)*on3(x,1,inf,co)
## df:on3diff(f,x) -> df = %e^(x-1)*on3(x,minf,1,oo)-%e^(1-x)*on3(x,1,inf,oo)
## out : on3integ19(df,x) -> out =
## %e^((-x)-1)*(%e^(2*x)*on3(x,minf,1,oo)-%e^(x+1)*on3(x,1,inf,oo)+%e^2*on3(x,1,inf,oo)
## +%e^(x+1)*on3(x,1,inf,co))
## out1 : on3ev(out,expand) -> out1 =
## %e^(x-1)*on3(x,minf,1,oo)+(%e^(1-x)-1)*on3(x,1,inf,oo)+on3(x,1,inf,co)
## is(equal(out1,f)) = unknown
## on3ev(chk1,expand) = (-on3(x,1,inf,oo))+on3(x,1,inf,co)-on3(x,1,1,cc)
## 例4b: 積分関数の微分
## f = %e^(x-1)*on3(x,minf,1,oo)+%e^(1-x)*on3(x,1,inf,co)
## F : on3integ19(f,x) -> F =
## %e^((-x)-1)*(%e^(2*x)*on3(x,minf,1,oo)+(2*%e^(x+1)-%e^2)*on3(x,1,inf,co))
## F : on3ev(F,expand) -> F = %e^(x-1)*on3(x,minf,1,oo)+(2-%e^(1-x))*on3(x,1,inf,co)
## dF : on3diff(F,x) -> dF = %e^(x-1)*on3(x,minf,1,oo)+%e^(1-x)*on3(x,1,inf,co)
## is(equal(dF,f)) = true
## ★
## ( /* F (直前の結果) の微分 on3diff(F,x) と f の比較(端点を除いて一致する)*/
##
## dF : on3diff(F,x)
## )
## ◎ out = %e^(x-1)*on3(x,minf,1,oo)+%e^(1-x)*on3(x,1,inf,co)
## --end of on3integ19('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-21.mxl"
on3solve()$
on3solve('ex)$
## ~/bin/go TMP/tmp_lang/chunk-22.mxl > TMP/tmp_lang/chunk-22.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-22.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-22.mxl
## on3solve()
## --begin of on3solve('help)--
## 機能: on3 関数方程式の求解 (多変数対応版)
## 文法: on3solve(funcs,vars,...)
## 例示:
## 例1. 不等式の求解
## eq1 : x^2 * on3(x,minf,0,oo) + (1-x^2)/2 * on3(x,0,1,co)
## + (1-x) * on3(x,1,inf,co) - 1/8$
## out : on3solve(eq1, x);
## -> [x = -1/2^(3/2),x = sqrt(3)/2]
## 例2. 連立不等式の求解
## eq21 : (x^2+y^2-2)*on3(y,0,inf,co) + (x^2+y^2-9)*on3(y,minf,0,oo)$
## eq22 : (x-y)*on3(x,1,inf,co) + (3*x-2*y)*on3(x,0,1,co)
## + (2*x-y)*on3(x,minf,0,oo)$
## out : on3solve([eq21,eq22],[x,y]);
## -> [[x = -3/sqrt(5),y = -6/sqrt(5)],
## [x = 2^(3/2)/sqrt(13),y = (3*sqrt(2))/sqrt(13)],
## [x = 1,y = 1]]
## --end of on3solve('help')--
##
## on3solve('ex)
## --begin of on3solve('ex)--
## --begin of on3solve_ex--
## ★ ( /* 例1. 不等式の求解 */
##
## eq1 : x^2 * on3(x,minf,0,oo) + (1-x^2)/2 * on3(x,0,1,co) + (1-x) * on3(x,1,inf,co) -1/8,
##
## out : on3solve(eq1, x) )
## ◎ out = [x = -1/2^(3/2),x = sqrt(3)/2]
## ★ ( /* 例2. 連立不等式の求解 */
## eq21 : (x^2+y^2-2)*on3(y,0,inf,co) + (x^2+y^2-9)*on3(y,minf,0,oo),
## eq22 : (x-y)*on3(x,1,inf,co) + (3*x-2*y)*on3(x,0,1,co) + (2*x-y)*on3(x,minf,0,oo),
## out : on3solve([eq21,eq22],[x,y]) )
## ◎ out =
## [[x = -3/sqrt(5),y = -6/sqrt(5)],[x = 2^(3/2)/sqrt(13),y = (3*sqrt(2))/sqrt(13)],
## [x = 1,y = 1]]
## --end of on3solve('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-22.mxl"
on3D2G()$
on3D2G('ex)$
on3D2G('test)$
## ~/bin/go TMP/tmp_lang/chunk-23.mxl > TMP/tmp_lang/chunk-23.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-23.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-23.mxl
## on3D2G()
## --begin of on3D2G('help)--
## 機能: on3D2G : 矩形領域 D(x,y) 変換 t=x+y, u=y のとき G(t,u) を求める
## 文法: on3D2G(on3(x,xl,xr,xlr)*on3(y,yl,yr,ylr),'typeA|'typeB|'typeE)
## or on3D2G([on3,x,xl,xr,xlr],[on3,y,yl,yr,ylr],'typeA|'typeB|'typeE)
## on3D2G('ex|'test)
## 例示: on3D2G([on3,x,xl,xr,cc],[on3,y,yl,yr,oc],'typeA)
## -> on3(t,tl,tr,tlr)*on3(u,ul,ur,ulr) + ...
## --end of on3D2G('help')--
##
## on3D2G('ex)
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,co)*on3(y,yl,yr,cc)
## xL = [on3,x,xl,xr,co] yL = [on3,y,yl,yr,cc]
## xrng = xr-xl yrng = yr-yl type = by Case facts(yr) = []
## G(t,u) =
## if xr-xl <= yr-yl
## then 'on3(t,yr+xl,yl+xr,oc)*on3(u,yl,yr,cc)
## +'on3(t,yl+xl,yr+xl,cc)*on3(u,yl,t-xl,cc)+'on3(t,yl+xr,yr+xr,oc)*on3(u,t-xr,yr,cc)
## else 'on3(t,yl+xl,yl+xr,cc)*on3(u,yl,t-xl,cc)
## +'on3(t,yr+xl,yr+xr,oc)*on3(u,t-xr,yr,cc)
## +'on3(t,yl+xr,yr+xl,oc)*on3(u,t-xr,t-xl,cc)
## on3D2G(ex) =
## if xr-xl <= yr-yl
## then 'on3(t,yr+xl,yl+xr,oc)*on3(u,yl,yr,cc)
## +'on3(t,yl+xl,yr+xl,cc)*on3(u,yl,t-xl,cc)+'on3(t,yl+xr,yr+xr,oc)*on3(u,t-xr,yr,cc)
## else 'on3(t,yl+xl,yl+xr,cc)*on3(u,yl,t-xl,cc)
## +'on3(t,yr+xl,yr+xr,oc)*on3(u,t-xr,yr,cc)
## +'on3(t,yl+xr,yr+xl,oc)*on3(u,t-xr,t-xl,cc)
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,co)*on3(y,yl,yr,cc)
## 判定結果: by Case -> type A (xrng > yrng) を仮定する
## xL = [on3,x,xl,xr,co] yL = [on3,y,yl,yr,cc]
## xrng = xr-xl yrng = yr-yl type = A facts(yr) = [(-yr)+yl+xr-xl > 0]
## x_l = c x_r = o y_l = c y_r = c
## before join & reduce ->
## tl = [yl+xl,yr+xl,yl+xr] tr = [yr+xl,yl+xr,yr+xr] tlr = [cc,oo,oo]
## ul = [yl,yl,t-xr] ur = [t-xl,yr,yr] ulr = [cc,cc,oc]
## after join & reduce ->
## tL = [on3(t,yl+xl,yr+xl,cc),on3(t,yr+xl,yl+xr,oo),on3(t,yl+xr,yr+xr,oo)]
## uL = [on3(u,yl,t-xl,cc),on3(u,yl,yr,cc),on3(u,t-xr,yr,oc)]
## on3D2G(ex,'typeA) =
## on3(t,yr+xl,yl+xr,oo)*on3(u,yl,yr,cc)+on3(t,yl+xl,yr+xl,cc)*on3(u,yl,t-xl,cc)
## +on3(t,yl+xr,yr+xr,oo)*on3(u,t-xr,yr,oc)
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,co)*on3(y,yl,yr,cc)
## 判定結果: by Case -> type B (xrng < yrng) を仮定する
## xL = [on3,x,xl,xr,co] yL = [on3,y,yl,yr,cc]
## xrng = xr-xl yrng = yr-yl type = B facts(yr) = [yr-yl-xr+xl > 0]
## x_l = c x_r = o y_l = c y_r = c
## before join & reduce ->
## tl = [yl+xl,yl+xr,yr+xl] tr = [yl+xr,yr+xl,yr+xr] tlr = [co,oc,oo]
## ul = [yl,t-xr,t-xr] ur = [t-xl,t-xl,yr] ulr = [cc,oc,oc]
## after join & reduce ->
## tL = [on3(t,yl+xl,yl+xr,co),on3(t,yl+xr,yr+xl,oc),on3(t,yr+xl,yr+xr,oo)]
## uL = [on3(u,yl,t-xl,cc),on3(u,t-xr,t-xl,oc),on3(u,t-xr,yr,oc)]
## on3D2G(ex,'typeB) =
## on3(t,yl+xl,yl+xr,co)*on3(u,yl,t-xl,cc)+on3(t,yr+xl,yr+xr,oo)*on3(u,t-xr,yr,oc)
## +on3(t,yl+xr,yr+xl,oc)*on3(u,t-xr,t-xl,oc)
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,co)*on3(y,yl,yr,cc)
## 判定結果: by Case -> type E (xrng = yrng) を仮定する
## xL = [on3,x,xl,xr,co] yL = [on3,y,yl,yr,cc]
## xrng = xr-xl yrng = yr-yl type = E facts(yr) = [equal((-yr)+yl+xr-xl,0)]
## x_l = c x_r = o y_l = c y_r = c
## before join & reduce ->
## tl = [yl+xl,yr+xl,yl+xr] tr = [yr+xl,yl+xr,yr+xr] tlr = [cc,oo,oo]
## ul = [yl,yl,t-xr] ur = [t-xl,yr,yr] ulr = [cc,cc,oc]
## after join & reduce ->
## tL = [on3(t,yl+xl,yr+xl,cc),0,on3(t,yl+xr,yr+xr,oo)]
## uL = [on3(u,yl,t-xl,cc),on3(u,yl,yr,cc),on3(u,t-xr,yr,oc)]
## on3D2G(ex,'typeE) =
## on3(t,yl+xl,yr+xl,cc)*on3(u,yl,t-xl,cc)+on3(t,yl+xr,yr+xr,oo)*on3(u,t-xr,yr,oc)
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,cc)*on3(y,yl,inf,co)
## xL = [on3,x,xl,xr,cc] yL = [on3,y,yl,inf,co]
## xrng = xr-xl yrng = inf type = B facts(yr) = []
## x_l = c x_r = c y_l = c y_r = o
## before join & reduce ->
## tl = [yl+xl,yl+xr,inf] tr = [yl+xr,inf,inf] tlr = [cc,oo,oo]
## ul = [yl,t-xr,t-xr] ur = [t-xl,t-xl,inf] ulr = [cc,cc,co]
## after join & reduce ->
## tL = [on3(t,yl+xl,yl+xr,cc),on3(t,yl+xr,inf,oo),0]
## uL = [on3(u,yl,t-xl,cc),on3(u,t-xr,t-xl,cc),on3(u,t-xr,inf,co)]
## on3D2G(ex) =
## on3(t,yl+xl,yl+xr,cc)*on3(u,yl,t-xl,cc)+on3(t,yl+xr,inf,oo)*on3(u,t-xr,t-xl,cc)
## on3D2G('test)
## CS: progn = <on3D2G_ex> , is go.
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,cc)*on3(y,yl,yr,cc)
## xL = [on3,x,xl,xr,cc] yL = [on3,y,yl,yr,cc]
## xrng = xr-xl yrng = yr-yl type = by Case facts(yr) = []
## G(t,u) =
## if xr-xl <= yr-yl
## then 'on3(t,yr+xl,yl+xr,oc)*on3(u,yl,yr,cc)
## +'on3(t,yl+xl,yr+xl,cc)*on3(u,yl,t-xl,cc)+'on3(t,yl+xr,yr+xr,oc)*on3(u,t-xr,yr,cc)
## else 'on3(t,yl+xl,yl+xr,cc)*on3(u,yl,t-xl,cc)
## +'on3(t,yr+xl,yr+xr,oc)*on3(u,t-xr,yr,cc)
## +'on3(t,yl+xr,yr+xl,oc)*on3(u,t-xr,t-xl,cc)
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,cc)*on3(y,yl,yr,cc)
## 判定結果: by Case -> type A (xrng > yrng) を仮定する
## xL = [on3,x,xl,xr,cc] yL = [on3,y,yl,yr,cc]
## xrng = xr-xl yrng = yr-yl type = A facts(yr) = [(-yr)+yl+xr-xl > 0]
## x_l = c x_r = c y_l = c y_r = c
## before join & reduce ->
## tl = [yl+xl,yr+xl,yl+xr] tr = [yr+xl,yl+xr,yr+xr] tlr = [cc,oc,oc]
## ul = [yl,yl,t-xr] ur = [t-xl,yr,yr] ulr = [cc,cc,cc]
## after join & reduce ->
## tL = [on3(t,yl+xl,yr+xl,cc),on3(t,yr+xl,yl+xr,oc),on3(t,yl+xr,yr+xr,oc)]
## uL = [on3(u,yl,t-xl,cc),on3(u,yl,yr,cc),on3(u,t-xr,yr,cc)]
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,cc)*on3(y,yl,yr,cc)
## 判定結果: by Case -> type B (xrng < yrng) を仮定する
## xL = [on3,x,xl,xr,cc] yL = [on3,y,yl,yr,cc]
## xrng = xr-xl yrng = yr-yl type = B facts(yr) = [yr-yl-xr+xl > 0]
## x_l = c x_r = c y_l = c y_r = c
## before join & reduce ->
## tl = [yl+xl,yl+xr,yr+xl] tr = [yl+xr,yr+xl,yr+xr] tlr = [cc,oc,oc]
## ul = [yl,t-xr,t-xr] ur = [t-xl,t-xl,yr] ulr = [cc,cc,cc]
## after join & reduce ->
## tL = [on3(t,yl+xl,yl+xr,cc),on3(t,yl+xr,yr+xl,oc),on3(t,yr+xl,yr+xr,oc)]
## uL = [on3(u,yl,t-xl,cc),on3(u,t-xr,t-xl,cc),on3(u,t-xr,yr,cc)]
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,cc)*on3(y,yl,yr,cc)
## 判定結果: by Case -> type E (xrng = yrng) を仮定する
## xL = [on3,x,xl,xr,cc] yL = [on3,y,yl,yr,cc]
## xrng = xr-xl yrng = yr-yl type = E facts(yr) = [equal((-yr)+yl+xr-xl,0)]
## x_l = c x_r = c y_l = c y_r = c
## before join & reduce ->
## tl = [yl+xl,yr+xl,yl+xr] tr = [yr+xl,yl+xr,yr+xr] tlr = [cc,oc,oc]
## ul = [yl,yl,t-xr] ur = [t-xl,yr,yr] ulr = [cc,cc,cc]
## after join & reduce ->
## tL = [on3(t,yl+xl,yr+xl,cc),0,on3(t,yl+xr,yr+xr,oc)]
## uL = [on3(u,yl,t-xl,cc),on3(u,yl,yr,cc),on3(u,t-xr,yr,cc)]
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,cc)*on3(y,yl,inf,co)
## xL = [on3,x,xl,xr,cc] yL = [on3,y,yl,inf,co]
## xrng = xr-xl yrng = inf type = B facts(yr) = []
## x_l = c x_r = c y_l = c y_r = o
## before join & reduce ->
## tl = [yl+xl,yl+xr,inf] tr = [yl+xr,inf,inf] tlr = [cc,oo,oo]
## ul = [yl,t-xr,t-xr] ur = [t-xl,t-xl,inf] ulr = [cc,cc,co]
## after join & reduce ->
## tL = [on3(t,yl+xl,yl+xr,cc),on3(t,yl+xr,inf,oo),0]
## uL = [on3(u,yl,t-xl,cc),on3(u,t-xr,t-xl,cc),on3(u,t-xr,inf,co)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,cc)*on3(y,minf,yr,oc)
## xL = [on3,x,xl,xr,cc] yL = [on3,y,minf,yr,oc]
## xrng = xr-xl yrng = inf type = B facts(yr) = []
## x_l = c x_r = c y_l = o y_r = c
## before join & reduce ->
## tl = [minf,minf,yr+xl] tr = [minf,yr+xl,yr+xr] tlr = [oo,oc,oc]
## ul = [minf,t-xr,t-xr] ur = [t-xl,t-xl,yr] ulr = [oc,cc,cc]
## after join & reduce ->
## tL = [0,on3(t,minf,yr+xl,oc),on3(t,yr+xl,yr+xr,oc)]
## uL = [on3(u,minf,t-xl,oc),on3(u,t-xr,t-xl,cc),on3(u,t-xr,yr,cc)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,xr,cc)*on3(y,minf,inf,oo)
## xL = [on3,x,xl,xr,cc] yL = [on3,y,minf,inf,oo]
## xrng = xr-xl yrng = inf type = B facts(yr) = []
## x_l = c x_r = c y_l = o y_r = o
## before join & reduce ->
## tl = [minf,minf,inf] tr = [minf,inf,inf] tlr = [oo,oo,oo]
## ul = [minf,t-xr,t-xr] ur = [t-xl,t-xl,inf] ulr = [oc,cc,co]
## after join & reduce ->
## tL = [0,on3(t,minf,inf,oo),0]
## uL = [on3(u,minf,t-xl,oc),on3(u,t-xr,t-xl,cc),on3(u,t-xr,inf,co)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,inf,co)*on3(y,yl,yr,cc)
## xL = [on3,x,xl,inf,co] yL = [on3,y,yl,yr,cc]
## xrng = inf yrng = yr-yl type = A facts(yr) = []
## x_l = c x_r = o y_l = c y_r = c
## before join & reduce ->
## tl = [yl+xl,yr+xl,inf] tr = [yr+xl,inf,inf] tlr = [cc,oo,oo]
## ul = [yl,yl,minf] ur = [t-xl,yr,yr] ulr = [cc,cc,oc]
## after join & reduce ->
## tL = [on3(t,yl+xl,yr+xl,cc),on3(t,yr+xl,inf,oo),0]
## uL = [on3(u,yl,t-xl,cc),on3(u,yl,yr,cc),on3(u,minf,yr,oc)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,inf,co)*on3(y,yl,inf,co)
## xL = [on3,x,xl,inf,co] yL = [on3,y,yl,inf,co]
## xrng = inf yrng = inf type = E facts(yr) = []
## x_l = c x_r = o y_l = c y_r = o
## before join & reduce ->
## tl = [yl+xl,inf,inf] tr = [inf,inf,inf] tlr = [co,oo,oo]
## ul = [yl,yl,minf] ur = [t-xl,inf,inf] ulr = [cc,co,oo]
## after join & reduce ->
## tL = [on3(t,yl+xl,inf,co),0,0]
## uL = [on3(u,yl,t-xl,cc),on3(u,yl,inf,co),on3(u,minf,inf,oo)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,inf,co)*on3(y,minf,yr,oc)
## xL = [on3,x,xl,inf,co] yL = [on3,y,minf,yr,oc]
## xrng = inf yrng = inf type = E facts(yr) = []
## x_l = c x_r = o y_l = o y_r = c
## before join & reduce ->
## tl = [minf,yr+xl,minf+inf] tr = [yr+xl,minf+inf,inf] tlr = [oc,oo,oo]
## ul = [minf,minf,minf] ur = [t-xl,yr,yr] ulr = [oc,oc,oc]
## after join & reduce ->
## tL = [on3(t,minf,yr+xl,oc),on3(t,yr+xl,inf,oo),0]
## uL = [on3(u,minf,t-xl,oc),on3(u,minf,yr,oc),on3(u,minf,yr,oc)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,xl,inf,co)*on3(y,minf,inf,oo)
## xL = [on3,x,xl,inf,co] yL = [on3,y,minf,inf,oo]
## xrng = inf yrng = inf type = E facts(yr) = []
## x_l = c x_r = o y_l = o y_r = o
## before join & reduce ->
## tl = [minf,inf,minf+inf] tr = [inf,minf+inf,inf] tlr = [oo,oo,oo]
## ul = [minf,minf,minf] ur = [t-xl,inf,inf] ulr = [oc,oo,oo]
## after join & reduce ->
## tL = [on3(t,minf,inf,oo),0,0]
## uL = [on3(u,minf,t-xl,oc),on3(u,minf,inf,oo),on3(u,minf,inf,oo)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,minf,xr,oc)*on3(y,yl,yr,cc)
## xL = [on3,x,minf,xr,oc] yL = [on3,y,yl,yr,cc]
## xrng = inf yrng = yr-yl type = A facts(yr) = []
## x_l = o x_r = c y_l = c y_r = c
## before join & reduce ->
## tl = [minf,minf,yl+xr] tr = [minf,yl+xr,yr+xr] tlr = [oo,oc,oc]
## ul = [yl,yl,t-xr] ur = [inf,yr,yr] ulr = [co,cc,cc]
## after join & reduce ->
## tL = [0,on3(t,minf,yl+xr,oc),on3(t,yl+xr,yr+xr,oc)]
## uL = [on3(u,yl,inf,co),on3(u,yl,yr,cc),on3(u,t-xr,yr,cc)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,minf,xr,oc)*on3(y,yl,inf,co)
## xL = [on3,x,minf,xr,oc] yL = [on3,y,yl,inf,co]
## xrng = inf yrng = inf type = E facts(yr) = []
## x_l = o x_r = c y_l = c y_r = o
## before join & reduce ->
## tl = [minf,minf+inf,yl+xr] tr = [minf+inf,yl+xr,inf] tlr = [oo,oc,oo]
## ul = [yl,yl,t-xr] ur = [inf,inf,inf] ulr = [co,co,co]
## after join & reduce ->
## tL = [on3(t,minf,yl+xr,oc),0,on3(t,yl+xr,inf,oo)]
## uL = [on3(u,yl,inf,co),on3(u,yl,inf,co),on3(u,t-xr,inf,co)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,minf,xr,oc)*on3(y,minf,yr,oc)
## xL = [on3,x,minf,xr,oc] yL = [on3,y,minf,yr,oc]
## xrng = inf yrng = inf type = E facts(yr) = []
## x_l = o x_r = c y_l = o y_r = c
## before join & reduce ->
## tl = [minf,minf,minf] tr = [minf,minf,yr+xr] tlr = [oo,oo,oc]
## ul = [minf,minf,t-xr] ur = [inf,yr,yr] ulr = [oo,oc,cc]
## after join & reduce ->
## tL = [0,0,on3(t,minf,yr+xr,oc)]
## uL = [on3(u,minf,inf,oo),on3(u,minf,yr,oc),on3(u,t-xr,yr,cc)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,minf,xr,oc)*on3(y,minf,inf,oo)
## xL = [on3,x,minf,xr,oc] yL = [on3,y,minf,inf,oo]
## xrng = inf yrng = inf type = E facts(yr) = []
## x_l = o x_r = c y_l = o y_r = o
## before join & reduce ->
## tl = [minf,minf+inf,minf] tr = [minf+inf,minf,inf] tlr = [oo,oo,oo]
## ul = [minf,minf,t-xr] ur = [inf,inf,inf] ulr = [oo,oo,co]
## after join & reduce ->
## tL = [0,0,on3(t,minf,inf,oo)]
## uL = [on3(u,minf,inf,oo),on3(u,minf,inf,oo),on3(u,t-xr,inf,co)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,minf,inf,oo)*on3(y,yl,yr,cc)
## xL = [on3,x,minf,inf,oo] yL = [on3,y,yl,yr,cc]
## xrng = inf yrng = yr-yl type = A facts(yr) = []
## x_l = o x_r = o y_l = c y_r = c
## before join & reduce ->
## tl = [minf,minf,inf] tr = [minf,inf,inf] tlr = [oo,oo,oo]
## ul = [yl,yl,minf] ur = [inf,yr,yr] ulr = [co,cc,oc]
## after join & reduce ->
## tL = [0,on3(t,minf,inf,oo),0]
## uL = [on3(u,yl,inf,co),on3(u,yl,yr,cc),on3(u,minf,yr,oc)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,minf,inf,oo)*on3(y,yl,inf,co)
## xL = [on3,x,minf,inf,oo] yL = [on3,y,yl,inf,co]
## xrng = inf yrng = inf type = E facts(yr) = []
## x_l = o x_r = o y_l = c y_r = o
## before join & reduce ->
## tl = [minf,minf+inf,inf] tr = [minf+inf,inf,inf] tlr = [oo,oo,oo]
## ul = [yl,yl,minf] ur = [inf,inf,inf] ulr = [co,co,oo]
## after join & reduce ->
## tL = [on3(t,minf,inf,oo),0,0]
## uL = [on3(u,yl,inf,co),on3(u,yl,inf,co),on3(u,minf,inf,oo)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,minf,inf,oo)*on3(y,minf,yr,oc)
## xL = [on3,x,minf,inf,oo] yL = [on3,y,minf,yr,oc]
## xrng = inf yrng = inf type = E facts(yr) = []
## x_l = o x_r = o y_l = o y_r = c
## before join & reduce ->
## tl = [minf,minf,minf+inf] tr = [minf,minf+inf,inf] tlr = [oo,oo,oo]
## ul = [minf,minf,minf] ur = [inf,yr,yr] ulr = [oo,oc,oc]
## after join & reduce ->
## tL = [0,on3(t,minf,inf,oo),0]
## uL = [on3(u,minf,inf,oo),on3(u,minf,yr,oc),on3(u,minf,yr,oc)]
## -- end of progn = <on3D2G_ex> ---
## -- D:xl<x<xr, yl<y<yr --(t=x+y,u=y)--> G:G(t,u) --
## ◇ ex = on3(x,minf,inf,oo)*on3(y,minf,inf,oo)
## xL = [on3,x,minf,inf,oo] yL = [on3,y,minf,inf,oo]
## xrng = inf yrng = inf type = E facts(yr) = []
## x_l = o x_r = o y_l = o y_r = o
## before join & reduce ->
## tl = [minf,minf+inf,minf+inf] tr = [minf+inf,minf+inf,inf] tlr = [oo,oo,oo]
## ul = [minf,minf,minf] ur = [inf,inf,inf] ulr = [oo,oo,oo]
## after join & reduce ->
## tL = [on3(t,minf,inf,oo),0,0]
## uL = [on3(u,minf,inf,oo),on3(u,minf,inf,oo),on3(u,minf,inf,oo)]
## -- end of progn = <on3D2G_ex> ---
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-23.mxl"
figs_dir : "test1_files"$
on3dim2_uni2('plot,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-24.mxl > TMP/tmp_lang/chunk-24.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-24.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-24.mxl
## figs_dir:"test1_files"
## on3dim2_uni2('plot,'noview)
## ---Run with NoView Mode---
## 一様分布 U[0,1]に従う独立確率変数の和の分布(密度関数)を求める
## ◆ 1個の和の分布
## ★ ( f[1](t) )
## ◎ out = on3(t, 0, 1, cc)
## f (t) = on3(t, 0, 1, cc)
## 1
## ◆ 2個の和の分布
## CS: h (t, u) = on3(t, 1, 2, co) on3(u, t - 1, 1, cc) + on3(t, 0, 1, co) on3(u, 0, t, cc)
## 2
## ★ ( f[2](t) )
## ◎ out = t on3(t, 0, 1, co) - (t - 2) on3(t, 1, 2, co)
## [ t (0 <= t < 1) ]
## [ ]
## f (t) = [ 2 - t (1 <= t < 2) ]
## 2 [ ]
## [ 0 ( otherwise ) ]
## ◆ 3個の和の分布
## ★ ( f[3](t) )
## ◎ out =
## ((t-3)^2*on3(t,2,3,co))/2-((2*t^2-6*t+3)*on3(t,1,2,co))/2+(t^2*on3(t,0,1,co))/2
## [ 2 ]
## [ t ]
## [ -- (0 <= t < 1) ]
## [ 2 ]
## [ ]
## [ 2 ]
## [ 2 t - 6 t + 3 ]
## f (t) = [ - -------------- (1 <= t < 2) ]
## 3 [ 2 ]
## [ ]
## [ 2 ]
## [ (t - 3) ]
## [ -------- (2 <= t < 3) ]
## [ 2 ]
## [ ]
## [ 0 ( otherwise ) ]
## ◆ 4個の和の分布
## ★ ( f[4](t) )
## ◎ out =
## (-((t-4)^3*on3(t,3,4,co))/6)+((3*t^3-24*t^2+60*t-44)*on3(t,2,3,co))/6
## -((3*t^3-12*t^2+12*t-4)*on3(t,1,2,co))/6
## +(t^3*on3(t,0,1,co))/6
## [ 3 ]
## [ t ]
## [ -- (0 <= t < 1) ]
## [ 6 ]
## [ ]
## [ 3 2 ]
## [ 3 t - 12 t + 12 t - 4 ]
## [ - ----------------------- (1 <= t < 2) ]
## [ 6 ]
## [ ]
## f (t) = [ 3 2 ]
## 4 [ 3 t - 24 t + 60 t - 44 ]
## [ ------------------------ (2 <= t < 3) ]
## [ 6 ]
## [ ]
## [ 3 ]
## [ (t - 4) ]
## [ - -------- (3 <= t < 4) ]
## [ 6 ]
## [ ]
## [ 0 ( otherwise ) ]
## ◆ 5個の和の分布
## ★ ( f[5](t) )
## ◎ out =
## ((t-5)^4*on3(t,4,5,co))/24-((4*t^4-60*t^3+330*t^2-780*t+655)*on3(t,3,4,co))/24
## +((6*t^4-60*t^3+210*t^2-300*t+155)*on3(t,2,3,co))/24
## -((4*t^4-20*t^3+30*t^2-20*t+5)*on3(t,1,2,co))/24
## +(t^4*on3(t,0,1,co))/24
## [ 4 ]
## [ t ]
## [ -- (0 <= t < 1) ]
## [ 24 ]
## [ ]
## [ 4 3 2 ]
## [ 4 t - 20 t + 30 t - 20 t + 5 ]
## [ - ------------------------------- (1 <= t < 2) ]
## [ 24 ]
## [ ]
## [ 4 3 2 ]
## [ 6 t - 60 t + 210 t - 300 t + 155 ]
## f (t) = [ ----------------------------------- (2 <= t < 3) ]
## 5 [ 24 ]
## [ ]
## [ 4 3 2 ]
## [ 4 t - 60 t + 330 t - 780 t + 655 ]
## [ - ----------------------------------- (3 <= t < 4) ]
## [ 24 ]
## [ ]
## [ 4 ]
## [ (t - 5) ]
## [ -------- (4 <= t < 5) ]
## [ 24 ]
## [ ]
## [ 0 ( otherwise ) ]
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-24.mxl"
figs_dir : "test1_files"$
on3dim2_exp2('plot,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-25.mxl > TMP/tmp_lang/chunk-25.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-25.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-25.mxl
## figs_dir:"test1_files"
## on3dim2_exp2('plot,'noview)
## ---Run with NoView Mode---
## 指数分布 Ex(1)に従う独立確率変数の和の分布(密度関数)を求める
## ◆ 1個の和の分布
## ★ ( f[1](t) )
## - t
## ◎ out = %e on3(t, 0, inf, co)
## - t
## f (t) = %e on3(t, 0, inf, co)
## 1
## ◆ 2個の和の分布
## ★ ( f[2](t) )
## - t
## ◎ out = t %e on3(t, 0, inf, co)
## - t
## f (t) = t %e on3(t, 0, inf, co)
## 2
## ◆ 3個の和の分布
## ★ ( f[3](t) )
## ◎ out = (t^2*%e^-t*on3(t,0,inf,co))/2
## 2 - t
## t %e on3(t, 0, inf, co)
## f (t) = ---------------------------
## 3 2
## ◆ 4個の和の分布
## ★ ( f[4](t) )
## ◎ out = (t^3*%e^-t*on3(t,0,inf,co))/6
## 3 - t
## t %e on3(t, 0, inf, co)
## f (t) = ---------------------------
## 4 6
## ◆ 5個の和の分布
## ★ ( f[5](t) )
## ◎ out = (t^4*%e^-t*on3(t,0,inf,co))/24
## 4 - t
## t %e on3(t, 0, inf, co)
## f (t) = ---------------------------
## 5 24
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-25.mxl"
on3pw_ex()$
## ~/bin/go TMP/tmp_lang/chunk-26.mxl > TMP/tmp_lang/chunk-26.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-26.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-26.mxl
## on3pw_ex()
## --- begin of on3pw_ex ---
## ◆ 準備:関数 F1(x),f0(x)の作成
## ★ (
## f0(x) := sin(x),
## f1(x) := x^2*on3(x,minf,0,oo) + (1-x^2)/2 *on3(x,0,1,oo)
## + (1-x)*on3(x,1,inf,oo),
## ldisplay(f0(x)), ldisplay(f1(x))
## )
## (%t2) f0(x) = sin(x)
## (%t3) f1(x) = x^2*on3(x,minf,0,oo)+(1-x)*on3(x,1,inf,oo)+((1-x^2)*on3(x,0,1,oo))/2
## ◆ 使用例1:on3pw()を用いない場合
## ★ (
## define(df_direct(x), on3diff(f1(x),x,1) + diff(f0(x),x,1)),
## ldisplay(df_direct(x)),
## ldisplay(df_direct(1)),
## define(F_direct(x), on3integ(f1(x),x) + integrate(f0(x),x)),
## ldisplay(F_direct(x)),
## mshow(F_direct(2) - F_direct(-1))
## )
## (%t4) df_direct(x) = 2*x*on3(x,minf,0,oo)-on3(x,1,inf,co)-x*on3(x,0,1,oo)+cos(x)
## (%t5) df_direct(1) = cos(1)-1
## (%t6) F_direct(x) = (x^3*on3(x,minf,0,oo))/3+((-x^2/2)+x-1/2)*on3(x,1,inf,oo)
## +on3(x,1,inf,co)/3
## +((x-x^3/3)*on3(x,0,1,oo))/2-cos(x)
## ◆ 使用例2:on3pw()を用いる場合
## ★ (
## f(x) := on3pw(f1(x))+f0(x), /* on3関数f1(x)のカプセル化 */
## define(df(x), diff(f(x),x)), /* 関数f(x)の微分関数 df(x)の定義 */
## ldisplay(df(x)),
## ldisplay(df(1)),
## define(F(x), integrate(f(x),x)), /* 関数f(x)の不定積分 F(x)の定義 */
## ldisplay(F(x)),
## mshow(F(2) - F(-1))
## )
## (%t7) df(x) = 'diff(on3pw(x^2*on3(x,minf,0,oo)+(1-x)*on3(x,1,inf,oo)
## +((1-x^2)*on3(x,0,1,oo))/2),x,1)
## +cos(x)
## diff: variable must not be a number; found: 1
## #0: df(x=1)
## #1: logshow(args=["( @f(x) := on3pw(f1(x))+f0(x), /* on3関数f1(x)のカプセル化 */ @define(df(x), diff(f(x),x...)
## #2: on3pw_ex()
## -- an error. To debug this try: debugmode(true);
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-26.mxl"
figs_dir : "test1_files"$
on3ineq_ex(C2, 'file_name="test1_files/on3ineq-C2", 'noview)$
## ~/bin/go TMP/tmp_lang/chunk-27.mxl > TMP/tmp_lang/chunk-27.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-27.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-27.mxl
## figs_dir:"test1_files"
## ineqex(C2,'file_name = "test1_files/on3ineq-C2",'noview)
## CS: === ■ ■ ■ progn = <on3ineq_ex> , ■ ■ ■ ===
## CS: excase = C2
## CS: ev(excase) = [[[y^3+2*x*y+x^2,1,9,co]],xrange = [-5,5],yrange = [-5,5]]
## --[Result display]--
## varl = [x,y]
## LL =
## [[['V[1][5],'V[1][1],oc],['V[2][4],'V[2][1],co]],
## [['V[1][1],'V[1][2],oc],['V[2][4],'V[2][2],co]],
## [['V[1][1],'V[1][2],oc],['V[2][3],'V[2][1],oo]],
## [['V[1][2],'V[1][3],oc],['V[2][4],'V[2][1],co]],
## [['V[1][3],'V[1][4],oc],['V[2][5],'V[2][6],cc]],
## [['V[1][3],'V[1][4],oc],['V[2][4],'V[2][1],co]],
## [['V[1][4],'V[1][6],oo],['V[2][4],'V[2][1],co]]]
## , where
## V[ 1 ]= [-4.3414023,-2.2876237,-2.0459579,-0.65266742,minf,inf]
## V[ 2 ]=
## [-(Expt*Sum(3)-Product(4))/(144*x^2),
## ((Product(4)+Negterm)*x^2*Sum(3)^(1/3)+Sum(3)^(2/3)
## *(Product(2)+Product(2)+Negterm+Negterm))
## /(288*x^2),-(Sum(2)*Expt*Expt+Expt*Sum(4))/(288*x^2),
## -(Expt*Sum(3)-Product(4))/(144*x^2),
## ((Product(4)+Negterm)*x^2*Sum(3)^(1/3)+Sum(3)^(2/3)
## *(Product(2)+Product(2)+Negterm+Negterm))
## /(288*x^2),-(Sum(2)*Expt*Expt+Expt*Sum(4))/(288*x^2),minf,inf]
## ---end---
## CS: 参照可能変数: varl,V,LL,vsing,on3f,fL,on3floatnump,acnode
## CS: progn = <on3regionview> , ==2変数関数==
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-27.mxl"
funcs()$
funcs('ex)$
findstr()$
findstr('ex)$
## ~/bin/go TMP/tmp_lang/chunk-28.mxl > TMP/tmp_lang/chunk-28.out 2>&1
## -- <on3env> logbegin --
## maxima_tempdir = TMP/tmp_maxima figs_dir = figs
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-28.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-28.mxl
## funcs()
## ==ユーザ定義の関数名,マクロ名一覧: functions , sortmode= true ==
## ["ON3on3([args])","acnode_join(LWT0,[args])","args_flat([args])","ass_set([args])",
## "chk1g([args])","chk1show([args])","chk2D([args])","chk2g([args])","chk2show([args])",
## "chk3g([args])","debug_ex(x,[args])","debug_sub(y,[args])","ecsort([args])",
## "elimalg1([args])","elimalg1_ex([args])","exchk(on3func_name,exansL,[args])",
## "exchk_ex([args])","exmk(ex,[args])","exmk_ex([args])","exp2l([args])","extry([args])",
## "f2l([args])","f2l_full([args])","f2l_one([args])","fact_forget([args])",
## "fact_var([args])","find_key([args])","find_key_ex([args])","find_key_no([args])",
## "find_key_no_ex([args])","findstr([args])","findstr_ex([args])","floatfix([args])",
## "floatfix_ex([args])","flrlimit([args])","flrlimit_ex([args])","fna([args])",
## "funcs([args])","funcxy([args])","funcxy_ex([args])","gcd2l([args])",
## "globalvar([args])","gr2v([args])","gr2v_ex([args])","gr2vf([args])","gr3v([args])",
## "gr3v_ex([args])","grv([args])","grv_ex([args])","ineqex([args])","jumppoints([args])",
## "killvars([args])","l2f([args])","l2f_one([args])","list2str([args])",
## "list2str_ex([args])","ll2on3(varl,va,LL,[args])","loffuncs([args])","logshow([args])",
## "lpup([args])","mergeL([args])","mergeL_ex([args])","mk_draw([args])",
## "mk_draw_ex([args])","mk_fullname([args])","mk_yrange([args])","mkfloat([args])",
## "mkfloat_ex([args])","msort([args])","msort_ex()","nor2d([args])","on3([args])",
## "on3D2G([args])","on3D2G_ex([args])","on3_same_var([args])","on3asdecomp([args])",
## "on3asdecomp_ex([args])","on3byon3([args])","on3chgv([args])","on3chgvar2([args])",
## "on3chgvar2_ex([args])","on3chgvar2_test()","on3chgvar3([args])",
## "on3cspline(tab,[select])","on3cspline_ex([args])","on3decomp([args])",
## "on3decomp21([args])","on3decomp_decomp(expr,[args])","on3decomp_ex([args])",
## "on3decomp_inv(u,[args])","on3decomp_one([args])","on3decomp_reduce(LWT0,[args])",
## "on3decompm([args])","on3diff([args])","on3diff_ex([args])","on3dim2_exp2([args])",
## "on3dim2_uni2([args])","on3dplot2([args])","on3edge([args])","on3edge_ex([args])",
## "on3ev([args])","on3evdef([args])","on3ex([args])","on3factor([args])",
## "on3find([args])","on3find_ex([args])","on3ftrue([args])","on3funcdraw([args])",
## "on3gr([args])","on3gr2([args])","on3gr_ex([args])","on3help()","on3iftrue([args])",
## "on3ineq([args])","on3ineq_acnode(LF,[args])","on3ineq_backsolve(LF,[args])",
## "on3ineq_fwd(varl,va,vlist,vsing,[args])","on3ineq_jex([args])",
## "on3ineq_shrink([args])","on3info([args])","on3integ([args])","on3integ10([args])",
## "on3integ19([args])","on3integ19_ex([args])","on3integ20([args])",
## "on3integ20_ex([args])","on3integ_ex([args])","on3lrl([args])",
## "on3lspline(tab,[select])","on3lspline_ex([args])","on3pw_ex()","on3regionview([args])",
## "on3rngm([args])","on3rngm_ex1([args])","on3rngm_ex2([args])","on3rngone(rng1,rng2)",
## "on3romberg([args])","on3show_ex([args])","on3show_sub(funcs,[args])","on3simp([args])",
## "on3solve([args])","on3solve_ex([args])","on3std([args])","on3std_ex([args])",
## "on3termsep([args])","on3test([args])","on3typep([args])","on3varfix([args])",
## "on3vars([args])","on3x([args])","outLev([args])","p2surface([args])","polydeg([args])",
## "q3([args])","q4([args])","realp([args])","salgall([args])","salgall_ex([args])",
## "shrink10(LYLR,[args])","slit([args])","sqrt2d([args])","sqrt2d_ex([args])","t(x)",
## "ush([args])","va_unique([args])","var_fact([args])","wt(atom)"]
##
## ==ユーザ定義の関数名,マクロ名一覧: macros , sortmode= true ==
## ["c0show([lis])","c1show([lis])","c2show([lis])","c3show([lis])","cashow([lis])",
## "cshow([lis])","d1show([lis])","d2show([lis])","d3show([lis])","ifargd()",
## "max_restore([args])","max_save([args])","on3env([args])","on3lib([args])",
## "on3rules([args])","on3show([args])"]
##
## funcs('ex)
## --begin of funcs('ex)--
## ev(str) = funcs('show)
## --end of funcs('ex)--
## findstr()
## --begin of findstr('help)--
## 機能: ユーザ定義の関数,マクロから指定文字列を含む関数(マクロ)名を検索する
## 文法: findstr(str)
## 例示: findstr('solve)
## --end of findstr('help')--
##
## findstr('ex)
## --begin of func1('ex)--
## ★
## ( findstr('solve), /* 文字列solve を含む関数名,マクロ名を標示する */
##
##
## findstr('decomp), /* 文字列decomp を含む関数名,マクロ名を標示する */
##
## findstr('show) /* 文字列show を含む関数名,マクロ名を標示する */
## )
## <findstr> search string = solve
## <findstr> functions -->
## ["on3solve([args])","on3solve_ex([args])","on3ineq_backsolve(LF,[args])"]
## <findstr> macros --> []
## <findstr> search string = decomp
## <findstr> functions -->
## ["on3decomp_reduce(LWT0,[args])","on3decomp_decomp(expr,[args])",
## "on3decomp_inv(u,[args])","on3decomp_one([args])","on3asdecomp([args])",
## "on3asdecomp_ex([args])","on3decompm([args])","on3decomp21([args])",
## "on3decomp([args])","on3decomp_ex([args])"]
## <findstr> macros --> []
## <findstr> search string = show
## <findstr> functions -->
## ["chk2show([args])","on3show_sub(funcs,[args])","on3show_ex([args])",
## "logshow([args])","chk1show([args])"]
## <findstr> macros -->
## ["on3show([args])","cashow([lis])","c0show([lis])","cshow([lis])",
## "c1show([lis])","c2show([lis])","c3show([lis])","d1show([lis])",
## "d2show([lis])","d3show([lis])"]
## out = --- end of findstr ---
## --end of findstr('ex)--
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-28.mxl"