Maple Conference 2003
教育現場で役立つMaple 応用事例と基本的な取扱い
講演者
2003年8月22日金曜日
古庄 尚文
Mapleの基本操作および「Maple は何ができるか」
(この資料は、全てMaple の下で作成しています)
Maple使用上の基本的な取り扱い
特別な予備知識を必要とせず、誰でも容易にMapleを操作することができます。
注意事項
たしざん(+)は +
かけざん(×)は *
ひきざん(−)は −
わりざん(÷)は /
ベキ乗は 記号 ^ を使用します。 例えば、
を表現するには a^x と入力します。
円周率π は Pi と入力します。
自然対数の底(ネイピアの数) は exp(1) または 大文字 E と入力します。
対数
を表現するには、 log[a](x) と入力します。
特に、自然対数は ln(真数) と入力します。 表現も ln(真数) となります。
虚数単位
は I を使用します.
命令の最後には必ず、セミコロン ; をつけます。
最後に、Enter キーを押すと、実行します。ただし、Mapleが 解答できないものは何も返しません。
電卓レベル
次の 計算をしなさい
1) 3+5 2) 6×7 3) 6÷4 4) 4÷7
取り扱える整数は約2億7千万桁です(
桁)
小数も同じです。
| > | 2^28; |
計算例
| > | 3+5; |
| > | 6*7; |
| > | 6/4; |
| > | 10!; |
Maple は特別なプログラムなしで2億7千万桁程度の数値計算ができます
| > | 100!; |
100! の桁数は
| > | length(%); |
| > |
| > | ifactor(100!); |
数の計算
は sqrt(a) または
と入力する
| > | sqrt(8)-sqrt(2); |
| > | 27^(1/2)+3^(1/2); |
| > | simplify(%); |
| > | sqrt(2)=evalf(2^(1/2),80); |
| > | 8^(1/3)=simplify(8^(1/3)); |
文字式の扱い
文字式の計算・和差
| > | 2*a+3*a; |
| > | 2*x^2-x*(x-1); |
| > | simplify(%); |
展開
| > | (x-1)^3=expand((x-1)^3); |
| > | expand((x+y)^10); |
| > | sin(x+y)=expand(sin(x+y)); |
因数分解
| > | x^3+y^3=factor(x^3+y^3); |
| > | factor(x^2+y^2); |
| > | x^2+y^2=factor(x^2+y^2,I); |
| > | (x-y*I)*(x+y*I)=expand((x-y*I)*(x+y*I),I); |
式の整理
| > | ppp:=a*x^3+b*x^2+y*x^2+a*x-5*y*x+a^2+b+x+y; |
| > | collect(ppp,x); |
| > | collect(ppp,a); |
関数や式の定義
命令は次のようになります。
関数名:=変数名ー>具体的名数式;
例えば
と定義し
の値を求める
| > | kansu:=x->x^2+3*x+5; |
| > | 'kansu(x)'=kansu(x); |
| > | kansu(1); |
| > | kansu(a+1); |
変数が2個以上ある場合
| > | f:=(x,y)->x^2+y^2+x*y+x; |
| > | 'f(2,3)'=f(2,3); |
(変数に日本語を使用することもできます)
| > | 電圧:=(電流,抵抗)->電流*抵抗; |
| > | 電圧=電圧(電流,抵抗); |
| > | 電圧=電圧(3,5); |
式名:=具体的な式 左辺の呼び出しは lhs(式名) 右辺の呼び出しは rhs(式名)
| > | shiki:=2*a-6=x+3; |
| > | lhs(shiki); |
| > | rhs(shiki); |
| > | オームの法則:=電圧=電流*抵抗; |
| > | solve(オームの法則,{電流}); |
| > | subs(電流=3,抵抗=5,evalf(rhs(オームの法則))); |
方程式を解く
命令は solve(方程式 、 未知数名);
方程式
を解きなさい ]
| > | solve(2*x-5=5*x+1,{x}); |
方程式
を x について解きなさい
| > | solve(a*x^2+b*x+c,{x}); |
方程式
を a について解きなさい
| > | solve(a*x^2+b*x+c,{a}); |
途中の計算が必要な方へ
例題 方程式
を解きなさい
まず、方程式を入力します
| > | rei1:=3*x-2=2-x; |
左辺および右辺に xを加えます
| > | lhs(%)+x=rhs(%)+x; |
両辺に 2 を加えます
| > | lhs(%)+2=rhs(%)+2; |
両辺を 4 で割ります
| > | lhs(%)/4=rhs(%)/4; |
solve 命令で 方程式は何でも解けます(不等式も解けます)
連立方程式
を解きなさい
| > | solve({2*x-y=3,x+5*y=1},{x,y}); |
二次方程式
| > | 二次方程式:=x^2+2*x-3=0; |
| > | solve(二次方程式,{x}); |
三角方程式
| > | solve(sin(x)=1/2,{x}); |
一般解も出せます 記号チルダ ~ は その文字に条件がついていることを示します。
下記の Z1 は整数という条件が付いています。
| > | _EnvAllSolutions := true: solve(cos(x)=1,{x}); |
不等式も解けます(表現が気になりますが)
| > | solve(x^2-x-4<0,{x}); |
| > | solve(2^x-8>0,x); |
| > | simplify(%); |
こんなことも、できます。
例題 方程式
の解のうち一番小さい値をmとする。
このとき、
の値を求めなさい。
| > | eq := x^4-5*x^2+6*x=2; |
| > | solve(eq,x); |
| > | sols := [solve(eq,x)]; |
| > | sols[4]; |
| > | subs(m=sols[4],m^2-m-3); |
| > | simplify(%); |
漸化式は解けるか?
命令は rsolve( 漸化式、 数列名) recurrence equation solver
ハノイの塔の一般項を求めなさい
即ち、次の漸化式を解きなさい
,
| > | rsolve({a(n+1)=2*a(n)+1,a(1)=1},{a}); |
フィボナッチの数列
,
,
の一般項を求めなさい
| > | rsolve({f(n+2)=f(n+1)+f(n),f(1..2)=1},{f}); |
| > |
連立の漸化式から、それぞれの一般項を求めなさい
| > | rsolve({a(n+1) + b(n) = 2*2^n + n,b(n+1)+a(n) = n - 2^n + 3, a(1)=1, b(1)=6}, {a, b}); |
微分方程式は解けるか?
| > |
命令は dsolve( 微分方程式) ordinary differential equations
例題 次の、微分方程式を解きなさい。
| > | dsolve(diff(y(t),t)=g*t); |
例題 次の、微分方程式を解きなさい。
,
| > | dsolve({diff(y(t),t)=g*t,y(0)=8}); |
狽ノついて
命令は sum( 数列の第k項、k=1..n);
コマンドの最初の文字を大文字にすると、数学記号が表示されます。
| > | Sum(k^2,k=1..10); |
| > | sum(k^2,k=1..n); |
| > |
| > | Sum(k^2,k=1..n)=factor(sum(k^2,k=1..n)); |
| > | Sum(1/n^2,n=1..infinity)=sum(1/n^2,n=1..infinity); |
| > | Sum(r^k,k=1..n)=sum(r^k,k=1..n); |
極限・微分・積分
極限
命令は limit(f(x)、x=a); は、
を意味します。
コマンドの最初の文字を大文字で入力すると、数学記号を表示します。
| > | Limit(x/(2*x+3),x=4); |
| > | Limit(x/(2*x+3),x=4)=limit(x/(2*x+3),x=4); |
右極限、左極限も計算できます。 right、left で指定します
| > | Limit(abs(x)/x,x=0,right); |
| > | Limit(abs(x)/x,x=0,right)=limit(abs(x)/x,x=0,right); |
無限も取り扱えます
| > | Limit((x^2+1)/(1-x-3*x^2),x=infinity); |
| > | Limit((x^2+1)/(1-x-3*x^2),x=-infinity)=limit((x^2+1)/(1-x-3*x^2),x=-infinity); |
Limit(1/x^2,x=0)=limit(1/x^2,x=0);
三角関数の極限も取り扱えます
| > | Limit(x*sin(x)/(1-cos(x)),x=0); |
| > | Limit(x*sin(x)/(1-cos(x)),x=0)=limit(x*sin(x)/(1-cos(x)),x=0); |
微分
命令は diff(関数、変数); Differentiation or Partial Differentiation
の微分をさせます。(当然、xについての微分です)
| > | diff(a*x^5,x); |
今度は、a について微分します。
| > | diff(a*x^5,a); |
次は、x についての4次導関数を求めます・
| > | diff(a*x^5,x,x,x,x); |
| > | diff(a*x^5,x$4); |
y を定数とみなします
| > | diff(x^2+y^2=1,x); |
y も変数とみなします
| > | diff(x^2+y(x)^2=1,x); |
の微分をさせます。(a も変数とみなします)
| > | diff(a(x)*x^5,x); |
積分
命令は int(関数、変数名); Definite and Indefinite Integration
| > | Int(a*x^2,x)=int(a*x^2,x); |
| > | Int(a*x^2,a)=int(a*x^2,a); |
| > | Int(Int(a*x^2,a),x)=int(int(a*x^2,a),x); |
| > | Int(sin(x),x=0..Pi)=int(sin(x),x=0..Pi); |
グラフ表示について
のグラフ
命令は plot(式、変数名=範囲..範囲);
| > | plot(x^2,x=-2..2,title="二次関数のグラフ",labels=["x軸","y軸"]); |
のような陰関数 (九州大学2003年入試問題を含む)
Mapleはコンピュータの資源を有効に利用するため、全てのコマンドを主記憶に常駐させていません。
常駐しているコマンドは約10%程度です。残り90%のコマンドは呼び出す必要があります。
陰関数のグラフ表示は、plots というパッケージの中にあります。そこで、
コマンド with により plots パッケージを呼び出します。
命令は with(plots):
その後で、 implicitplot(関数、変数名=範囲..範囲); と命じます。
| > | with(plots): |
Warning, the name changecoords has been redefined
| > | implicitplot(x^2+y^2=4,x=-2..2,y=-2..2,scaling=constrained); |
| > | implicitplot3d(x^2+y^2+z^2=1,x=-1..1,y=-1..1,z=-1..1,scaling=constrained); |
| > | implicitplot3d( x^3 + y^3 + z^3 + 1 = (x + y + z + 1)^3,x=-2..2,y=-2..2, z=-2..2,grid=[13,13,13]); |
九州大学2003年度 次のグラフをかきなさい
| > | implicitplot(2*abs(abs(x)-4)+abs(abs(y)-5)=3,x=-6..6,y=-8..8,numpoints=5000); |
局座標
まず、plots パッケージを with コマンドで呼び出します。
そして、 polarplot(式、角=範囲..範囲)
| > | polarplot(1,t=0..Pi,scaling=constrained); |
| > | polarplot([cos(t),sin(t),t=0..2*Pi],color=gold); |
| > | polarplot(t,t=0..2*Pi); |
アニメーション
において a をパラメーターとして
with 命令でplotsパッケージを呼び出します。
そして、amimate(パラメータを含んだ式、変数=範囲..範囲、パラメータ=範囲..範囲);
| > | with(plots): |
| > | animate(a*x^2,x=-2..2,a=0..2); |
| > | animate3d(cos(t*x)*sin(t*y),x=-Pi..Pi, y=-Pi..Pi,t=1..2); |
アニメート・カーブ
をかく
| > | animatecurve(x^3,x=-2..2); |
不等式と領域
| > | inequal( { x+y<1, x-y<=1,y=2}, x=-3..3, y=-3..3, optionsfeasible=(color=blue), optionsopen=(color=blue,thickness=2), optionsclosed=(color=green, thickness=3), optionsexcluded=(color=yellow) ); |
複素数平面
with(plots):
Warning, the name changecoords has been redefined
| > | complexplot(sin(x+I),x=-Pi..Pi,scaling=constrained); |
| > | f1 := (x,y)->x^2-y^2; f2 := (x,y)->2*x*y; complexplot3d( [ f1, f2] , -2..2, -2..2); |
メビウスの帯
| > | mebius:=plot3d([4+x*cos(1/2*y),y,x*sin(1/2*y)], |
| > | x=-Pi..Pi,y=-0..2*Pi,coords=cylindrical,style=patchnogrid, |
| > | shading=zhue,scaling=constrained): |
| > | plots[display](mebius); |
プログラム作成について
プログラム作成については、少し勉強をする必要があります。
しかし、他の言語より簡単です。
次に、プログラムの例を挙げます。
例題
「関数
を 与えることにより
と
の導関数、二つのグラフを同時に表示する」
プログラムを作りなさい。
なお、このプログラムの名前は zogen とします。
考え方: 与える具体的な関数名を f
変数名を x
グラフを表示する変数 x の範囲を、hajime,owari とします。
コンピュータの動き: コンピュータは、zogen(f、x、hajime,owari) と命じられると
f の場所にあるものが、指定された関数であると認識します。
x の場所にあるものが、指定された関数の変数であると認識します
hajime の場所にあるものが、グラフ表示上の変数の最小値、
owari の場所にあるものが、グラフ表示上の変数の最大値と認識します。
local df とは df はこのプログラムの内部のみ有効であるという意味です。
| > | zogen:=proc(f,x,hajime,owari) |
| > | local df; |
| > | df:=diff(f,x); |
| > | plot([f,df],x=hajime..owari); |
| > | end: |
| > | zogen(x^2,x,-3,3); |
| > | zogen(t^4-t^2,t,-1,1); |
授業解説の道具としてのMaple
例 1 グラフの移動
(数学T 二次関数)
このブロックを注意してください。Mapleのコマンドが全く見当たりません。教科書などとして使えます
例題 1
のグラフをかいてみよう.
この
グラフは、
を
の方向へ3、さらに、
方向へ2だけ
平行移動したものである。
(このことがわからない人は、上記の 2) と 3) を復習すること。)
一般に、
のグラフは、
のグラフをx方向へp、y方向へqだけへ平行移動したものである。
上の、アニメーションを参考に、p、qにいろいろな数値を当てはめて、グラフの移動を想像してみよう。
例 2 最大値・最小値について
例題2
二次関数
の最大値を求めなさい。
ただし、 0≦x≦2 とします。
グラフを参考にして、最大値を求めてみよう。
問題は、a の取り扱い方です。
そこで、a の値を −2 から 5 まで変化させるアニメーションを表示すます。
この、アニメーションをしばらく観察すれば、どのように解答すればよいかに気がつきます
(他のことにも、気づきます)
注 view コマンドは グラフを見やすいサイズに設定するためのものです。
これにより、係数をあまり気にすることなく、その関数の特徴を表示できます。
| > | with(plots): |
| > | niji:=animate(x^2-2*a*x-2*a+3,x=-3..3.5,a=-2..3): |
| > | hani:=inequal({y-9999*x<0,0<y-9999*(x-2)},x=-4..4,y=-10..25,optionsexcluded=(color=white,thickness=2)): |
| > | display(niji,hani,view=[-2.5..3.5,-10..20]); |
大学入学試験問題をMapleを利用して解く (思考の道具として)
問題 1
πは3.05より大きいことを示せ
(2003年 東京大学理系第6問)
Mapleを利用した解
| > |
πとは、どんな数のこと?
πの 定義は 「 円の周と直径の比」 であるが
半径が1の円の面積と考えてもよい
解1 円の面積を手がかりに
円の面積を求めることにより πが 3.05 より大きいことを示そう。
π の値を計算するイメージを下記に示す。
(円の内部に多くの長方形を作り、それらの長方形の面積を全て加えることにより、
円の面積を算出するものである。)
| > | with(plots): |
Warning, the name changecoords has been redefined
| > | with(student): |
| > | kubun:=proc(f,x,h,e) |
| > | local k,i,s,n; |
| > | k:=[seq(i^2,i=2..13)]; |
| > | s:=seq(rightbox(f,x=h..e,n),n=k): |
| > | display([s],insequence=true,scaling=constrained); |
| > | end; |
このプログラム使用法は
kubun(f、x、h、e) において、
f の場所に 使用する関数を記入する。ここでは、円であるら
h 変数の変動する値の最小値 h≦x≦e のh
e 変数の変動する値の最大値 h≦x≦e のe
の右辺を。
x 変数を表す文字。 普通は 文字 x である。
上記4項目を指定すれば、そのイメージを表現する
| > | kubun(sqrt(1-x^2),x,0,1); |
具体的に値を算出するプログラムは、下記の通りである。
ただし、計算する面積は円の
を対象としている。
(一つ一つの長方形の面積を計算し、その総和を求めるものである)
| > | PI:=proc(n) |
| > | local i,total; |
| > | total:=0; |
| > | for i from 1 to n do |
| > | total:=total+1/n*sqrt(1-(i/n)^2); |
| > | od; |
| > | total; |
| > | end: |
PI(5) と命じると 五個の長方形の面積を計算する。
PI(N) と命じると N個の長方形の面積を計算する。
| > | PI(25); |
| > | 4*evalf(%); |
より正確な π の値は次の通りです。
| > | evalf(Pi,111); |
解2 扇 形に円を24等分する。このときの中心角15°の三角形の面積を求める
| > | with(plots): |
Warning, the name changecoords has been redefined
| > | a21:=plot(sqrt(1-x^2),x=-1..1): |
| > | a22:=plot(sqrt(3)*x,x=0..1/2): |
| > | a23:=plot(x/sqrt(3),x=0..sqrt(3)/2): |
| > | display([a21,a22,a23],scaling=constrained); |
上の図のように扇形を作り中心角をθとすると、その面積は、
で与えられる。
無理なく、正弦の値を算出できる θ=15° 場合を考える。
即ち、24個の扇形の面積の総和を考えると
| > | evalf(24*sin(2*Pi/24)/2); |
解 3 定義に従って、円周の長さを求めることにより証明する
曲線の長さ(任意の関数に応用できるように、変数xに関して等分しているアニメーション)
曲線の長さ
| > | with(plots): |
| > | pl:=proc(f,a,b,n) |
| > | localu,v,k; |
| > | k:=1+floor(n*(x-a)/(b-a)); |
| > | u:=a+(k-1)*(b-a)/n; |
| > | v:=a+k*(b-a)/n; |
| > | unapply(f(u)+(f(v)-f(u))/(v-u)*(x-u),x); |
| > | end: |
| > | f:=x->sqrt(1-x^2); |
| > |
| > |
| > | display([seq(plot([f,pl(f,-1,1,i)],-1..1,thickness=2,color=[red,blue]),i=1..20)], |
| > | insequence=true,view=[-1..1,-1..1]); |
円の中心を基準に 円を n 等分してできる二等辺三角形を考える。(上の図参照)
この二等辺三角形の頂角を
とする、 θ=360°÷ n である。
さて、この二等辺三角形の底辺の長さを求めると、
=
(余弦定理より)
これより
を得る
ここで、2倍角の公式を利用して
=
である。また、考えている
の値から
よって、
ゆえに、円周の長さは
である。
直径に対する円周の長さの比である円周率πは
上の式 nL に r=1、n=12 の場合を代入して、(このとき、θ=30°である)
円周率 = 2×12×sin(15°)÷2
| > | 円周率 = evalf(2*12*sin(Pi/12)/2); |
なお、正確な円周は、
=
である。
これを、計算して
| > | Limit(n*L,n=infinity)=limit(2*n*r*sin(Pi/n),n=infinity); |
| > |
問題 2
区間 −2≦x≦2 において、連続な曲線 y=f(x) が次の条件をみたしているとする。
f(−2)=f(2)=0
また、f(x) の導関数は
−2<x<−1 のとき a
−1<x<1 のとき
1<x<2 のとき
このとき、
を最小にする a の値とその最小値を求めよ。
(熊本大学 理系)
Mapleを利用した解
与えられた 導関数を g(x) として 定義する。
f(x) の導関数を g(x) とおくと、g(x) は Mapleを利用すると次のようになる。
| > | g:=x->piecewise(-2<x and x<-1,a, |
| > | -1<x and x<1, 2*x, |
| > | 1<x and x<2, -a); |
思い通り定義できているか、確認してみましょう。
| > | g(x); |
試しに、g(x) において x=−1.5 、 0.7 、 3(定義されていない) を代入してみましょう。
| > | g(-1.5); |
| > | g(0.7); |
| > | g(3); |
このように、定義されていない範囲の値を要求すると、その旨を知らせます。
f(x)の導関数g(x)が確定しましたので、g(x)を積分してf(x)を求めてみましょう
Maple に積分の計算をさせます。即ち、
を計算します
| > | f(x):=int(g(x),x); |
これで、f(x)が求まりました。
問題を確認すると、
の最小値 が問題です。
f(x) のグラフをかいて、どのようにの積分の計算をすればよいか考えましょう。
f(x) をみると a というパラメーターありますので、a の値により f(x)のグラフは変わります。
そこで、Maple のアニメーションを利用し、グラフをかいてみましょう。
| > | with(plots): |
| > | animate(f(x),x=-2..2,a=-1..2,color=red); |
このアニメーションを良く観察してみよう。
は x軸と 赤い線のグラフで囲まれた面積を意味しているので、
この面積の最小値を求めればよい
| > |
この面積は、a の値により、場合分けしないと求めることができない。
アニメーション観察の結果、次の三つの場合に分ければよいことがわかる
(1) グラフ全体が、x軸より下にある場合 即ち、a≦0 の場合
グラフより、求める面積は
-2≦x≦ー1 の部分 −1≦x≦1 の部分 1≦x≦2 の部分に分割して求めればよい
これを、Mapleに計算させる。
| > | Int(abs('f(x)'),x=-2..-1)+Int(abs('f(x)'),x=-1..1)+Int(abs('f(x)'),x=1..2); |
| > | Int(abs('f(x)'),x=-2..-1)+Int(abs('f(x)'),x=-1..1)+Int(abs('f(x)'),x=1..2)=int(-(a*x+2*a),x=-2..-1)+int(-(x^2+a-1),x=-1..1)+int(-(-a*x+2*a),x=1..2); |
よって、a≦0 の場合の最小値は、a=0 のとき
である。
(2) グラフがx軸と交わる場合 即ち 0<a≦1 の場合
グラフより、求める面積は
-2≦x≦ー1 の部分 −1≦x≦(2次関数とx軸の解) の部分 解≦x≦解 の二次関数の部分
解≦x≦1 の部分 1≦x≦2 の部分 の5個に分割して求めればよい
面積を求めるには、二次関数とx軸との交点のx座標を求めなければならない。
即ち、
の解を求めなければならない。Maple に解かせて
| > | kai:=[solve(x^2+a-1,x)]; |
| > | kai := [(-a+1)^(1/2), -(-a+1)^(1/2)]; |
| > | kai[1]; |
よって、求める面積は
| > | Int(abs('f(x)'),x=-2..-1)+Int(abs('f(x)'),x=-1..kai[2])+Int(abs('f(x)'),x=kai[2]..kai[1])+Int(abs('f(x)'),x=kai[1]..1)+Int(abs('f(x)'),x=1..2); |
| > |
を計算すればよい
| > | Int(abs('f(x)'),x=-2..-1)+Int(abs('f(x)'),x=-1..kai[2])+Int(abs('f(x)'),x=kai[2]..kai[1])+Int(abs('f(x)'),x=kai[1]..1)+Int(abs('f(x)'),x=1..2)=2*(int(-(x^2+a-1),x=0..kai[1])+int(x^2+a-1,x=kai[1]..1)+int(-a*x+2*a,x=1..2)); |
| > | menseki:=rhs(%); |
| > | sort(menseki,a); |
| > | plot(menseki,a=0..1.5); |
グラフより、最小値をとる a の値は、menseki の導関数の値が0になるところである。
よって、
を求めると、
| > | 'd(menseki)/da'=diff(menseki,a); |
| > | simplify(%); |
| > | solve(diff(menseki,a)=0,{a}); |
よって、0≦a≦1 のとき、面積の最小値は、
をmenseki に代入して
| > | subs(a=7/16,menseki); |
この値を簡単にして、最小値は
のとき 次の値を得る。
| > | simplify(%); |
(3) グラフがx軸より上にある場 即ち 1<a の場合
求める面積は
であるから
| > | Int(abs('f(x)'),x=-2..2)=2*(int(x^2+a-1,x=0..1)+int(-a*x+2*a,x=1..2)); |
アニメーションおよび、上の結果よりより、1≦a の最小値は、a=1 のときである
よって、最小値は
である。
| > |
| > |
| > |
| > |
答えは (1)の
(2)の
(3)の
の値を比べて
(2) の場合 即ち 、
のとき最小値
をとる。
接線の意味
| > | with(plots): |
Warning, the name changecoords has been redefined
| > | animateSecant:=proc(f,a,h) |
| > | local n,Background,Mover,Secants; |
| > | n:=30; |
| > | Background:=plots[display](plots[pointplot]({[a,f(a)],[a,0]},symbol=circle), |
| > | plot(f(x),x=(a-(h+signum(h)*1))..(a+(h+signum(h)*1)))): |
| > | Mover:=plots[display](seq(plots[pointplot]({[a+(n-i)/(n/h),f(a+(n-i)/(n/h))], |
| > | [a+(n-i)/(n/h),0]},symbol=circle,color=blue),i=0..n-1),insequence=true): |
| > | Secants:=plots[display](seq(plot((f(a+(n-i)/(n/h))-f(a))/(n-i)*(n/h)*(x-a)+f(a), |
| > | x=(a-(h+signum(h)*1))..(a+(h+signum(h)*1)),color=blue),i=0..n-1),insequence=true): |
| > | plots[display](Secants,Background,Mover); |
| > | end proc: |
関数の指定
| > | f:=x->x^3-3*x^2; |
接点の指定と相手の点の位置指定
| > | animateSecant(f,1.5,1.5); |
曲線の長さ
| > | with(plots): |
| > | 関数:=x->x^2; |
| > | 折れ線:=proc(関数,左端,右端,個数) |
| > | local u,v,k; |
| > | k:=1+floor(個数*(x-左端)/(右端-左端)); |
| > | u:=左端+(k-1)*(右端-左端)/個数; |
| > | v:=左端+k*(右端-左端)/個数; |
| > | unapply(関数(u)+(関数(v)-関数(u))/(v-u)*(x-u),x); |
| > | end: |
| > |
| > | plot([関数,折れ線(関数,-1,1,8)],-1..1,thickness=2,color=[red,blue],scaling=constrained); |
| > |
| > |
| > |
| > | display([seq(plot([関数,折れ線(関数,-1,1,i)],-1..1,thickness=2,color=[red,blue]),i=1..20)], |
| > | insequence=true,view=[-1..1,-1..1]); |
インターネット上における授業(e−Learning)について
携帯電話が教科書・ノート・辞書・教師・参考書代わり
いつでも・どこでも、思い立ったら、即・学習
具体的な例は URL:http://furu.biz/ にあります。
Web上へアップロードするには、どうしたらよいか。
(ホームページを持っている場合)
1) 教材をMapleシート上に作成する
2) 作成した教材を インターネットを経由して見れるようにHTML または XML に変換する。
このとき、いろいろなタグの意味を知らなくてもよい
3) HTMLやXMLに変換されたものをサーバーへアップロードする。
などについてコメントする
実験をします。
ホームページfuruweb を開き、実験。
メッセンジャー・Odigoについてコメントする。
Babylonや翻訳ソフトについてコメントする。
参考文献
Maple8 programming guide Waterloo Maple Inc. Springer
Darren Redfern The Maple Handbook Springer 1996年
K.M.Heal,M.L.Hansen, K.M.Rickard Maple V Leaning Guide Springer 1996年
K.M.Heal,M.L.Hansen, K.M.Rickard Introduction to Maple Springer 1996年
M.B.Monagan,K.O.Geddes,K.M.Heal,G.Labahn,S.M.Vorkoetter
Maple V Programming Guide Springer 1966年
矢野健太郎編 数学小辞典 共立出版 昭和54年
文部省 学術用語集 大日本図書 昭和48年
日本規格協会編 JIS ハンドブック 財団法人日本規格協会 1981年
日本数学会編 数学辞典 岩波書店 1974年
Zecharia Sitchin Genesis Revisited 1994年
Zecharia Sitchin The War Of Gods And Men 1995年
バビロン社 Babylon Translator www.babylon.com 1997年
Robert M Schock Voice Of Rocks 日経印刷 1999年
結城 浩 Perl で作るCGI入門 ソフトバンクパブリッシングKK 2000年
ノマド・ワークス 詳細HTML基本活用辞典 新星出版社 2000年
池田実・小野寺尚希 最新XMLがわかる 技術評論社 2000年
Steven Holzner Perl&CGI言語リファレンス 2000年
Waterloo Maple Inc. Maple7Learning Guide 2001年
Waterloo Maple Inc. Maple7Programming Guide 2001年
参考プログラム
サイバネットシステム株式会社 Maple X Release 5 1999年 より
下記のプログラムなどを参孝
> interface(verboseproc=2);
eval(solve):
と命じれば、solve 命令のプログラムが表示されます。
Maple Application Center (http://www.mapleapps.com/Japanese_apps.htm)
| > | interface(verboseproc=2); |
| > | eval(solve); |