言語エンジンeng_langの環境設定

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. ===

on3ライブラリー

1. on3env() : on3ライブラリーのロードとlispファイルの書き出し

batchload("/home/inoue/Maxlib-20/on3lib21.mx")$   
on3env()$
figs_dir : "test3_files"$
on3('ex)$
max_save()$ /* lisp ファイルに書き出す */
## ~/bin/go TMP/tmp_lang/chunk-1.mxl  > TMP/tmp_lang/chunk-1.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-1.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-1.mxl
## batchload("/home/inoue/Maxlib-20/on3lib21.mx")
## on3env()
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## figs_dir:"test3_files"
## 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-1.mxl"

2. on3ineq() : m変数不等式 on3ineq([[f,fl,fr,flr],…],’varl=[x,y,…]) の求解

figs_dir : "test3_files"$
on3ineq()$
on3ineq('ex,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-2.mxl  > TMP/tmp_lang/chunk-2.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-2.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-2.mxl
## figs_dir:"test3_files"
## on3ineq()
##    --begin of on3ineq('help)--
##    機能: m変数多項式不等式 on3ineq([[f,fl,fr,flr],...],'varl=[x,y,...]) の求解 
##    文法: on3ineq([f,fl,fr,flr],...) or on3ineq([[f,fl,fr,flr]],...)
##          on3ineq([[f1,f1l,f1r,f1lr],[f2,f2l,f2r,f2lr],...],'varl=[x,y,...])
##    例示: on3ineq([x^2+y^2,1,9,co],'view)
##          on3ineq([x^2+y^2,1,9,co],'resultonly,'view)
##    メモ: on3(log(x),1,2,co,eval) による解法 
##    --end of on3ineq('help')--
##    
## on3ineq('ex,'noview)
## --begin of on3ineq('ex)-- 
##      --on3('ex)--
##      on3ineq([x^2+y^2,1,9,co],'view)
##      on3ineq([x^2+y^2,1,9,co],'resultonly,'view)
##      --end of on3('ex)--
##       
## ★  (  /* 例1. */  
##     on3ineq([x^2+y^2,1,9,co], 'resultonly,  
##     'file_name=test3_files/on3ineq-ex1, noview)   
##       ) 
## CS: progn = <on3regionview> , ==2変数関数== 
## ◎   out = 
##      on3(x,1,3,co)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo)
##       +on3(x,-3,-1,oc)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo)
##       +on3(x,-1,1,oo)*on3(y,-sqrt(9-x^2),-sqrt(1-x^2),oc)
##       +on3(x,-1,1,oo)*on3(y,sqrt(1-x^2),sqrt(9-x^2),co) 
## ★  (  /* 例2. */  
##     on3ineq([x^2+y^2,1,9,oc], 'resultonly,  
##     'file_name=test3_files/on3ineq-ex2, noview)   
##       ) 
## CS: progn = <on3regionview> , ==2変数関数== 
##     out =  
##           on3(x,1,3,oc)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),cc)
##            +on3(x,-3,-1,co)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),cc)
##            +on3(x,-1,1,cc)*on3(y,-sqrt(9-x^2),-sqrt(1-x^2),co)
##            +on3(x,-1,1,cc)*on3(y,sqrt(1-x^2),sqrt(9-x^2),oc) 
## ★  (  /* 例3. */  
##     on3ineq([x^2+y^2+z^2,1,9,co], 'resultonly, 'noview ) ) 
## CS: progn = <on3gr> , :3次元プロット: 複数個のgr3d()オブジェクト 
## ◎   reveal(w_out,6) = 
##      on3(x,1,3,co)*on3(y,-sqrt(Sum(2)),sqrt(9+Negterm),oo)
##                   *on3(z,-sqrt(Sum(3)),sqrt(Negterm+Negterm+9),oo)
##       +on3(x,-3,-1,oc)*on3(y,-sqrt(Sum(2)),sqrt(9+Negterm),oo)
##                       *on3(z,-sqrt(Sum(3)),sqrt(Negterm+Negterm+9),oo)
##       +on3(x,-1,1,oo)*on3(y,-sqrt(Sum(2)),-sqrt(Sum(2)),oc)
##                      *on3(z,-sqrt(Sum(3)),sqrt(Negterm+Negterm+9),oo)
##       +on3(x,-1,1,oo)*on3(y,sqrt(1+Negterm),sqrt(9+Negterm),co)
##                      *on3(z,-sqrt(Sum(3)),sqrt(Negterm+Negterm+9),oo)
##       +on3(x,-1,1,oo)*on3(y,-sqrt(Sum(2)),sqrt(1+Negterm),oo)
##                      *on3(z,-sqrt(Sum(3)),-sqrt(Sum(3)),oc)
##       +on3(x,-1,1,oo)*on3(y,-sqrt(Sum(2)),sqrt(1+Negterm),oo)
##                      *on3(z,sqrt(Negterm+Negterm+1),sqrt(Negterm+Negterm+9),co) 
## --end of on3ineq('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-2.mxl"
test3_files/on3ineq-ex1.pngのグラフ

test3_files/on3ineq-ex1.pngのグラフ

test3_files/on3ineq-ex2.pngのグラフ

test3_files/on3ineq-ex2.pngのグラフ

3. on3regionview() : 廃止予定 on3ineq()の入力FLと結果outsumから結果の解領域を図示する

figs_dir : "test3_files"$
on3regionview()$
on3regionview('ex,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-3.mxl  > TMP/tmp_lang/chunk-3.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-3.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-3.mxl
## figs_dir:"test3_files"
## on3regionview()
##    --begin of on3regionview('help)--
##    機能: on3ineq()の入力FLと結果outsumから結果の解領域を図示する
##    文法: on3regionview(FL,outsum,...)
##    例示: on3ineq('ex); /* on3ineq()関数の共通変数FL,outsum,vsingを参照する */
##          on3regionview([[y^2+x^2,1,9,co]],outsum);
##    メモ: 未完成,廃止予定
##    --end of on3regionview('help')--
##    
## on3regionview('ex,'noview)
## --begin of on3regionview('ex)-- 
## CS: progn = <on3regionview> , ==2変数関数== 
##     progn = <on3regionview>  varl = [x,y] 
##     progn = <on3regionview>  FL = [[y^2+x^2,1,9,co]] 
##     progn = <on3regionview>  outsum = 
##    on3(x,1,3,co)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo)
##     +on3(x,-3,-1,oc)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo)
##     +on3(x,-1,1,oo)*on3(y,-sqrt(9-x^2),-sqrt(1-x^2),oc)
##     +on3(x,-1,1,oo)*on3(y,sqrt(1-x^2),sqrt(9-x^2),co) 
##     progn = <on3regionview>  argsL = 
##    [title = "on3regionview",xrange = [-5,5],yrange = [-5,5],terminal = png,
##     file_name = "test3_files/on3regionview",columns = 2,dimensions = [1000,500]] 
## CS: progn = <on3regionview> , ==2変数関数== 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-3.mxl"
test3_files/on3regionview.pngのグラフ

test3_files/on3regionview.pngのグラフ

4. va_unique() : <内部使用> 端点リストvaの要素実数に [x0,o],[x0,c],[x0,s] が存在するとき[x0,s]にする

va_unique()$
va_unique('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
## va_unique()
##    --begin of va_unique('help)--
##    機能: 端点リストvaの要素実数に [x0,o],[x0,c],[x0,s] が存在するとき[x0,s]にする
##    文法: va_unique(va[i],...)
##    例示: va[1] :
##          [[0,o],[1,c],[1,o],[1,s],[2,o],[-sqrt(2),o],[sqrt(2),o],
##           [-(sqrt(5)-1)/2,o],[(sqrt(5)+1)/2,o]] 
##           --->  [1,c], [1,o] が除かれる by va[1]:va_unique(va[1])
##         va[1] = 
##          [[0,o],[1,s],[2,o],[-sqrt(2),o],[sqrt(2),o],[-(sqrt(5)-1)/2,o],[(sqrt(5)+1)/2,o]]
##    メモ: 
##    --end of realp('help')--
##    
## va_unique('ex)
## --begin of va_unique('ex)-- 
##     progn = <va_unique_ex> 
##     va[1] = 
##    [[0,o],[1,c],[1,o],[1,s],[2,o],[-sqrt(2),o],[sqrt(2),o],[(1-sqrt(5))/2,o],
##     [(sqrt(5)+1)/2,o]] 
##     va_unique(va[1]) -> 
##    [[0,o],[1,s],[2,o],[-sqrt(2),o],[sqrt(2),o],[(1-sqrt(5))/2,o],[(sqrt(5)+1)/2,o]] 
## --end of va_unique('ex) block-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-4.mxl"

5. realp() : exprが実数のときTRUEを返し,複素数のときFALSEを, 変数を含むときunknownを返す.

  • exprが実数のときTRUEを返し,複素数のときFALSEを, 変数を含むときunknownを返す. 虚数部の絶対値が微小のときは実数とみなす.
realp()$
realp('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
## realp()
##    --begin of realp('help)--
##    機能: exprが実数のときTRUEを返し,複素数のときFALSEを,
##          変数を含むときunknownを返す. 虚数部の絶対値が微小のときは実数とみなす.
##    文法: realp(expr,...)
##    例示: realp(expr) -> true
##    メモ: 
##    --end of realp('help')--
##    
## realp('ex)
## --begin of realp('ex)-- 
##     realp(1.0) = true 
##     realp(1.0E-10*%i+1.0) = true  /* 微小虚数を含む場合 */ 
##     realp(1.0E-6*%i+1.0) = false  /* 微小虚数を含む場合 */ 
##     realp(2*x+%i) = unknown 
##     realp([1.0,1.0E-10*%i+1.0,1.0E-6*%i+1.0,2*x+%i]) = [true,true,false,unknown] 
##     freeof(unknown,false,realp([1.0,1.0E-10*%i+1.0])) = true 
##     freeof(unknown,false,realp([1.0,1.0E-6*%i+1.0,2*x+%i])) = false 
## --end of realp('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-5.mxl"

6. elimalg1() : eqs から変数evarを消去し変数aval についての解ansと消去式eqsを返す

elimalg1()$
elimalg1('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
## elimalg1()
##    --begin of elimalg1('help)--
##    機能: eqs から変数evarを消去し変数aval についての解ansと消去式eqsを返す
##    文法: elimalg1(eqs,evar,avar,...)
##    例示: 
##    メモ: 
##    --end of elimalg1('help')--
##    
## elimalg1('ex)
## --begin of elimalg1('ex)-- 
## ---例--- eq : ((z-3)^2+(y-2)^2+(x-1)^2)*(z^2+y^2+x^2-1) 
## CS: eq:expand(eq) = 
##    z^4-6*z^3+2*y^2*z^2-4*y*z^2+2*x^2*z^2-2*x*z^2+13*z^2-6*y^2*z-6*x^2*z+6*z+y^4-4*y^3
##       +2*x^2*y^2-2*x*y^2+13*y^2-4*x^2*y+4*y+x^4-2*x^3+13*x^2+2*x-14 
## polydeg(z^4-6*z^3+2*y^2*z^2-4*y*z^2+2*x^2*z^2-2*x*z^2+13*z^2-6*y^2*z-6*x^2*z+6*z+y^4
##            -4*y^3+2*x^2*y^2-2*x*y^2+13*y^2-4*x^2*y+4*y+x^4-2*x^3+13*x^2+2*x-14)
##   = [[x,y,z],[[4,3,2,1],[4,3,2,1],[4,3,2,1]]]
## ansz:algsys([eq],[z] -> 
## ansz = [[z = sqrt((-y^2)-x^2+1)],[z = -sqrt((-y^2)-x^2+1)],
##         [z = sqrt((-y^2)+4*y-x^2+2*x-5)+3],[z = 3-sqrt((-y^2)+4*y-x^2+2*x-5)]]
## [ansy,eqy]:elimalg1(eq,z,y) -> 
## [ansy,eqy] = [[y = sqrt(1-x^2),y = -sqrt(1-x^2),y = %i*x-%i+2,y = (-%i*x)+%i+2,
##                y = (3*sqrt((-56*x^2)+60*x-173)-4*x+30)/26,
##                y = -(3*sqrt((-56*x^2)+60*x-173)+4*x-30)/26],
##               [16*(2704*y^8+(1664*x-23296)*y^7+(9824*x^2-22144*x+94792)*y^6
##                            +(4608*x^3-68288*x^2+92384*x-220688)*y^5
##                            +(13136*x^4-50976*x^3+231472*x^2-200840*x+289945)*y^4
##                            +(4224*x^5-65472*x^4+160192*x^3-417728*x^2+189632*x-125700)
##                             *y^3
##                            +(7616*x^6-36832*x^5+171400*x^4-278272*x^3+421026*x^2+38142*x
##                                      -208836)
##                             *y^2
##                            +(1280*x^7-20480*x^6+67808*x^5-198256*x^4+214592*x^3
##                                      -150948*x^2-283680*x+369684)
##                             *y+1600*x^8-8000*x^7+34720*x^6-76120*x^5+138361*x^4
##                            -100722*x^3+3924*x^2+184842*x-178605)]]
## [ansx,eqx]:elimalg1(eqy,y,x) -> 
## [ansx,eqx] = [[x = (13^(3/2)*%i+15)/28,x = -(13^(3/2)*%i-15)/28,x = -1,x = (4*%i+3)/5,
##                x = -(4*%i-3)/5,x = 1,x = (26*%i-3)/10,x = -(26*%i+3)/10,
##                x = (2*sqrt(205)*%i+15)/10,x = -(2*sqrt(205)*%i-15)/10],
##               [7667712*(35840000000000*x^26-540160000000000*x^25+5918233600000000*x^24
##                                            -45547509760000000*x^23
##                                            +292766570496000000*x^22
##                                            -1555316776755200000*x^21
##                                            +7238296978626560000*x^20
##                                            -29328952793538560000*x^19
##                                            +106308422807500288000*x^18
##                                            -342808584987972864000*x^17
##                                            +997119418157739302400*x^16
##                                            -2599736363176034688000*x^15
##                                            +6109680872776589598720*x^14
##                                            -12834000264395011242240*x^13
##                                            +24034251828259720913856*x^12
##                                            -39563851250680339219968*x^11
##                                            +56245060253736636820056*x^10
##                                            -66595670779021694783340*x^9
##                                            +60457385243713552969949*x^8
##                                            -31296216528311133061102*x^7
##                                            -16211895356666020571618*x^6
##                                            +62891276856559236492626*x^5
##                                            -85283710230427505557560*x^4
##                                            +74252943088136119572694*x^3
##                                            -43554680619882980355478*x^2
##                                            +16118994183116883553330*x
##                                            -2907056850097955968325)]]
## --end of elimalg1('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-6.mxl"

7. chk2D() : exp内の sqrt(f(x))部において f(x)<0 の判定を行う

chk2D()$
chk2D('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
## chk2D()
##    --begin of chk2D('help)--
##    機能: exp内の sqrt(f(x))部において f(x)<0 の判定を行う
##    文法: chk2D(expr,...)
##    例示: 
##    メモ: 
##    --end of chk2D('help')--
##    
## chk2D('ex)
## --begin of chk2D('ex)-- 
##     chk2D(sqrt((-x^2)+4*x-8)+x) = true 
##     chk2D(sqrt((-x^2)+4*x-8)+x+sqrt(t-2)) = true 
##     chk2D(%i*abs(x)+x) = false 
## --end of chk2D('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-7.mxl"

8. polydeg() : 多変数多項式の変数毎の次数リストを返す

polydeg()$
polydeg('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
## polydeg()
##    --begin of polydeg('help)--
##    機能: 多変数多項式の変数毎の次数リストを返す
##    文法: polydeg(expr,...)
##    例示: polydeg(x^2+4*x-8));                  -> [[x],[[2,1]]] 
##          polydeg(expand((x^2+4*x-8)*(y-1)^3)); -> [[x,y],[[2,1],[3,2,1]]]
##    メモ: 
##    --end of polydeg('help')--
##    
## polydeg('ex)
## --begin of polydeg('ex)-- 
##     polydeg(x^2+4*x-8) = [[x],[[2,1]]] 
##     polydeg(expand((x^2+4*x-8)*(y-1)^3)) = [[x,y],[[2,1],[3,2,1]]] 
## --end of polydeg('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-8.mxl"

9. msort() : データ位置(昇順順位位置)を返す

msort()$
msort('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
## msort()
##    --begin of msort('help)--
##    機能: データ位置(昇順順位位置)を返す
##    文法: msort(M,{col},...)
##    例示: 
##      v : [30,inf,10,-sqrt(2),1+2*%i,10,1,minf],
##      M : [[30,c],[inf,o],[10,c],[-sqrt(2),o],[2*%i+1,o],[10,o],[1,o],[minf,o]],
##      M2: [[x,c],[x-sqrt(2),o],[x+sqrt(2),c],[x-1,c]],
##      msort(v) = [8,4,7,3,6,1,2],
##      msort(M,1) = [8,4,7,3,6,1,2],
##      msort(M2,1) =  [2,4,1,3],
##    メモ: 
##    --end of msort('help')--
##    
## msort('ex)
## --begin of msort('ex)-- 
## msort_ex: データ位置(昇順順位位置)を返す 
##  例1 : msort(v)  
##  データ v:  [30,inf,10,-sqrt(2),2*%i+1,10,1,minf] 
## ★  msort(v) 
## ◎  out = [8,4,7,3,6,1,2] 
##  例2 : msort(M,1) 
## データ M:  [[30,c],[inf,o],[10,c],[-sqrt(2),o],[2*%i+1,o],[10,o],[1,o],[minf,o]] 
## ★  msort(M,1) 
## ◎  out = [8,4,7,3,6,1,2] 
##  例3 : msort(M2,1) 
## データ M2:  [[x,c],[x-sqrt(2),o],[x+sqrt(2),c],[x-1,c]] 
## ★  msort(M2,1) 
## ◎  out = [2,4,1,3] 
## --end of msort('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-9.mxl"

10. gcd2l() : リスト L=[f1(x),f2(x),…] から Lout:[GCD,[f1/GCD,f2/GCD]] を返す

gcd2l()$
gcd2l('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
## gcd2l()
##    --begin of gcl2L('help)--
##    機能: リスト L=[f1(x),f2(x),...] から Lout:[GCD,[f1/GCD,f2/GCD]] を返す
##    文法: gcl2L(L,...)
##    例示: gcd2l([a*b*c,b*c*d,c*a*b]); -> [b*c,[a,d,a]]
##    メモ: 
##    --end of gcl2L('help')--
##    
## gcd2l('ex)
## --begin of gcl2L('ex)-- 
##     gcd2l([a*b*c,b*c*d,a*b*c]) = [b*c,[a,d,a]] 
## --end of gcl2L('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-10.mxl"

11. mkfloat() : 虚数%iを含む数値を判定し実数であれば実数値を返す

mkfloat()$
mkfloat('ex)$
## ~/bin/go TMP/tmp_lang/chunk-11.mxl  > TMP/tmp_lang/chunk-11.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-11.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-11.mxl
## mkfloat()
##    --begin of mkfloat('help)--
##    機能: 虚数%iを含む数値を判定し実数であれば実数値を返す
##    文法: mkfloat(expr,...)
##    例示: 
##       CS: mkfloat(1.0) = 1.0 
##       CS: mkfloat(1.0E-10*%i+1.0) = 1.0 
##       CS: mkfloat(1.0E-6*%i+1.0) = null 
##       CS: mkfloat(2*x+%i) = unknown 
##       CS: mkfloat([1.0]) = [1.0] 
##       CS: mkfloat([1.0,1.0E-10*%i+1.0,1.0E-6*%i+1.0,2*x+%i]) = [1.0,1.0,null,unknown] 
##       CS: freeof(unknown,null,mkfloat([1.0,1.0E-10*%i+1.0])) = true 
##       CS: freeof(unknown,null,mkfloat([1.0,1.0E-10*%i+1.0,1.0E-6*%i+1.0,2*x+%i])) = false 
##    メモ: 
##    --end of mkfloat('help')--
##    
## mkfloat('ex)
## --begin of mkfloat('ex)-- 
## CS: mkfloat(1.0) = 1.0 
## CS: mkfloat(1.0E-10*%i+1.0) = 1.0 
## CS: mkfloat(1.0E-6*%i+1.0) = null 
## CS: mkfloat(2*x+%i) = unknown 
## CS: mkfloat([1.0]) = [1.0] 
## CS: mkfloat([1.0,1.0E-10*%i+1.0,1.0E-6*%i+1.0,2*x+%i]) = [1.0,1.0,null,unknown] 
## CS: freeof(unknown,null,mkfloat([1.0,1.0E-10*%i+1.0])) = true 
## CS: freeof(unknown,null,mkfloat([1.0,1.0E-10*%i+1.0,1.0E-6*%i+1.0,2*x+%i])) = false 
## --end of mkfloat('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-11.mxl"

12. floatfix() : 数値 expr をk桁に丸めた結果を返す

floatfix()$
floatfix('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
## floatfix()
##    --begin of floatfix('help)--
##    機能: 数値 expr をk桁に丸めた結果を返す
##    文法: floatfix(expr,...)
##    例示:
##      CS: floatfix(1.234567,4) = 1.235 
##      CS: floatfix([1.234567],4) = [1.235] 
##      CS: floatfix([1.234567,123456.7,1.234567E-10],3) = [1.23,123000.0,1.23E-10] 
##      CS: freeof(null,floatfix([1.234567,x+1.234567],4)) = false  
##    メモ: 
##    --end of floatfix('help')--
##    
## floatfix('ex)
## --begin of floatfix('ex)-- 
## CS: floatfix(1.234567,4) = 1.235 
## CS: floatfix([1.234567],4) = [1.235] 
## CS: floatfix([1.234567,123456.7,1.234567E-10],3) = [1.23,123000.0,1.23E-10] 
## CS: freeof(null,floatfix([1.234567,x+1.234567],4)) = false 
## --end of floatfix('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-12.mxl"

13. flrlimit() : x0:浮動小数での関数f(x)の左右極限値を評価する

flrlimit()$
flrlimit('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
## flrlimit()
##    --begin of flrlimit('help)--
##    機能:  x0:浮動小数での関数f(x)の左右極限値を評価する
##    文法: flrlimit(func,var,x0,...)
##    例示:
##      CS: v21 = 
##         (sqrt(27*x^4+32*x^3-486*x^2+2187)/(2*3^(3/2))-(x^2-9)/2)^(1/3)
##          -(2*x)/(3*(sqrt(27*x^4+32*x^3-486*x^2+2187)/(2*3^(3/2))-(x^2-9)/2)^(1/3)) 
##      CS: flrlimit(v21,x,x0) = [2.4595186,2.4595186,0] 
##      CS: v24 = 
##         (sqrt(27*x^4+32*x^3-54*x^2+27)/(2*3^(3/2))-(x^2-1)/2)^(1/3)
##          -(2*x)/(3*(sqrt(27*x^4+32*x^3-54*x^2+27)/(2*3^(3/2))-(x^2-1)/2)^(1/3)) 
##      CS: flrlimit(v24,x,x0) = [1.1681861,1.1681861,0] 
##      CS: h1 = -sqrt(sqrt(8*x^2+1)-2*x^2-1)/sqrt(2) , x0 = 0 
##      CS: flrlimit(h1,x,x0) = [0.0,0.0,0] 
##    メモ: 
##    --end of flrlimit('help')--
##    
## flrlimit('ex)
## --begin of flrlimit('ex)-- 
## CS: v21 = 
##    (sqrt(27*x^4+32*x^3-486*x^2+2187)/(2*3^(3/2))-(x^2-9)/2)^(1/3)
##     -(2*x)/(3*(sqrt(27*x^4+32*x^3-486*x^2+2187)/(2*3^(3/2))-(x^2-9)/2)^(1/3)) 
## CS: flrlimit(v21,x,x0) = [2.4595186,2.4595186,0] 
## CS: v24 = 
##    (sqrt(27*x^4+32*x^3-54*x^2+27)/(2*3^(3/2))-(x^2-1)/2)^(1/3)
##     -(2*x)/(3*(sqrt(27*x^4+32*x^3-54*x^2+27)/(2*3^(3/2))-(x^2-1)/2)^(1/3)) 
## CS: flrlimit(v24,x,x0) = [1.1681861,1.1681861,0] 
## CS: h1 = -sqrt(sqrt(8*x^2+1)-2*x^2-1)/sqrt(2) , x0 = 0 
## CS: flrlimit(h1,x,x0) = [0.0,0.0,0] 
## --end of flrlimit('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-13.mxl"

14. salgall() : 多連立多変数代数方程式の同時解を求める

salgall()$
salgall('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
## salgall()
##    --begin of salgall('help)--
##    機能: 多連立多変数代数方程式の同時解を求める
##    文法: salgall(eqs,varl,...)
##    例示:
##      salgall([y-x^2+6*x-10, y+x^2-6*x],[x,y])
##      -> [[x = 1,y = 5],[x = 5,y = 5]]
##      salgall(y^3+2*x*y+x^2-1, [x,y])
##       -> [[x = -2.0459579,y = 1.1678921],[x = -0.65266742,y = -0.65962984]]
##      salgall((x-8)^2*((y-7)^2+(x-6)^2)*((z-5)^2+(y-4)^2+(x-3)^2)*(z^2+y^2+x^2-1),[x,y,z])
##       ->  [[x = 3,y = 4,z = 5],[x = 6,y = 7,z = z],[x = 8,y = y,z = z],
##            [x = x,y = y,z = -sqrt((-y^2)-x^2+1)],
##            [x = x,y = y,z = sqrt((-y^2)-x^2+1)]]
##    メモ: 
##    --end of salgall('help')--
##    
## salgall('ex)
## --begin of salgall('ex)-- 
## ★  (/* 例1 2変数方程式の同時解 */  
##     salgall([y-x^2+6*x-10, y+x^2-6*x], [x,y]) ) 
## ◎  out = [[x = 1,y = 5],[x = 5,y = 5]] 
## ★  (/* 例2 2変数方程式の同時解(丸め誤差による不一致) */  
##     out : salgall(y^3+2*x*y+x^2-1,[x,y]),  
##     out : scanmap(lambda([u],if floatnump(u) then floatfix(u,7) else u),out),  
##     out ) 
## ◎  out = [[x = -2.045958,y = 1.167892],[x = -0.6526674,y = -0.6596298]] 
## ★  (/* 例3 3変数方程式の同時解 */  
##     
##    salgall((x-8)^2*((y-7)^2+(x-6)^2)*((z-5)^2+(y-4)^2+(x-3)^2)*(z^2+y^2+x^2-1),[x,y,z]) )
##     
## Condition in MEVAL [or a callee]: INTERNAL-SIMPLE-ERROR: Zero divisor.
## algsys: Couldn't reduce system to a polynomial in one variable.
## ◎  out = 
##     [[x = 3,y = 4,z = 5],[x = 6,y = 7,z = z],[x = 8,y = y,z = z],
##      [x = x,y = y,z = -sqrt((-y^2)-x^2+1)],[x = x,y = y,z = sqrt((-y^2)-x^2+1)]] 
## --end of salgall('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-14.mxl"

15. sqrt2d() : z = z0 + sqrt(z1) z1 < 0 のとき z=z0 とする処理

sqrt2d()$
sqrt2d('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
## sqrt2d()
##    --begin of sqrt2d('help)--
##    機能: z = z0 + sqrt(z1) z1 < 0 のとき z=z0 とする処理
##    文法: sqrt2d(ans0,...)
##    例示: 
##          sqrt2d([x = x,y = y,z = sqrt((-y^2)+4*y-x^2+2*x-5)+3])
##            -> [x = 1,y = 2,z = 3]
##          sqrt2d([x = x,y = y,z = -sqrt((-y^2)-x^2+1)])
##            -> [x = x,y = y,z = -sqrt((-y^2)-x^2+1)]
##    メモ: 
##    --end of sqrt2d('help')--
##    
## sqrt2d('ex)
## --begin of sqrt2d('ex)-- 
## ---例--- [x = x,y = y,z = sqrt((-y^2)+4*y-x^2+2*x-5)+3] 
## 'sqrt2d([x = x,y = y,z = sqrt((-y^2)+4*y-x^2+2*x-5)+3])
## (%t3) out = [x = 1,y = 2,z = 3]
## ---例--- [x = x,y = y,z = -sqrt((-y^2)-x^2+1)] 
## 'sqrt2d([x = x,y = y,z = -sqrt((-y^2)-x^2+1)])
## (%t4) out = [x = x,y = y,z = -sqrt((-y^2)-x^2+1)]
## --end of sqrt2d('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-15.mxl"

16. on3dplot2() 内部使用 : on3f:on3(f(x,y),fl,fr,flr) の解領域を表示する

figs_dir : "test3_files"$
on3dplot2()$
on3dplot2('ex,'noview)$
## ~/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
## figs_dir:"test3_files"
## on3dplot2()
##    --begin of on3dplot2('help)--
##    機能: on3f:on3(f(x,y),fl,fr,flr) の解領域を表示する
##    文法: on3dplot2([args])
##    例示:     
##         c0show("例0. on3ineq()の結果を用いた実行例")$
##         on3ineq([(x^2-y)/((x-1)*(y-2)),1/(x-1),1/(y-2),co],
##                 ’resultonly,'nooutsum,'noview)$
##         on3dplot2(on3((x^2-y)/((x-1)*(y-2)),1/(x-1),1/(y-2),co), 
##                   'xrange=[-4,4],'yrange=[0,8],
##                   'title="on3dplot2-ex0",
##                   'file_name="on3dplot2-ex0",
##                   ''view)$
##    メモ: 共通変数: vsing=[xsing,ysing] 
##    --end of on3dplot2('help')--
##    
## on3dplot2('ex,'noview)
## --begin of on3dplot2('ex)-- 
##     例0. on3ineq()の結果を用いた実行例 
## CS: progn = <on3ineq> , outsum = 
##    on3(x,(sqrt(5)+1)/2,2,co)*on3(y,x^2-x+1,(x^2+2)/2,oc)
##     +on3(x,0,1,oo)*on3(y,x^2-x+1,(x^2+2)/2,oc)
##     +on3(x,minf,-sqrt(2),oc)*on3(y,(x^2+2)/2,x^2-x+1,co)
##     +on3(x,-sqrt(2),-(sqrt(5)-1)/2,oo)*on3(y,2,x^2-x+1,oo)
##     +on3(x,sqrt(2),(sqrt(5)+1)/2,oo)*on3(y,2,(x^2+2)/2,oc) 
## --[Result display]-- 
## varl = [x,y] 
## LL = 
##     [[['V[1][8],'V[1][4],oc],['V[2][2],'V[2][3],co]],
##      [['V[1][4],'V[1][6],oo],['V[2][1],'V[2][3],oo]],
##      [['V[1][1],'V[1][2],oo],['V[2][3],'V[2][2],oc]],
##      [['V[1][5],'V[1][7],oo],['V[2][1],'V[2][2],oc]],
##      [['V[1][7],'V[1][3],co],['V[2][3],'V[2][2],oc]]] 
## , where 
## V[ 1 ]= [0,1,2,-sqrt(2),sqrt(2),-(sqrt(5)-1)/2,(sqrt(5)+1)/2,minf,inf] 
## V[ 2 ]= [2,(x^2+2)/2,x^2-x+1,minf,inf] 
## ---end--- 
## CS: 参照可能変数: varl,V,LL,vsing,on3f,fL,on3floatnump,acnode 
## CS: progn = <on3regionview> , ==2変数関数== 
##     例1. 
##     例2. 
## --end of on3dplot2('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-16.mxl"
test3_files/on3dplot2-ex0.pngのグラフ

test3_files/on3dplot2-ex0.pngのグラフ

test3_files/on3dplot2-ex1.pngのグラフ

test3_files/on3dplot2-ex1.pngのグラフ

test3_files/on3dplot2-ex2.pngのグラフ

test3_files/on3dplot2-ex2.pngのグラフ

17. on3gr2() 内部使用 : on3関数で記述された領域(2変数,孤立点も可)の作図

figs_dir : "test3_files"$
on3gr2()$
on3gr2('ex,'noview)$
## ~/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
## figs_dir:"test3_files"
## on3gr2()
##    --begin of on3gr2('help)--
##    機能: on3関数で記述された領域(2変数,孤立点も可)の作図
##    文法: on3gr2(outsum,...)
##    例示: on3gr2(outsum)$ 
##         on3gr2(outsum,'xrange=[0,3],'yrange=[0,3],'view)$  
##    メモ: 共通変数: vsing=[xsing,ysing] 
##    --end of on3gr2('help')--
##    
## on3gr2('ex,'noview)
## --begin of on3gr2('ex)-- 
## --end of on3gr2('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-17.mxl"

18. on3ineq_ex() : on3式で与えた不等式の解領域を求める例を示す

figs_dir : "test3_files"$
on3ineq_ex(c2co,file_name=sconcat(figs_dir,"/","on3ineq_ex"),'noview)$
## ~/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
## figs_dir:"test3_files"
## ineqex(c2co,file_name = sconcat(figs_dir,"/","on3ineq_ex"),'noview)
## CS: === ■ ■ ■  progn = <on3ineq_ex> ,  ■ ■ ■  === 
## CS: excase = c2co 
## CS: ev(excase) = [[[y^2+x^2,1,9,co]]] 
## CS: progn = <on3ineq> , outsum = 
##    on3(x,1,3,co)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo)
##     +on3(x,-3,-1,oc)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo)
##     +on3(x,-1,1,oo)*on3(y,-sqrt(9-x^2),-sqrt(1-x^2),oc)
##     +on3(x,-1,1,oo)*on3(y,sqrt(1-x^2),sqrt(9-x^2),co) 
## --[Result display]-- 
## varl = [x,y] 
## LL = 
##     [[['V[1][1],'V[1][2],oc],['V[2][3],'V[2][4],oo]],
##      [['V[1][2],'V[1][3],oo],['V[2][3],'V[2][1],oc]],
##      [['V[1][2],'V[1][3],oo],['V[2][2],'V[2][4],co]],
##      [['V[1][3],'V[1][4],co],['V[2][3],'V[2][4],oo]]] 
## , where 
## V[ 1 ]= [-3,-1,1,3,minf,inf] 
## V[ 2 ]= [-sqrt(1-x^2),sqrt(1-x^2),-sqrt(9-x^2),sqrt(9-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-18.mxl"
test3_files/on3ineq_ex.pngのグラフ

test3_files/on3ineq_ex.pngのグラフ

19. on3romberg() : 1変数on3式のRomberg数値定積分

on3romberg()$
on3romberg('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
## on3romberg()
##    --begin of on3romberg('help)--
##    機能: 1変数on3式のRomberg数値定積分 
##    文法: on3romberg(on3func,...)
##    例示: on3romberg(x*on3(x,1,3,co))
##    メモ: 
##    --end of on3romberg('help')--
##    
## on3romberg('ex)
## --begin of on3romberg('ex)-- 
##     on3romberg(x*on3(x,1,3,co)) = 4.0 
## --end of on3romberg('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-19.mxl"

20. on3integ10() : on3多項式の数式積分

on3integ10()$
on3integ10('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
## on3integ10()
##    --begin of on3integ10('help)--
##    機能: on3多項式の数式積分
##    文法: on3integ10(on3func,...)
##    例示: on3integ10(x*on3(x,1,3,co),x)
##    メモ: 
##    --end of on3integ10('help')--
##    
## on3integ10('ex)
## --begin of on3integ10('ex)-- 
##     on3integ10(x*on3(x,1,3,co),x) = 4 
## --end of on3integ10('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-20.mxl"

21. nor2d() : 2変量正規分布の密度関数

figs_dir : "test3_files"$
nor2d()$
nor2d('ex,'noview)$
## ~/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
## figs_dir:"test3_files"
## nor2d()
##    --begin of nor2d('help)--
##    機能: 2変量正規分布の密度関数
##    文法: nor2d(x,y,mx,my,sx,sy,r,...)
##    例示: nor2d(x,y,0,0,1,1,0.7)
##    --end of nor2d('help')--
##    
## nor2d('ex,'noview)
## --begin of nor2d('ex)-- 
## ★  ( f : nor2d(x,y,0,0,1,1,0.7),        /* 2次元正規分布の密度関数置数 */ 
##      
##     gr3v([explicit(f,x,-4,4,y,-4,4)],'title="plot of nor2d", 
##     'file_name=test3_files/nor2d, noview), /* fの描画 */  
##     c0show(f)    /* f の標示 */ ) 
##     f = (0.70014004*%e^-(0.98039215*(y^2-1.4*x*y+x^2)))/%pi 
##     out =  (0.70014004*%e^-(0.98039215*(y^2-1.4*x*y+x^2)))/%pi 
## --end of nor2d('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-21.mxl"
test3_files/nor2d.pngのグラフ

test3_files/nor2d.pngのグラフ

22. q3() : 2変量正規分布の密度関数の積分例

figs_dir : "test3_files"$
q3()$
q3('go, 'file_name=sconcat(figs_dir,"/","q3"), 'noview)$
## ~/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
## figs_dir:"test3_files"
## q3()
##    --begin of q3('help)--
##    機能: 2変量正規分布の領域[[x+y,2,inf,co],[x,-4,1,cc],[y,-4,4,cc]]の確率を求め図示する
##    文法: q3({'help|'ex|'go},...)
##    例示: q3('go, 'file_name="sconcat(figs_dir,'/','q3')", 'columns=2, 'dimensions=[1000,500])
##    --end of q3('help')--
##    
## q3('go,'file_name = sconcat(figs_dir,"/","q3"),'noview)
## CS: progn = <q3> , dlist = 
##    [terminal = png,file_name = "test3_files/q3",columns = 2,dimensions = [1000,500]] 
## ★  
##     ( /* 領域D0の設定, 相関のある2変量標準正規分布の確率密度関数 f の設定 */ 
##      
##     D0:on3ineq([[x,-4,4,cc],[y,-4,4,cc]],'resultonly,'noview),  
##     
##    f:nor2d(x,y, 0,0, 1,1, 0.7), /* 相関のある2変量標準正規分布の確率密度関数 */ 
##     
##     Fxy0:expand(f*D0), Fx0:on3integ19(Fxy0,y,minf,inf), F0:on3romberg(Fx0),cshow(F0)  
##      ) 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: F0 = 0.99987821 
## ◎   out = 0.99987821 
## ★  ( fdens:f/F0,  /* 打ち切り領域 D0 上の確率密度関数 */  
##     c0show(f,F0,fdens),  
##     D:on3ineq([[x+y,2,inf,co],[x,-4,1,cc],[y,-4,4,cc]],'resultonly,'noplot,'noview),  
##     c0show(D),Fxy:expand(fdens*D), Fx:on3integ19(Fxy,y,minf,inf), P : on3romberg(Fx) ) 
##     f = (0.70014004*%e^-(0.98039215*(y^2-1.4*x*y+x^2)))/%pi  F0 = 0.99987821  fdens = 
##    (0.70022531*%e^-(0.98039215*(y^2-1.4*x*y+x^2)))/%pi 
##     D = on3(x,-2,1,cc)*on3(y,2-x,4,cc) 
## ◎   out = 0.027532472 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-22.mxl"
test3_files/q3.pngのグラフ

test3_files/q3.pngのグラフ

23. q4() : 2変量正規分布の密度関数の積分例

figs_dir : "test3_files"$
q4()$
q4('go, 'file_name=sconcat(figs_dir,"/","q4"), 'noview)$
## ~/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
## figs_dir:"test3_files"
## q4()
##    --begin of q4('help)--
##    機能: 2変量正規分布の領域[[x^3+x*y+y^2,1,9,co],[y,-4,4,co]]の確率を求め図示する
##    文法: q4({'help|'ex|'go},...)
##    例示: q4('go, 'file_name="q4", 'columns=2, 'dimensions=[1000,500])
##    --end of q4('help')--
##    
## q4('go,'file_name = sconcat(figs_dir,"/","q4"),'noview)
## ★  ( /* 定義域 D 上の関数 f=f(x,Y) の積分 */  
##     D:on3ineq([[x^3+x*y+y^2,1,9,co],[y,-4,4,co]],'resultonly,'noplot,'noview),  
##     print("D = ",D),  
##     f0:exp(-(x^2+y^2)/2)/(2*%pi), Fxy:expand(f0 * D),  
##     print("Fxy=",Fxy),  
##     Fx:on3integ19(Fxy,y,minf,inf),  
##     print("Fx=",Fx),  
##     P:on3romberg(expand(Fx)),  
##     print("P=",P)  ) 
## D =  
##     on3(x,1.0906605,2.1668449,co)*on3(y,-(sqrt((-4*x^3)+x^2+36)+x)/2,
##                                       (sqrt((-4*x^3)+x^2+36)-x)/2,oo)
##      +on3(x,-1.255383,1.0906605,oo)*on3(y,-(sqrt((-4*x^3)+x^2+36)+x)/2,
##                                         -(sqrt((-4*x^3)+x^2+4)+x)/2,oc)
##      +on3(x,-1.9359795,-1.255383,oc)*on3(y,-(sqrt((-4*x^3)+x^2+36)+x)/2,
##                                          -(sqrt((-4*x^3)+x^2+4)+x)/2,oc)
##      +on3(x,-2.5891325,-1.9359795,cc)*on3(y,-(sqrt((-4*x^3)+x^2+36)+x)/2,
##                                           -(sqrt((-4*x^3)+x^2+4)+x)/2,oc)
##      +on3(x,-1.255383,1.0906605,oo)*on3(y,(sqrt((-4*x^3)+x^2+4)-x)/2,
##                                         (sqrt((-4*x^3)+x^2+36)-x)/2,co)
##      +on3(x,-1.9359795,-1.255383,oc)*on3(y,(sqrt((-4*x^3)+x^2+4)-x)/2,4,co)
##      +on3(x,-3,-2.5891325,co)*on3(y,-4,-(sqrt((-4*x^3)+x^2+4)+x)/2,cc) 
## Fxy= 
##     (on3(x,1.0906605,2.1668449,co)*%e^((-y^2/2)-x^2/2)
##                                   *on3(y,(-sqrt((-4*x^3)+x^2+36)/2)-x/2,
##                                        sqrt((-4*x^3)+x^2+36)/2-x/2,oo))
##      /(2*%pi)
##      +(on3(x,-1.255383,1.0906605,oo)*%e^((-y^2/2)-x^2/2)
##                                     *on3(y,(-sqrt((-4*x^3)+x^2+36)/2)-x/2,
##                                          (-sqrt((-4*x^3)+x^2+4)/2)-x/2,oc))
##       /(2*%pi)
##      +(on3(x,-1.9359795,-1.255383,oc)*%e^((-y^2/2)-x^2/2)
##                                      *on3(y,(-sqrt((-4*x^3)+x^2+36)/2)-x/2,
##                                           (-sqrt((-4*x^3)+x^2+4)/2)-x/2,oc))
##       /(2*%pi)
##      +(on3(x,-2.5891325,-1.9359795,cc)*%e^((-y^2/2)-x^2/2)
##                                       *on3(y,(-sqrt((-4*x^3)+x^2+36)/2)-x/2,
##                                            (-sqrt((-4*x^3)+x^2+4)/2)-x/2,oc))
##       /(2*%pi)
##      +(on3(x,-1.255383,1.0906605,oo)*%e^((-y^2/2)-x^2/2)
##                                     *on3(y,sqrt((-4*x^3)+x^2+4)/2-x/2,
##                                          sqrt((-4*x^3)+x^2+36)/2-x/2,co))
##       /(2*%pi)
##      +(on3(x,-1.9359795,-1.255383,oc)*%e^((-y^2/2)-x^2/2)
##                                      *on3(y,sqrt((-4*x^3)+x^2+4)/2-x/2,4,co))
##       /(2*%pi)
##      +(on3(x,-3,-2.5891325,co)*%e^((-y^2/2)-x^2/2)
##                               *on3(y,-4,(-sqrt((-4*x^3)+x^2+4)/2)-x/2,cc))
##       /(2*%pi) 
## Fx= 
##    (%e^-(x^2/2)*(sqrt(%pi)*on3(x,-1.255383,1.0906605,oo)
##                           *(sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)+x)/2^(3/2))
##                            +sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)-x)/2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)+x)/2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)-x)/2^(3/2)))
##                 +sqrt(%pi)*on3(x,1.0906605,2.1668449,co)
##                           *(sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)+x)/2^(3/2))
##                            +sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)-x)/2^(3/2)))
##                 +sqrt(%pi)*on3(x,-1.9359795,-1.255383,oc)
##                           *(sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)+x)/2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)+x)/2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)-x)/2^(3/2))
##                            +sqrt(2)*erf(2^(3/2)))
##                 +sqrt(%pi)*on3(x,-2.5891325,-1.9359795,cc)
##                           *(sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)+x)/2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)+x)/2^(3/2)))
##                 +sqrt(%pi)*on3(x,-3,-2.5891325,co)
##                           *(sqrt(2)*erf(2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)+x)/2^(3/2)))))
##     /(4*%pi) 
## P= 0.36309648 
## ◎   out = 0.36309648 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-23.mxl"
test3_files/q4.pngのグラフ

test3_files/q4.pngのグラフ

24. on3ineq_jex() 0除算エラー改善済 : 第2論文で扱った不等式解とその解析解

figs_dir : "test3_files"$
on3ineq_jex()$
on3ineq_jex('ex,'noview,'resultonly,'nooutsum)$
## ~/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:"test3_files"
## on3ineq_jex()
##    --begin of on3ineq_jex('help)--
##    機能: JJAS 2011 の例題を検証する
##    文法: on3ineq_jex({'help|'ex|'go},...)
##    例示: on3ineq_jex('go)$             全ての例題ex0,ex1,...,ex8 を実行
##         on3ineq_jex('go, [ex0,ex3])$   例題ex0,ex3のみ実行
##    --end of on3ineq_jex('help')--
##    
## on3ineq_jex('ex,'noview,'resultonly,'nooutsum)
## --begin of on3ineq_jex('ex)-- 
## 実行例リスト: Lex =  [ex0,ex1,ex2,ex3,ex4,ex5,ex6,ex7,ex8] 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: progn = <q3> , dlist = 
##    [terminal = png,file_name = "test3_files/jjas-ex7",columns = 2,
##     dimensions = [1000,500]] 
## ★  
##     ( /* 領域D0の設定, 相関のある2変量標準正規分布の確率密度関数 f の設定 */ 
##      
##     D0:on3ineq([[x,-4,4,cc],[y,-4,4,cc]],'resultonly,'noview),  
##     
##    f:nor2d(x,y, 0,0, 1,1, 0.7), /* 相関のある2変量標準正規分布の確率密度関数 */ 
##     
##     Fxy0:expand(f*D0), Fx0:on3integ19(Fxy0,y,minf,inf), F0:on3romberg(Fx0),cshow(F0)  
##      ) 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: F0 = 0.99987821 
## ◎   out = 0.99987821 
## ★  ( fdens:f/F0,  /* 打ち切り領域 D0 上の確率密度関数 */  
##     c0show(f,F0,fdens),  
##     D:on3ineq([[x+y,2,inf,co],[x,-4,1,cc],[y,-4,4,cc]],'resultonly,'noplot,'noview),  
##     c0show(D),Fxy:expand(fdens*D), Fx:on3integ19(Fxy,y,minf,inf), P : on3romberg(Fx) ) 
##     f = (0.70014004*%e^-(0.98039215*(y^2-1.4*x*y+x^2)))/%pi  F0 = 0.99987821  fdens = 
##    (0.70022531*%e^-(0.98039215*(y^2-1.4*x*y+x^2)))/%pi 
##     D = on3(x,-2,1,cc)*on3(y,2-x,4,cc) 
## ◎   out = 0.027532472 
## ★  ( /* 定義域 D 上の関数 f=f(x,Y) の積分 */  
##     D:on3ineq([[x^3+x*y+y^2,1,9,co],[y,-4,4,co]],'resultonly,'noplot,'noview),  
##     print("D = ",D),  
##     f0:exp(-(x^2+y^2)/2)/(2*%pi), Fxy:expand(f0 * D),  
##     print("Fxy=",Fxy),  
##     Fx:on3integ19(Fxy,y,minf,inf),  
##     print("Fx=",Fx),  
##     P:on3romberg(expand(Fx)),  
##     print("P=",P)  ) 
## D =  
##     on3(x,1.0906605,2.1668449,co)*on3(y,-(sqrt((-4*x^3)+x^2+36)+x)/2,
##                                       (sqrt((-4*x^3)+x^2+36)-x)/2,oo)
##      +on3(x,-1.255383,1.0906605,oo)*on3(y,-(sqrt((-4*x^3)+x^2+36)+x)/2,
##                                         -(sqrt((-4*x^3)+x^2+4)+x)/2,oc)
##      +on3(x,-1.9359795,-1.255383,oc)*on3(y,-(sqrt((-4*x^3)+x^2+36)+x)/2,
##                                          -(sqrt((-4*x^3)+x^2+4)+x)/2,oc)
##      +on3(x,-2.5891325,-1.9359795,cc)*on3(y,-(sqrt((-4*x^3)+x^2+36)+x)/2,
##                                           -(sqrt((-4*x^3)+x^2+4)+x)/2,oc)
##      +on3(x,-1.255383,1.0906605,oo)*on3(y,(sqrt((-4*x^3)+x^2+4)-x)/2,
##                                         (sqrt((-4*x^3)+x^2+36)-x)/2,co)
##      +on3(x,-1.9359795,-1.255383,oc)*on3(y,(sqrt((-4*x^3)+x^2+4)-x)/2,4,co)
##      +on3(x,-3,-2.5891325,co)*on3(y,-4,-(sqrt((-4*x^3)+x^2+4)+x)/2,cc) 
## Fxy= 
##     (on3(x,1.0906605,2.1668449,co)*%e^((-y^2/2)-x^2/2)
##                                   *on3(y,(-sqrt((-4*x^3)+x^2+36)/2)-x/2,
##                                        sqrt((-4*x^3)+x^2+36)/2-x/2,oo))
##      /(2*%pi)
##      +(on3(x,-1.255383,1.0906605,oo)*%e^((-y^2/2)-x^2/2)
##                                     *on3(y,(-sqrt((-4*x^3)+x^2+36)/2)-x/2,
##                                          (-sqrt((-4*x^3)+x^2+4)/2)-x/2,oc))
##       /(2*%pi)
##      +(on3(x,-1.9359795,-1.255383,oc)*%e^((-y^2/2)-x^2/2)
##                                      *on3(y,(-sqrt((-4*x^3)+x^2+36)/2)-x/2,
##                                           (-sqrt((-4*x^3)+x^2+4)/2)-x/2,oc))
##       /(2*%pi)
##      +(on3(x,-2.5891325,-1.9359795,cc)*%e^((-y^2/2)-x^2/2)
##                                       *on3(y,(-sqrt((-4*x^3)+x^2+36)/2)-x/2,
##                                            (-sqrt((-4*x^3)+x^2+4)/2)-x/2,oc))
##       /(2*%pi)
##      +(on3(x,-1.255383,1.0906605,oo)*%e^((-y^2/2)-x^2/2)
##                                     *on3(y,sqrt((-4*x^3)+x^2+4)/2-x/2,
##                                          sqrt((-4*x^3)+x^2+36)/2-x/2,co))
##       /(2*%pi)
##      +(on3(x,-1.9359795,-1.255383,oc)*%e^((-y^2/2)-x^2/2)
##                                      *on3(y,sqrt((-4*x^3)+x^2+4)/2-x/2,4,co))
##       /(2*%pi)
##      +(on3(x,-3,-2.5891325,co)*%e^((-y^2/2)-x^2/2)
##                               *on3(y,-4,(-sqrt((-4*x^3)+x^2+4)/2)-x/2,cc))
##       /(2*%pi) 
## Fx= 
##    (%e^-(x^2/2)*(sqrt(%pi)*on3(x,-1.255383,1.0906605,oo)
##                           *(sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)+x)/2^(3/2))
##                            +sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)-x)/2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)+x)/2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)-x)/2^(3/2)))
##                 +sqrt(%pi)*on3(x,1.0906605,2.1668449,co)
##                           *(sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)+x)/2^(3/2))
##                            +sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)-x)/2^(3/2)))
##                 +sqrt(%pi)*on3(x,-1.9359795,-1.255383,oc)
##                           *(sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)+x)/2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)+x)/2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)-x)/2^(3/2))
##                            +sqrt(2)*erf(2^(3/2)))
##                 +sqrt(%pi)*on3(x,-2.5891325,-1.9359795,cc)
##                           *(sqrt(2)*erf((sqrt((-4*x^3)+x^2+36)+x)/2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)+x)/2^(3/2)))
##                 +sqrt(%pi)*on3(x,-3,-2.5891325,co)
##                           *(sqrt(2)*erf(2^(3/2))
##                            -sqrt(2)*erf((sqrt((-4*x^3)+x^2+4)+x)/2^(3/2)))))
##     /(4*%pi) 
## P= 0.36309648 
## ◎   out = 0.36309648 
## --end of on3ineq_jex('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-24.mxl"
test3_files/jjas-ex0.pngのグラフ

test3_files/jjas-ex0.pngのグラフ

test3_files/jjas-ex1.pngのグラフ

test3_files/jjas-ex1.pngのグラフ

test3_files/jjas-ex2.pngのグラフ

test3_files/jjas-ex2.pngのグラフ

test3_files/jjas-ex3.pngのグラフ

test3_files/jjas-ex3.pngのグラフ

test3_files/jjas-ex4.pngのグラフ

test3_files/jjas-ex4.pngのグラフ

test3_files/jjas-ex5.pngのグラフ

test3_files/jjas-ex5.pngのグラフ

test3_files/jjas-ex6.pngのグラフ

test3_files/jjas-ex6.pngのグラフ

test3_files/jjas-ex7.pngのグラフ

test3_files/jjas-ex7.pngのグラフ

test3_files/jjas-ex8.pngのグラフ

test3_files/jjas-ex8.pngのグラフ

25. find_key() : キー付きリストからキー名を含む最初の要素を取り出す. キー名がない場合はFALSEを返す.

find_key()$
find_key('ex)$
## ~/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
## 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)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-25.mxl"

26. find_key_no() : キー付きリストからキー名を含む要素の位置を取り出す

find_key_no()$
find_key_no('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
## 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-26.mxl"

27, args_flat() : 関数引数に’argsL=[..]が存在するとき,その要素をフラットにする

args_flat()$
args_flat('ex)$
## ~/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
## args_flat()
##    --begin of args_flat('help)--
##    機能: 関数引数に'argsL=[..]が存在するとき,その要素をフラットにする
##    文法: args_flat(x,y,...)
##    例示: args_flat([args])
##    メモ: args=[a1,[a2,[a31,a32]], 'argsL=['xrange=[1,2], 'yrange=[3,4], ...]]
##          -> flat_args = [a1,[a2,[a31,a32]], 'xrange=[1,2], 'yrange=[3,4], ...]
##          注: flatten(args) ではargsの第2成分のリスト構造が壊れる
##    --end of args_flat('help')--
##    
## args_flat('ex)
## --begin of args_flat('ex)-- 
## --begin of args_flat('ex)-- 
## 例1.argsL=が存在するとき 
## 入力 
##       'args_flat(x*on3(x,2,4,co)+x^2*on3(x,1,3,co),
##                  ["+",x*on3(x,2,4,co),x^2*on3(x,1,3,co)],viewmode = true,
##                  argsL = [xrange = [1,2],yrange = [3,4]]) 
## 結果 args1 
## 例2.argsL=が存在しないとき 
## 入力 
##       'args_flat(x*on3(x,2,4,co)+x^2*on3(x,1,3,co),
##                  ["+",x*on3(x,2,4,co),x^2*on3(x,1,3,co)],viewmode = true,xrange = [1,2],
##                  yrange = [3,4]) 
## 結果 args1 
## --end of args_flat('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-27.mxl"

28. mk_fullname() : draw 関数の引数 file_name, terminal から fullname を生成する

mk_fullname()$
mk_fullname('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
## mk_fullname()
##    --begin of mk_fullname('help)--
##    機能: draw 関数の引数 file_name, terminal から fullname を生成する
##    文法: mk_fullname(dlist)
##    例示: mk_fullname([file_name="tmp",'terminal='png])
##          -> "tmp.png"
##    --end of mk_fullname('help')--
##    
## mk_fullname('ex)
## --begin of mk_fullname('ex)-- 
##     mk_fullname([file_name = sconcat(figs_dir,"/","mk_fullname"),'terminal = 'png]) = 
##    figs/mk_fullname.png 
## --end of mk_fullname('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-28.mxl"

29. fna() : 文字列 fullname から 文字列リスト [dir,sname,ext] を生成する

fna()$
fna('ex)$
## ~/bin/go TMP/tmp_lang/chunk-29.mxl  > TMP/tmp_lang/chunk-29.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-29.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-29.mxl
## fna()
##    --begin of fna('help)--
##    機能: 文字列 fullname から 文字列リスト [dir,sname,ext] を生成する
##    文法: fna(fullname)
##    例示: fna("tmp.png") -> ["/tmp/", "tmp", "png"]
##    --end of fna('help')--
##    
## fna('ex)
## --begin of fna('ex)-- 
##     fna("/tmp/tmp.png") = ["/tmp/","tmp","png"] 
## --end of fna('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-29.mxl"

30. list2str() : リストの全ての要素を文字列化する

list2str()$
list2str('ex)$
## ~/bin/go TMP/tmp_lang/chunk-30.mxl  > TMP/tmp_lang/chunk-30.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-30.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-30.mxl
## list2str()
##    --begin of list2str('help)--
##    機能: リストの全ての要素を文字列化する
##    文法: list2str(list)
##    例示: list2str(['color=blue, (x+y)^2, title="test"])
##          -> "color = blue, (y+x)^2, title = "test""
##    --end of list2str('help')--
##    
## list2str('ex)
## --begin of list2str('ex)-- 
##     exp1 = (y+x)^2 
##     L = [color = blue,(y+x)^2,file_name = "figs/list2str",terminal = png] 
##     map(stringp,L) = [false,false,false,false] 
##     list2str(L) = color = blue, (y+x)^2, file_name = "figs/list2str", terminal = png 
##     stringp(list2str(L)) = true 
## --end of list2str('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-30.mxl"

31. ush() : UNIXシェルを実行する

ush()$
ush('ex,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-31.mxl  > TMP/tmp_lang/chunk-31.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-31.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-31.mxl
## ush()
##    --begin of ush('help)--
##    機能: xとyの和を求める
##    文法: ush(script,...)
##    例示: ush("eog tmp.png")
##    --end of ush('help')--
##    
## ush('ex,'noview)
## --begin of ush('ex)-- 
##     script = eog tmp.png  , stringp(script) = true 
##     実行を省略する 
## --end of ush('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-31.mxl"

32. mk_draw() : 複数のグラフィックオブジェクトをdraw()に引き継ぎ作画する

figs_dir : "test3_files"$
mk_draw()$
mk_draw('ex,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-32.mxl  > TMP/tmp_lang/chunk-32.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-32.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-32.mxl
## figs_dir:"test3_files"
## mk_draw()
##    --begin of mk_draw('help)--
##    機能: 複数のグラフィックオブジェクトをdraw()に引き継ぎ作画する
##    文法: mk_draw(glist,dlist,...)
##    例示: mk_draw([g1,g2],dlist)
##     mk_draw()$ or mk_draw('help)$ /* このヘルプを標示する */
##     mk_draw('ex)$   /* 例を実行する */
##     g1 : gr2d(title="sin(x) and cos(x)", 
##           grid=true, yrange=[-1.25, 1.25], line_width=1.8, 
##           color=blue, key="sin(x)", line_type=solid,
##           explicit(sin(x), x,-%pi,%pi),
##           color=red, key="cos(x)", line_type=dots,
##           explicit(cos(x), x, -%pi,%pi)
##           ),
##     f(x,y) := (x+y+5)*on3(sqrt(x^2+y^2),2,3,co),
##     g2 : gr3d(enhanced3d=false, surface_hide=true, nticks=5, xu_grid=40,
##           title="example of f(x,y)", 
##           xlabel="x", ylabel="y", zlabel="z = f(x,y)",
##           explicit(f(x,y), x,-3.5,3.5, y,-3.5,3.5)
##          ),
##     glist : [g1,g2],  /* gr2d, gr3d で生成されたグラフィックオブジェクトのリスト */
##     /* dlist : draw() 関数の引数のリスト */
##     dlist : [terminal='png, 'file_name=sconcat(figs_dir,'/','mk_draw-ex'),
##              columns=2, dimensions=[1000,400]],
##     if member('noview, args) then mk_draw(glist,dlist,'noview)
##        else mk_draw(glist,dlist,'view),  /* mk_draw 関数の呼び出し */
##     mk_draw([g1,g2], 
##           ['file_name=sconcat(figs_dir,'/','gr2v'), 'columns=2, 'dimensions=[1000, 500]],
##           'view)$
##    --end of mk_draw('help')--
##    
## mk_draw('ex,'noview)
## --begin of mk_draw('ex)-- 
## ★  (  /* 例1. */  
##     g1 : gr2v([explicit(sin(x),x,-%pi,%pi), explicit(cos(x),x,-%pi,%pi)],  
##      'yrange=[-1.2,1.2], 'title="ex1-1 of mk-draw", 'noview),  
##     
##    g2 : gr2v([implicit(x^2+y^2=1, x,-1,1, y,-1,1)],  'xrange=[-1.1, 1.1], 'yrange=[-1.1, 1.1],  'title="ex1-2 of mk-draw ", 'noview), 
##     
##     mk_draw([g1,g2],  
##     ['file_name=figfile,'columns=2,'dimensions=[1000, 500]],noview)  
##      ) 
##     out =  -- end of mk_draw -- 
## --end of mk_draw('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-32.mxl"
test3_files/mk_draw.pngのグラフ

test3_files/mk_draw.pngのグラフ

33. mergeL() : keylist の項目に従い, トランザクションリストの内容をマスターリストにマージする

mergeL()$
mergeL('ex)$
## ~/bin/go TMP/tmp_lang/chunk-33.mxl  > TMP/tmp_lang/chunk-33.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-33.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-33.mxl
## mergeL()
##    --begin of mergeL('help)--
##    機能: keylist の項目に従い, トランザクションリストの内容をマスターリストにマージする
##    文法: mergeL(mlist,tlist,keylist)
##    例示: 
##      keylistで定義されたキー項目に関して,mlist(マスター)の内容を
##      tlist(トランザクション)の内容でマージする.
##      具体的には,キー項目がmlist,tlistに存在する場合はtlistの内容でmlistの内容で更新し,
##      キー項目がtlistに存在し,mlistに存在しない場合はtlistの内容をmlistに追加する.
##      なお,キー項目にない内容は対象外とし,無処理とする.
##      -- example --
##      mlist : [terminal='png, file_name="tmp", columns=1, dimensions=[600,500] ],
##      tlist : ['file_name="ex-mergeL", 'columns=2, 'dimensions=[1000,500] ],
##      keylist : ['terminal, 'file_name, 'columns, 'dimensions],
##      outL : mergeL(mlit,tlist,keylist),
##    --end of mergeL('help')--
##    
## mergeL('ex)
## --begin of mergeL('ex)-- 
##     progn = <mergeL>  --実行例-- 
##     mlist = [terminal = png,file_name = "figs/mergeL",columns = 1,dimensions = [600,500]]
##     
##     tlist = [file_name = "figs/ex-mergeL",columns = 2,dimensions = [1000,500]] 
##     keylist = [terminal,file_name,columns,dimensions] 
##     outL : mergeL(mlist,tlist,keylist) 
##     結果: outL = 
##    [terminal = png,file_name = "figs/ex-mergeL",columns = 2,dimensions = [1000,500]] 
## --end of mergeL('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-33.mxl"

34. gr2v() : 2次元(x,y)作図: 関数に不連続点が存在する場合の描画を意識した.

figs_dir : "test3_files"$
gr2v()$
gr2v('ex,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-34.mxl  > TMP/tmp_lang/chunk-34.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-34.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-34.mxl
## figs_dir:"test3_files"
## gr2v()
##    --begin of gr2v('help)--
##    機能: 2次元(x,y)作図: 関数に不連続点が存在する場合の描画を意識した.
##    文法: gr2v([args]) 内容的には gr2v([作画要素],その他の設定,...)
##         その他の設定: 'title="...", 'gxyrange 'xrange 'yrange, 'view 
##    例示: 
##     gr2v()$ or gr2v('help)$ /* このヘルプを標示する */
##     gr2v('ex)$   /* 例を実行する */
##     gr2v([explicit(on3(x,1,3,co)+on3(x,2,4,co), x,0,5)],'gxrange, 'view)$
##     gr2v([explicit(sin(x),x,-%pi,%pi)],'gxyrange,'title="ex of gr2v")$ 
##     gr2v([explicit(sin(x),x,-%pi,%pi), explicit(cos(x),x,-%pi,%pi)],'gxyrange)$ 
##     gr2v([implicit(x^2+y^2=1, x,-1,1, y,-1,1)])$ 
##     gr2v([points(makelist([random(20),random(50)],k,1,10))])$ 
##     gr2v([explicit(sin(x),x,-%pi,%pi),
##           explicit(x,x,-%pi,%pi),
##           explicit(-x,x,-%pi,%pi)],
##           'yrange=[-1.2,1.2], 'columns=2)$  /* gr2d にオプションを追加する */
##     fp : makelist([xv,ev(f1,x=xv)],xv,[1,3]),
##     g1:gr2v([explicit(f1,x,0,4),'color=red, points(fp)],'gxyrange,'noview),
##     /* 複数個のgr2dオブジェクトg1,g2,g3,g4を同時に表示する例 */
##     (g1 : gr2v([explicit(sin(x),x,-%pi,%pi)], 'noview),
##      g2 : gr2v([explicit(sin(x),x,-%pi,%pi), explicit(cos(x),x,-%pi,%pi)], 'noview),
##      g3 : gr2v([implicit(x^2+y^2=1, x,-1,1, y,-1,1)], 'noview),
##      g4 : gr2v([points(makelist([random(20),random(50)],k,1,10))], 'noview) )$
##     mk_draw([g1,g2,g3,g4], 
##           ['file_name="gr2v", 'columns=2, 'dimensions=[1000, 1000]],
##           'view)$
##    --end of gr2v('help')--
##    
## gr2v('ex,'noview)
## --begin of gr2v('ex)-- 
## ★  (  /* 例1. gxyrange の使用例 */  
##     gr2v([explicit(sin(t),t,-%pi,%pi), explicit(cos(t),t,-%pi,%pi)],  
##     'title="ex1 of gr2v", 'gxyrange,  
##     'file_name=test3_files/gr2v-ex1, noview )  
##      ) 
##     out =  
##           gr2d(grid = true,line_width = 1.8,point_size = 1.2,color = red,key = "key1",
##                line_type = solid,point_type = filled_circle,explicit(sin(t),t,-%pi,%pi),
##                color = blue,key = "key2",line_type = solid,point_type = filled_circle,
##                explicit(cos(t),t,-%pi,%pi),title = "ex1 of gr2v",
##                xrange = [-3.7699111,4.0840704],yrange = [-1.399403,1.3996589]) 
## ★  (  /* 例2. gxyrange の使用例 */  
##     gr2v([explicit(on3(x,1,3,co)+on3(x,2,4,co),x,0,5)],  
##     'title="ex2 of gr2v", 'gxyrange,  
##     'file_name=test3_files/gr2v-ex2, noview )  
##      ) 
##     out =  
##           gr2d(grid = true,line_width = 1.8,point_size = 1.2,color = red,key = "key1",
##                line_type = solid,point_type = filled_circle,
##                explicit(on3(x,2,4,co)+on3(x,1,3,co),x,0,5),color = red,key = "key2",
##                line_type = solid,point_type = filled_circle,
##                points([[1,1],[2,2],[3,1],[4,0]]),title = "ex2 of gr2v",
##                xrange = [-0.5,5.75],yrange = [-0.4,2.4]) 
## ★  (  /* 例3. */  
##     g1 : gr2v([explicit(sin(x),x,-%pi,%pi),  
##     explicit(cos(x),x,-%pi,%pi)],  
##      'gxyrange, 'title="ex2-1 of gr2v", 'noview),  
##     g2 : gr2v([implicit(x^2+y^2=1, x,-1,1, y,-1,1)],  
##      'xrange=[-1.1, 1.1], 'yrange=[-1.1, 1.2],  
##      'title="ex2-2 of gr2v ", 'noview),  
##     mk_draw([g1,g2],  
##     ['file_name=test3_files/gr2v-ex3,  
##      'columns=2, 'dimensions=[1000, 500]], noview )  
##      ) 
##     out =  -- end of mk_draw -- 
## ★  (  /* 例4. on3()関数f(x), 不定積分関数F(x), F(x)の微分関数dF(x) */  
##     f : on3(x,1,3,co)+on3(x,2,5,co),  
##     g1 : gr2v([explicit(f,x,0,6)],'gxyrange,'title="f(x)",'noview),  
##     F : on3integ19(f,x),  
##     g2 : gr2v([explicit(F,x,0,6)],'gxyrange,'title="F(x)",'noview),  
##     dF : on3diff(F,x),  
##     g3 : gr2v([explicit(dF,x,0,6)],'gxyrange,'title="dF(x)",'noview),  
##     mk_draw([g1,g2,g3],  
##     ['file_name=test3_files/gr2v-ex4,  
##     'columns=3,dimensions=[1500,500]],noview )  
##      ) 
##     out =  -- end of mk_draw -- 
## ★  (  /* 例5. on3()関数f(x), 不定積分関数F(x), F(x)の微分関数dF(x) */  
##     f : exp(x-1)*on3(x,minf,1,oo)+exp(1-x)*on3(x,1,inf,co),  
##     g1 : gr2v([explicit(f,x,-4,6)],'gxyrange,'title="f(x)",'noview),  
##     F : on3integ19(f,x),  
##     g2 : gr2v([explicit(F,x,-4,6)],'gxyrange,'title="F(x)",'noview),  
##     dF : on3diff(F,x),  
##     g3 : gr2v([explicit(dF,x,-4,6)],'gxyrange,'title="dF(x)",'noview),  
##     mk_draw([g1,g2,g3], 
##     ['file_name=test3_files/gr2v-ex5,  
##     'columns=3,dimensions=[1500,500]],noview )  
##      ) 
##     out =  -- end of mk_draw -- 
## --end of gr2v('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-34.mxl"
test3_files/gr2v-ex1.pngのグラフ

test3_files/gr2v-ex1.pngのグラフ

test3_files/gr2v-ex2.pngのグラフ

test3_files/gr2v-ex2.pngのグラフ

test3_files/gr2v-ex3.pngのグラフ

test3_files/gr2v-ex3.pngのグラフ

test3_files/gr2v-ex4.pngのグラフ

test3_files/gr2v-ex4.pngのグラフ

test3_files/gr2v-ex5.pngのグラフ

test3_files/gr2v-ex5.pngのグラフ

35. gr3v() : 3次元グラフの作図

figs_dir : "test3_files"$
gr3v()$
gr3v('ex,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-35.mxl  > TMP/tmp_lang/chunk-35.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-35.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-35.mxl
## figs_dir:"test3_files"
## gr3v()
##    --begin of gr3v('help)--
##    機能: 3次元グラフの作図
##    文法: gr3v(funcs,...)
##    例示: 
##      gr3v()$ or gr3v('help)$ /* このヘルプを標示する */
##      gr3v('ex)$   /* 例を実行する */
##      gr3v([explicit((x+y+5)*on3(sqrt(x^2+y^2),2,3,co), 
##            x,-3.5,3.5, y,-3.5, 3.5)], 'title="ex1 of gr3v")$ 
##      gr3v([implicit(x^2+y^2+z^2=1, x,-1,1, y,-1,1, z,-1,1)])$ 
##      gr3v([points(makelist([random(20),random(50),random(50)],k,1,10))])$ 
##    --end of gr3v('help')--
##    
## gr3v('ex,'noview)
## --begin of gr3v('ex)-- 
## ★  (  /* 例1. */  
##     gr3v([explicit((x+y+5)*on3(sqrt(x^2+y^2),2,3,co), x,-3.5,3.5, y,-3.5, 3.5)],  
##     'title="ex1 of gr3v", 'file_name=test3_files/gr3v-ex1,noview )   
##      ) 
##     out =  
##           gr3d(title = "ex1 of gr3v",enhanced3d = true,color = green,view = [60,30],
##                interpolate_color = true,contour = none,
##                explicit((y+x+5)*on3(sqrt(y^2+x^2),2,3,co),x,-3.5,3.5,y,-3.5,3.5)) 
## ★  (  /* 例2. */  
##     g1 : gr3v([explicit((x+y+5)*on3(sqrt(x^2+y^2),2,3,co), x,-3.5,3.5, y,-3.5, 3.5)],   
##     'title="ex1 of gr3v", 'noview),  
##     g2 : gr3v([implicit(x^2+y^2+z^2=1, x,-1,1, y,-1,1, z,-1,1)],  
##      'xrange=[-1.1, 1.1], 'yrange=[-1.1, 1.1],  'title="ex2 of gr3v ", 'noview),  
##     mk_draw([g1,g2],  
##     ['file_name=test3_files/gr3v-ex2,  
##      'columns=2, 'dimensions=[1000, 500]], noview )  
##      ) 
##     out =  -- end of mk_draw -- 
## --end of gr3v('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-35.mxl"
test3_files/gr3v-ex1.pngのグラフ

test3_files/gr3v-ex1.pngのグラフ

test3_files/gr3v-ex2.pngのグラフ

test3_files/gr3v-ex2.pngのグラフ

36. mk_range() : ???

figs_dir : "test3_files"$
mk_range()$
mk_range('ex)$
## ~/bin/go TMP/tmp_lang/chunk-36.mxl  > TMP/tmp_lang/chunk-36.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-36.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-36.mxl
## figs_dir:"test3_files"
## mk_range()
## mk_range('ex)
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-36.mxl"

37. exp2l() : exp内に使われているkeyfuncで指定された関数(複数回使用可)の引数リストを返す

exp2l()$
exp2l('ex)$
## ~/bin/go TMP/tmp_lang/chunk-37.mxl  > TMP/tmp_lang/chunk-37.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-37.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-37.mxl
## exp2l()
##    --begin of exp2l('help)--
##    機能: exp内に使われているkeyfuncで指定された関数(複数回使用可)の引数リストを返す
##    文法: exp2l(expr,keyfunc,...)
##    例示: 
##     exp2l(expr,keyfunc)$  /* 表現exp内において,keyfuncで指定された関数を検出し,その引数を返す */
##     exp1 : 'gr2v([explicit(sin(x),x,-%pi,%pi)], 'noview)$
##     exp2l(exp1,'explicit)$
##     exp2 : 'gr2v([explicit(sin(x),x,-%pi,%pi),
##                   explicit(x^2,x,-%pi,%pi)], 'noview)$
##     exp2l(exp2,'explicit)$
##     exp3 : 'gr3v([implicit(x^2+y^2+z^2=1, x,-1,1, y,-1,1, z,-1,1)], 'noview)$
##     exp2l(exp3,explicit)$ /* 未検出の例 */
##    --end of exp2l('help')--
##    
## exp2l('ex)
## --begin of exp2l('ex)-- 
##     exp1 = 'gr2v([explicit(sin(x),x,-%pi,%pi)],noview) 
##     exp2l(exp1,'explicit) -> [[sin(x),x,-%pi,%pi]] 
##     exp2 = 'gr2v([explicit(sin(x),x,-%pi,%pi),explicit(x^2,x,-%pi,%pi)],noview) 
##     exp2l(exp2,'explicit) -> [[sin(x),x,-%pi,%pi],[x^2,x,-%pi,%pi]] 
##     exp3 = 'gr3v([implicit(z^2+y^2+x^2 = 1,x,-1,1,y,-1,1,z,-1,1)],noview) 
##     exp2l(exp3,explicit) -> [] 
## --end of exp2l('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-37.mxl"

38. grv() 廃止予定

figs_dir : "test3_files"$
grv()$
grv('ex,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-38.mxl  > TMP/tmp_lang/chunk-38.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-38.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-38.mxl
## figs_dir:"test3_files"
## grv()
##    --begin of grv('help)--
##    機能: grオブジェクトの描画
##    文法: grv([g1])
##    例示: grv(expr)
##      g1 : gr2d(explicit(sin(x)/x, x, -10,10))$
##      c2co : on3(x,1,3,co)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo)
##        +on3(x,-3,-1,oc)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo)
##        +on3(x,-1,1,oo)*on3(y,-sqrt(9-x^2),-sqrt(1-x^2),oc)
##        +on3(x,-1,1,oo)*on3(y,sqrt(1-x^2),sqrt(9-x^2),co)$
##      g2 : on3gr(c2co)$ /* on3() を含む2変数関数をgr2d()で表現する */
##      grv([g1,g2],columns=2,dimensions=[1000,500])$
##    --end of grv('help')--
##    
## grv('ex,'noview)
## --begin of grv('ex)-- 
## CS: --- begin of grv_ex --- 
## CS: c2co = 
##    on3(x,1,3,co)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo)
##     +on3(x,-3,-1,oc)*on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo)
##     +on3(x,-1,1,oo)*on3(y,-sqrt(9-x^2),-sqrt(1-x^2),oc)
##     +on3(x,-1,1,oo)*on3(y,sqrt(1-x^2),sqrt(9-x^2),co) 
## CS: progn = <on3gr> , :2次元プロット: 1個のgr2d()オブジェクト 
## --end of grv('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-38.mxl"
test3_files/grv_ex.pngのグラフ

test3_files/grv_ex.pngのグラフ

39. on3gr() : 3次元解領域の表示の試み

figs_dir : "test3_files"$
on3gr()$
on3gr('ex,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-39.mxl  > TMP/tmp_lang/chunk-39.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-39.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-39.mxl
## figs_dir:"test3_files"
## on3gr()
##    --begin of on3gr('help)--
##    機能: on3関数で記述された領域(3変数も可,孤立点は不可)の作図
##    文法: on3gr(expr,...)
##    例示: on3gr(expr)
##      ex2 : on3(x,0,3/5,co)*on3(y,sqrt(1-x^2),x+1,cc)
##            +on3(x,sqrt(17)/2-1/2,4*sqrt(11)/5-1/5,co)*on3(y,(x+1)/2,sqrt(9-x^2),cc)
##            +on3(x,3/5,sqrt(17)/2-1/2,co)*on3(y,(x+1)/2,x+1,cc),
##      grex1 : ev(on3gr(ex2)),
##      c0show("実行例:",grex1),
##      glist : [grex1],
##      dlist : [terminal=png, file_name=sconcat(figs_dir,'/','on3gr')],
##      mk_draw(glist,dlist,'view)
##    --end of on3gr('help')--
##    
## on3gr('ex,'noview)
## --begin of on3gr('ex)-- 
## CS: progn = <on3gr> , :2次元プロット: 1個のgr2d()オブジェクト 
## CS: 実行例: grex1 = 
##    gr2d(line_width = 2,color = blue,line_type = solid,explicit(sqrt(1-x^2),x,0,3/5),
##         color = red,line_type = solid,explicit(x+1,x,0,3/5),color = blue,
##         line_type = solid,explicit((x+1)/2,x,sqrt(17)/2-1/2,(4*sqrt(11))/5-1/5),
##         color = red,line_type = solid,
##         explicit(sqrt(9-x^2),x,sqrt(17)/2-1/2,(4*sqrt(11))/5-1/5),color = blue,
##         line_type = solid,explicit((x+1)/2,x,3/5,sqrt(17)/2-1/2),color = red,
##         line_type = solid,explicit(x+1,x,3/5,sqrt(17)/2-1/2)) 
##     progn = <on3gr_ex>  on3gr(ex3co) を実行しています. 
## CS: progn = <on3gr> , :3次元プロット: 複数個のgr3d()オブジェクト 
## CS: 実行例: grex2 = 
##    [gr3d(line_width = 2,zrange = [-5,5],color = blue,xu_grid = 40,yv_grid = 40,
##          line_type = dots,
##          parametric_surface(x,y,
##                             -on3(x,1,3,co)*sqrt((-y^2)-x^2+9)
##                                           *on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo),x,-3.1,3.1,
##                             y,-3.1,3.1),color = red,xu_grid = 40,yv_grid = 40,
##          line_type = dots,
##          parametric_surface(x,y,
##                             on3(x,1,3,co)*sqrt((-y^2)-x^2+9)
##                                          *on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo),x,-3.1,3.1,
##                             y,-3.1,3.1)),
##     gr3d(line_width = 2,zrange = [-5,5],color = blue,xu_grid = 40,yv_grid = 40,
##          line_type = dots,
##          parametric_surface(x,y,
##                             -on3(x,-3,-1,oc)*sqrt((-y^2)-x^2+9)
##                                             *on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo),x,-3.1,
##                             3.1,y,-3.1,3.1),color = red,xu_grid = 40,yv_grid = 40,
##          line_type = dots,
##          parametric_surface(x,y,
##                             on3(x,-3,-1,oc)*sqrt((-y^2)-x^2+9)
##                                            *on3(y,-sqrt(9-x^2),sqrt(9-x^2),oo),x,-3.1,
##                             3.1,y,-3.1,3.1)),
##     gr3d(line_width = 2,zrange = [-5,5],color = blue,xu_grid = 40,yv_grid = 40,
##          line_type = dots,
##          parametric_surface(x,y,
##                             -on3(x,-1,1,oo)*sqrt((-y^2)-x^2+9)
##                                            *on3(y,-sqrt(9-x^2),-sqrt(1-x^2),oc),x,-3.1,
##                             3.1,y,-3.1,3.1),color = red,xu_grid = 40,yv_grid = 40,
##          line_type = dots,
##          parametric_surface(x,y,
##                             on3(x,-1,1,oo)*sqrt((-y^2)-x^2+9)
##                                           *on3(y,-sqrt(9-x^2),-sqrt(1-x^2),oc),x,-3.1,
##                             3.1,y,-3.1,3.1)),
##     gr3d(line_width = 2,zrange = [-5,5],color = blue,xu_grid = 40,yv_grid = 40,
##          line_type = dots,
##          parametric_surface(x,y,
##                             -on3(x,-1,1,oo)*sqrt((-y^2)-x^2+9)
##                                            *on3(y,sqrt(1-x^2),sqrt(9-x^2),co),x,-3.1,3.1,
##                             y,-3.1,3.1),color = red,xu_grid = 40,yv_grid = 40,
##          line_type = dots,
##          parametric_surface(x,y,
##                             on3(x,-1,1,oo)*sqrt((-y^2)-x^2+9)
##                                           *on3(y,sqrt(1-x^2),sqrt(9-x^2),co),x,-3.1,3.1,
##                             y,-3.1,3.1)),
##     gr3d(line_width = 2,zrange = [-5,5],color = blue,xu_grid = 40,yv_grid = 40,
##          line_type = dots,
##          parametric_surface(x,y,
##                             -on3(x,-1,1,oo)*sqrt((-y^2)-x^2+9)
##                                            *on3(y,-sqrt(1-x^2),sqrt(1-x^2),oo),x,-3.1,
##                             3.1,y,-3.1,3.1),color = red,xu_grid = 40,yv_grid = 40,
##          line_type = solid,
##          parametric_surface(x,y,
##                             -on3(x,-1,1,oo)*sqrt((-y^2)-x^2+1)
##                                            *on3(y,-sqrt(1-x^2),sqrt(1-x^2),oo),x,-3.1,
##                             3.1,y,-3.1,3.1)),
##     gr3d(line_width = 2,zrange = [-5,5],color = blue,xu_grid = 40,yv_grid = 40,
##          line_type = solid,
##          parametric_surface(x,y,
##                             on3(x,-1,1,oo)*sqrt((-y^2)-x^2+1)
##                                           *on3(y,-sqrt(1-x^2),sqrt(1-x^2),oo),x,-3.1,3.1,
##                             y,-3.1,3.1),color = red,xu_grid = 40,yv_grid = 40,
##          line_type = dots,
##          parametric_surface(x,y,
##                             on3(x,-1,1,oo)*sqrt((-y^2)-x^2+9)
##                                           *on3(y,-sqrt(1-x^2),sqrt(1-x^2),oo),x,-3.1,3.1,
##                             y,-3.1,3.1))] 
## --end of on3gr('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-39.mxl"
test3_files/on3gr-ex1.pngのグラフ

test3_files/on3gr-ex1.pngのグラフ

test3_files/on3gr-ex2.pngのグラフ

test3_files/on3gr-ex2.pngのグラフ

40. on3funcdraw() : gr3d + mk_draw による描画

figs_dir : "test3_files"$
on3funcdraw()$
on3funcdraw('ex,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-40.mxl  > TMP/tmp_lang/chunk-40.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-40.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-40.mxl
## figs_dir:"test3_files"
## on3funcdraw()
##    --begin of on3funcdraw('help)--
##    機能: gr3d + mk_draw による描画
##    文法: on3funcdraw([args],...)
##    例示: 
##      g(x,y) := (x+y+5)*on3(sqrt(x^2+y^2), 2, 3, co),
##      g1 : gr3d(enhanced3d=true, color=green, cbrange=[-3,10],
##                view=[60, 30], 
##                title="example of on3-func, and contour",
##                interpolate_color=true, contour=none,
##                explicit(g(x,y), x, -3.5, 3.5,  y, -3.5, 3.5)),
##      g2 : gr3d(view=map,enhanced3d=true, color=green, cbrange=[-3,10],
##                interpolate_color=true, contour=none,
##                title="example of contour ",
##                explicit(g(x,y), x, -3.5, 3.5,  y, -3.5, 3.5)),
##      mk_draw([g1,g2],[terminal=png, file_name="tmp", 
##                       columns=2, dimensions=[900,500]],'view),
##    --end of on3funcdraw('help')--
##    
## on3funcdraw('ex,'noview)
## --begin of on3funcdraw('ex)-- 
## --end of on3funcdraw('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-40.mxl"
test3_files/on3funcdraw.pngのグラフ

test3_files/on3funcdraw.pngのグラフ

41. on3varfix() : on3関数on3(x,xl,xr,xlr)の第1引数xをx_fixに変更する

on3varfix()$
on3varfix('ex)$
## ~/bin/go TMP/tmp_lang/chunk-41.mxl  > TMP/tmp_lang/chunk-41.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-41.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-41.mxl
## on3varfix()
##    --begin of on3varfix('help)--
##    機能: on3関数on3(x,xl,xr,xlr)の第1引数xをx_fixに変更する
##    文法: on3varfix(on3func,var,'on,...)
##    例示: on3func : a*on3(x,a,b,co)*on3(y,c,d,co),
##         on3varfix(on3func,x,'on)
##         on3varfix(on3func,x,'off)
##    --end of on3varfix('help')--
##    
## on3varfix('ex)
## --begin of on3varfix('ex)-- 
##     ex = a*x+b 
##      ->  out_on = a*x+b 
##      ->  out_off = a*x+b 
##     ex = on3(x,a,b,co) 
##      ->  out_on = on3(x_fix,a,b,co) 
##      ->  out_off = on3(x,a,b,co) 
##     ex = a*on3(x,a,b,co)*on3(y,c,d,co) 
##      ->  out_on = a*on3(x_fix,a,b,co)*on3(y,c,d,co) 
##      ->  out_off = a*on3(x,a,b,co)*on3(y,c,d,co) 
## --end of on3varfix('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-41.mxl"

43. chk1show() : 入力履歴と結果の検証

chk1show()$
chk1show('ex)$
## ~/bin/go TMP/tmp_lang/chunk-43.mxl  > TMP/tmp_lang/chunk-43.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-43.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-43.mxl
## chk1show()
##    --begin of chk1show('help)--
##    機能: 入力履歴と結果の検証
##    文法: chk1show(cmds,ans,...)  
##    例示: 
##      chk1show("/* Ex.0 of chk1show */ @ diff(sin(x),x)" , cos(x))
##      cmds : sconcat("(",
##           "/* chk1showの使用例 */ @",
##           "f : f1*on3(x,1,3,co) + f2*on3(x,4,6,co), /* fの定義 */ @",
##           "F : on3integ19(f,x), ",
##           "F : on3decomp(F) ",
##           ")"
##           ), 
##      Fans : 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),
##      chk1show(cmds,Fans), 
##      chk1show(cmds,""),    /* (検証なしの場合) */
##    --end of chk1show('help')--
##    
## chk1show('ex)
## --begin of chk1show('ex)-- 
## ★  /* 例0. ダイレクト使用 */  
##      diff(sin(x),x) 
## ◎   out = cos(x) 
## ★  (/* 例1 chk1showの使用例 */  
##     f : f1*on3(x,1,3,co) + f2*on3(x,4,6,co), /* fの定義 */  
##     F : on3integ19(f,x), F : on3decomp21(F) ) 
## ◎   out = 
##      (2*f2+2*f1)*on3(x,6,inf,co)+(f2*(x-4)+2*f1)*on3(x,4,6,co)+2*f1*on3(x,3,4,co)
##                                 +f1*(x-1)*on3(x,1,3,co) 
## ★  (/* 例2 chk1showの使用例(検証なしの例) */  
##     f : f1*on3(x,1,3,co) + f2*on3(x,4,6,co), /* fの定義 */  
##     F : on3integ19(f,x), F : on3decomp21(F) ) 
##     out =  
##           (2*f2+2*f1)*on3(x,6,inf,co)+(f2*(x-4)+2*f1)*on3(x,4,6,co)+2*f1*on3(x,3,4,co)
##                                      +f1*(x-1)*on3(x,1,3,co) 
## ★  (/* 例3 後処理が必要な場合:仮定の設定,ソート,仮定の解除 */  
##     assL : [1<a, a<3, 3<b], apply('assume, assL),  
##     out : ecsort([1,3,a,b]), forget(assL), out  
##     ) 
## ◎  out = [1,a,3,b] 
## --end of chk1show('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-43.mxl"

44. logshow() 入力履歴(文字列)の一括評価

logshow()$
logshow('ex)$
## ~/bin/go TMP/tmp_lang/chunk-44.mxl  > TMP/tmp_lang/chunk-44.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-44.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-44.mxl
## logshow()
##    --begin of logshow('help)--
##    機能: 入力履歴(文字列)の一括評価
##    文法: logshow(cmds,...)
##    例示: logshow(cmds)
##    --end of logshow('help')--
##    
## logshow('ex)
## --begin of logshow('ex)-- 
## ★  (  /* Ex. of on3diff(f,x) */ f : x^3*on3(x,1,3,co), df : on3diff(f,x) )  
##     out = 3*x^2*on3(x,1,3,oo) 
## --end of logshow('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-44.mxl"

45. on3chgvar3() : 3変数矩形領域の変換例

  • 3変数矩形領域 D : [0 < x <1, 0 < y < 1, 0 < z < 1] から変換 [t = x + y + z, u = y, v = z] のとき (t,u,v) の領域Gを求める
figs_dir : "test3_files"$
on3chgvar3()$
on3chgvar3('go)$
## ~/bin/go TMP/tmp_lang/chunk-45.mxl  > TMP/tmp_lang/chunk-45.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-45.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-45.mxl
## figs_dir:"test3_files"
## on3chgvar3()
##    --begin of on3chgvar3('help)--
##    機能: 3変数矩形領域 D : [0 < x <1, 0 < y < 1, 0 < z < 1] から 
##          変換 [t = x + y + z, u = y, v = z] のとき (t,u,v) の領域Gを求める
##    文法: on3chgvar3(...)
##    例示: on3chgvar3('go')
##       G =  on3(t,2,3,oc)*on3(u,t-2,1,cc)*on3(v,(-u)+t-1,1,cc)
##           +on3(t,1,2,oc)*on3(u,0,t-1,co)*on3(v,(-u)+t-1,1,cc)
##           +on3(t,1,2,oc)*on3(u,t-1,1,cc)*on3(v,0,t-u,cc)
##           +on3(t,0,1,cc)*on3(u,0,t,cc)*on3(v,0,t-u,cc) 
##       ? on3ineq([[t-u-v, 0, 1, cc], [u, 0, 1, cc], [v, 0, 1, cc]]) では失敗する??
##                         (1)               (2)            (3)
##         k1;   t-u を tu として (1),(3)の不等式を tu, v について解き 結果を c0 とする.
##              c0 = on3(t-u,1,2,oc)*on3(v,(-u)+t-1,1,cc)+on3(t-u,0,1,cc)*on3(v,0,t-u,cc)
##                  =         c01 * c0v1                  +    c02 * c0v2 
##         k2:   c0の t-u に関する不等式 c01 と(2)の不等式を解き,結果を out01 とする.
##         k3:   c0の t-u に関する不等式 c02 と(2)の不等式を解き,結果を out02 とする.
##         k4:   解 out : out01*c0v1 + out02*c0v2
##    --end of on3chgvar3('help')--
##    
## on3chgvar3('go)
## --begin  <on3chgvar3> -- 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: c0 = on3(t-u,1,2,oc)*on3(v,(-u)+t-1,1,cc)+on3(t-u,0,1,cc)*on3(v,0,t-u,cc) 
## CS: c0ans = on3(t-u,1,2,oc)*on3(v,(-u)+t-1,1,cc)+on3(t-u,0,1,cc)*on3(v,0,t-u,cc) 
## CS: f2l(c0) = 
##    ["+",["*",1,[on3,t-u,1,2,oc],[on3,v,(-u)+t-1,1,cc]],
##     ["*",1,[on3,t-u,0,1,cc],[on3,v,0,t-u,cc]]] 
## CS: progn = <on3chgvar3> , c0v1 = on3(v,(-u)+t-1,1,cc) , c0v2 = on3(v,0,t-u,cc) 
## CS: progn = <on3chgvar3> , c01 = [on3,t-u,1,2,oc] , c02 = [on3,t-u,0,1,cc] 
## CS: progn = <on3regionview> , ==2変数関数== 
## CS: progn = <on3regionview> , ==2変数関数== 
## 変換後の定義域 G_tuv=out においてp.d.f.が g(t,u,v)=1 on G とする 
## ★  G_tuv 
## ◎   out = 
##      on3(t,2,3,oc)*on3(u,t-2,1,cc)*on3(v,(-u)+t-1,1,cc)
##       +on3(t,1,2,oc)*on3(u,0,t-1,co)*on3(v,(-u)+t-1,1,cc)
##       +on3(t,1,2,oc)*on3(u,t-1,1,cc)*on3(v,0,t-u,cc)
##       +on3(t,0,1,cc)*on3(u,0,t,cc)*on3(v,0,t-u,cc) 
##     G_tu = 
##    on3(t,1,2,oc)*(t-u)*on3(u,t-1,1,cc)+on3(t,2,3,oc)*(u-t+2)*on3(u,t-2,1,cc)
##                                       +on3(t,0,1,cc)*(t-u)*on3(u,0,t,cc)
##                                       +on3(t,1,2,oc)*(u-t+2)*on3(u,0,t-1,co) 
##     G_t: T=X+y+Z の確率密度関数 
## ★  G_t 
## ◎   out = 
##      ((t^2-6*t+9)*on3(t,2,3,oc)+((-2*t^2)+6*t-3)*on3(t,1,2,oc)+t^2*on3(t,0,1,cc))/2 
## CS: 全確率の確認: G = 1 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-45.mxl"

46. on3find() : on3()の積の項において指定した変数Varに関するon3(var,,,,)を検索する

on3find()$
on3find('ex)$
## ~/bin/go TMP/tmp_lang/chunk-46.mxl  > TMP/tmp_lang/chunk-46.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-46.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-46.mxl
## on3find()
##    --begin of on3find('help)--
##    機能: on3()の積の項において指定した変数Varに関するon3(var,,,,)を検索する
##    文法: on3find(on3func,var,...)
##    例示: 
##      ex = on3(x,a,b,co)*on3(y,yl,yr,oo)+x*on3(x,c,d,cc)$
##      on3typep(on3func) = on3poly , on3vars(on3func) = [x,y] 
##      ** find  ic = 1 , u = [on3,x,a,b,co] 
##      ** find  ic = 2 , u = [on3,x,c,d,cc] 
##      L = ["+",["*",1,"<<here-1>>",[on3,y,yl,yr,oo]],["*",x,"<<here-2>>"]] 
##    --end of on3find('help')--
##    
## on3find('ex)
## --begin of on3find('ex)-- 
##     ex = on3(x,a,b,co)*on3(y,yl,yr,oo)+x*on3(x,c,d,cc) 
## CS: on3typep(on3func) = on3poly , on3vars(on3func) = [x,y] 
## CS: var = x 
## CS: ** find  ic = 1 , u = [on3,x,a,b,co] 
## CS: ** find  ic = 2 , u = [on3,x,c,d,cc] 
## CS: L = ["+",["*",1,"<<here-1>>",[on3,y,yl,yr,oo]],["*",x,"<<here-2>>"]] 
##     out = "<<here-1>>"*on3(y,yl,yr,oo)+"<<here-2>>"*x 
## --end of on3find('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-46.mxl"

47. funcxy() : 2変数点列データからスプライン関数を用いた曲線とそのon3関数表現

figs_dir : "test3_files"$
funcxy()$
funcxy('ex,'noview)$
## ~/bin/go TMP/tmp_lang/chunk-47.mxl  > TMP/tmp_lang/chunk-47.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-47.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-47.mxl
## figs_dir:"test3_files"
## funcxy()
##    --begin of funcxy('help)--
##    機能: 2変数高次陰関数 F(x,y)=0 の描画と近似関数表現
##    文法: funcxy(func,xs,xe,...)
##    例示: funcxy(x^5-2*x^2*y+y^5,-2,2,'plot);
##         funcxy(x^2+2*x*y+y^3-1,-4,4);
##    --end of funcxy('help')--
##    
## funcxy('ex,'noview)
## --begin of funcxy('ex)-- 
##     == 2変数高次陰関数 F(x,y)=0 の描画と近似関数表現=== 
## CS: ans = 
##    [[-2.0,2.1819407],[-1.101169,-0.83453002],[0.0,0.0],[1.101169,0.83453002],
##     [2.0,-2.1819407]] 
## CS: ans = 
##    [[-4.0,-3.5043409],[-2.0459579,1.1678921],[-0.65266742,-0.65962984],[4.0,-1.474377]] 
## --end of funcxy('ex)-- 
## "/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-47.mxl"
test3_files/funcxy-ex1.pngのグラフ

test3_files/funcxy-ex1.pngのグラフ

test3_files/funcxy-ex2.pngのグラフ

test3_files/funcxy-ex2.pngのグラフ

48. funcs(), findstr() : ユーザ定義の関数,マクロから指定文字列を含む関数(マクロ)名を検索する

funcs()$
funcs('ex)$
findstr()$
findstr('ex)$
## ~/bin/go TMP/tmp_lang/chunk-48.mxl  > TMP/tmp_lang/chunk-48.out 2>&1
## --  <on3env>  logbegin -- 
##     maxima_tempdir = TMP/tmp_maxima  figs_dir = figs 
## batch("/home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-48.mxl")
## read and interpret /home/inoue/Maxlib-20/LANG/TMP/tmp_lang/chunk-48.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-48.mxl"

終わり