• 検索結果がありません。

目 次 1. 入 力 方 法... p.4 2. よく 使 う 演 算... p 式 に 値 を 代 入... p 色 々なデータ 型 (リスト ベクトル 等 )... p 式 操 作 ( 展 開 因 数 分 解 等 )... p 代 数 方 程 式.

N/A
N/A
Protected

Academic year: 2021

シェア "目 次 1. 入 力 方 法... p.4 2. よく 使 う 演 算... p 式 に 値 を 代 入... p 色 々なデータ 型 (リスト ベクトル 等 )... p 式 操 作 ( 展 開 因 数 分 解 等 )... p 代 数 方 程 式."

Copied!
83
0
0

読み込み中.... (全文を見る)

全文

(1)

Mapleの基本的な使い方

担当

:  

荻田 武史

(2)

目次

1.  入力方法  ...  p.4   2.  よく使う演算  ...  p.10   3.  式に値を代入  ...  p.20   4.  色々なデータ型(リスト・ベクトル等)  ...  p.32   5.  式操作(展開・因数分解等)  ...  p.43   6.  代数方程式  ...  p.47   7.  グラフを描く  ...  p.53   8.  微分  ...  p.61   9.  積分  ...  p.65   10.  極限  ...  p.70   11.  常微分方程式  ...  p.76   12.  偏微分方程式  ...  p.79   13.  LaTeX形式への変換  ...  p.83

(3)

Mapleとは?

•  数式処理や数値計算、グラフ作成な

どが出来るソフトウェア。

 

(4)

• 

Mapleの入力方法は2種類。  

– テキスト入力:テキスト形式で入力。

 

– 数式入力:数式の形を組み立てながら

入力。

 

(5)

•  テキストと

Mathのボタンで入力方法

の切り替えができる。

 

入力方法(2)

 ボタン 

(6)

•  行の終わりに

;(セミコロン)

を付ける

と、その行を実行し結果を出力する。

 

 

•  行の終わりに

:(コロン)

を付けると、

その行を実行し結果を出力しない。

 

入力方法(3)

(7)

入力方法(4)

セミコロンをつけると

 

結果が表示される

コロンをつけると

 

結果が表示されない

(8)

•  作業した内容をファイルに「保存」す

るには

…  

– メニューバーの

「ファイル」

「ワーク

シートとして保存」(新規保存)

 

•  ファイルを「開く」ときは

…  

– メニューバーの

「ファイル」

「開く」

 

ファイルの「保存」と「開く」

(9)

•  入力例を実際に入力してみよう。

 

四則演算

シンボル

説明

入力例

出力例

+  

足し算

1  +  3; 4

-­‐  

引き算

1  -­‐  3; -­‐2

/  

割り算

150  /  3;   7  /  3; 7/3 50  

*

かけ算

2  *  510; 1020

(10)

よく使う演算

シンボル 説明 入力例 出力例 ^   べき乗 2^3 8 sqrt   平方根 sqrt(2)   evalf   浮動小数点(10進数) で表示 evalf(7/3) 2.333333333 I   (大文字のi) 虚数単位   2  +  3*I;   (2  *  I)^2; 2+3  I  -­‐4 Pi 円周率π evalf(Pi) 3.141592654 %   %% 前の出力を使う   前の前の出力を使う %;   %%%; 2

(11)

•  変数・・・扱われるデータを一定期間記

憶し、必要なときに利用出来るように

データに固有の名前を与えたもの。

 

• 

Mapleではあらかじめ変数に値や数式

等を割り当てておくことができる。

 

→ 

毎回式を入力する必要なく、変数名

を使用して計算できる。

 

変数への割り当て(1)

(12)

•  変数への割り当てには、

:=(コロン+イ

コール)

を使用する。

 

•  変数に割り当てられているものを確認し

たい時は、

変数名;(セミコロン)

と入力

して

Enterキーで実行

する。

 

•  変数に何も割り当てられていない場合

は変数名が返される。

 

変数への割り当て(2)

(13)

•  順に入力して確かめてみよう。

 

 (例)変数への割り当て

入力 説明

a  :=  2;  

変数aに2という値を割り当てる

b  :=  sin(x)/x^2;  

変数bに      を割り当てる

a;  

b;  

変数a、bに割り当てられているものを確認

c;  

変数cに割り当てられているものを確認

a  *  b;

        を計算する sin x

( )

x2 2 × sin x

( )

(14)

•  割り当てた変数を初期化するには、

unassign

 

または 

restart

 

コマンドを使

用する。

 

unassign(‘変数名’)

: 特定の変数を初期

化する。

 

restart

: 

Mapleを起動した時と同じ状態に

戻す(全ての変数を初期化)。

 

変数の初期化(1)

(15)

 

 

 

 

 

適当な変数に値を割り当てて、

2つのコマ

ンドで初期化してみよう。

 

 (例)変数の初期化

入力 説明

unassign(‘a’);  

変数aを初期化

unassign(‘a’,’b’);

変数aとbを初期化

restart;

全ての変数を初期化

(16)

•  分数に対して様々な処理ができる。

 

分数

コマンド 説明 normal(式)   正規化する numer(式)   分子を取り出す   denom(式)   分母を取り出す   rem(式1,  式2,  変数)   式1÷式2の余りを求める   quo(式1,  式2,  変数)   式1÷式2の商を求める  

(17)

(例)分数

入力 説明

eq1  :=  (x+y)/(x^3+y^3);  

eq2  :=  normal(  eq1  );   正規化する   eq3  :=  (x^3+x+1)/(x^2  +  x  +  1);  

eq4  :=  numer(  eq3);   分子を取り出す  

eq5  :=  denom(  eq3  );   分母を取り出す  

rem(eq4,  eq5,  x);   除算の余りを求める  

(18)

•  虚数単位は

I  

(大文字の

i)を使用する。  

複素数

コマンド 説明 Re(式)   実部を取り出す Im(式)   虚部を取り出す   abs(式)   原点からの距離を求める (絶対値)  

(19)

(例)複素数

入力 説明 I^2;   -­‐1 eq1  :=  4  -­‐  5*I;   Re(eq1);   実部を求める   Im(eq1);   虚部を求める   abs(eq1);   原点からの距離を求める  

(20)

•  式に値を代入するには

subs

コマンドか

eval

コマンドを使用する。

 

•  副次式を代入する場合には

algsubs

コマ

ンドを使用する。

 

式に値を代入

コマンド 説明 subs(変数=値,  式)   式に値を代入する eval(式,  変数=値)   algsubs(副次式,  式)   副次式を代入する  

(21)

(例)式に値を代入

入力 説明

subs(x=1,  x^2+2*x+1);   x^2+2*x+1にx=1を代入

eval(x^2+2*x+1,  x=1);  

algsubs(a+b=1,  a+b+c);   a+b+cにa+b=1を代入  

(22)

•  入力した引数の中から、

max

コマンドで

最大値、

min

コマンドで最小値を求める。

 

•  絶対値を求めるには

abs

コマンドを使用

する。

 

最大値と最小値、絶対値

コマンド 説明 max(値1,値2,  …  ,  値n)   値1〜nの中の最大値を求める min(値1,値2,  …  ,  値n)   値1〜nの中の最小値を求める abs(値)   値の絶対値を求める  

(23)

(例)最大値・最小値、絶対値

入力 説明

max(1,  5  ,10,  2,  6);   入力した引数の最大値を求める

min(1,  5  ,10,  2,  6);   入力した引数の最小値を求める

(24)

整数の色々な演算

コマンド 説明 入力例 factorial(整数1)   整数1の階乗 factorial(5); iquo(整数1,整数2)   整数の割り算の商   iquo(10,4);   irem(整数1,整数2)   整数の割り算の余り   irem(10,4);   iroot(整数1,整数2)   (整数2)のn乗が(整数1)に 最も近くなるときのn   iroot(65,3);   isqrt(整数1)   整数1の平方根に   最も近い整数   isqrt(99);   modp(整数1,  整数2)   剰余   modp(100,3);   igcd(整数1,  整数2)   最大公約数   igcd(123,45);   ilcm(整数1,  整数2)   最小公倍数   Ilcm(6,8);  

(25)

•  素数に関する様々なコマンドがある。

 

素数

コマンド 説明 ifactor(値)   素因数分解を行う ithprime(値)   値が自然数kのとき、k番目の素 数を求める   isprime(値)   値が素数かどうかを判定する。   素数の場合はtrue   素数でない場合はfalseを返す   nextprime(値)   prevprime(値)   指定した数の前後にある   素数を探す  

(26)

(例)素数

入力 説明 ifactor(2014);    素因数分解をする ifactor(27);   ithprime(200);   200番目の素数を求める isprime(37);   素数かどうか判定する isprime(99);   nextprime(100);   100の後にある素数を求める prevprime(100);   100の前にある素数を求める

(27)

•  三角関数を使うときは、単位はラジアン

を使用し、

sin(ラジアン)

のようにする。

 

三角関数

入力 説明 Ang  :=  180;   角度が180度の場合 sin(Ang);   これはNG   sin(Ang*Pi/180);   ラジアンに直す   cos(2*Pi);   tan(1/6*Pi);  

(28)

(例)三角関数

入力 説明 arcsin(1/2);   逆関数を求めることもできる arccos(1/2);   arctan(sqrt(3));   simplify(sin(x)^2+cos(x)^2);   簡単化 eq  :=  expand(cos(x+y));   式を展開する   combine(eq);   元に戻す  

(29)

•  指数関数は

exp  を使って表す  

exp(x)

: 

eのx乗を計算  

exp(整数or有理数)

: 厳密に計算する

 

exp(小数)

: 近似計算する

 

指数関数

入力 説明 exp(2);      を厳密に計算 exp(2.0);   近似計算

e

2

(30)

•  対数関数は

 log  または ln  を使って表す  

log(x)

ln(x)

: 

log  x  を求める  

log[底の値](値)

: 対数関数の底の値を指

定する

 

 

対数関数

入力 説明 log(2);      ln(2);   log2を厳密に計算 log(2.0);    ln(2.0);   log2を近似計算 log[4](1024);   log 1024

(31)

端数処理

コマンド 説明 入力例 round(値)   整数に丸める(四捨五入)   round(1.3);   ceil(値)   整数に丸める(切り上げ)   ceil(1.3);   floor(値)   整数に丸める(切り下げ)   floor(1.8);   trunc(値)   整数に丸める(切り捨て)   trunc(-­‐4.2);   trunc(4.2);  

(32)

•  式や数式以外にもリストや集合、行列、ベクト

ルなどを扱うことができる。

 

 

色々なデータ型

データ型 説明 入力例 リスト   重複や順番も保持される [a,  b,  c,  d];   [b,  a,  d,  a,c]; 集合   重複しているものは一つになり、

順番は無視される {b,  b,  d,  a,  c,  a}; {a,  b,  c,  d};   行列   線形代数演算 Matrix([[a,  b],  [c,d]]);  

ベクトル 行ベクトル、列ベクトルを扱うこと

(33)

•  リストの要素数を取り出すには

nops

コマンド、

データを取り出すには

op

コマンドを使用する。

 

nops(リスト名)

: リストの要素数を求める  

op(リスト名)  または  p(番号,  リスト名)

: リスト

のデータを取り出す。位置を指定することもで

きる。

 

変数名

[番号]

:  位置を指定してデータを取り出

 

リスト

(34)

(例)リスト

入力 説明 data  :=  [[1,2],  [3,4],  [5,6]];   リストを作成 nops(data);   データの個数を取り出す   op(data);   データを取り出す   op(1,data);   1番目の要素を取り出す   op(2,  op(1,data));   [1,2]の2番目の要素を取り出す   data[2];   2番目の要素を取り出す  

(35)

sort

コマンドで式やデータの並び替えが

できる。

 

並び替え

入力   説明 eq  :=  1  +  x^2  +  x  +  x^3;   sort(eq);   次数順に並び替え

data2  :=  [Banana,  Apple,  Lemon];   sort(data2);   アルファベット順に   並び替え   data3  :=  [1,  4,  3,  8,  5];   sort(data3);   小さい順に並び替え  

(36)

•  総和は

sum

コマンドまたは

add

コマンドで

求めることができる。

•  リストデータの和を求めることも出来る。

 

総和と積(1)

コマンド 説明 sum(変数,  変数=値1..値2)   add(変数,  変数=値1..値2)   値1〜値2までの   総和を求める リスト名  :=  [値1,  値2,  …  ,  値n];   sum(リスト名[変数],  変数=1..n);   add(リスト名[変数],  変数=1..n);   リストの和を求める  

(37)

•  積は

product

コマンドまたは

mul

コマンド

で求めることができる。

 

•  リストデータの積を求めることも出来る。

 

総和と積(2)

コマンド 説明 product(変数,  変数=値1..値2)   mul(変数,  変数=値1..値2)   値1〜値2までの   積を求める リスト名  :=  [値1,  値2,  …  ,  値n];   product(リスト名[変数],  変数=1..n);   mul(リスト名[変数],  変数=1..n);   リストの積を求める   (n=値の個数)  

(38)

(例)総和と積

入力 説明 sum(x,  x=1..10);   add(x,  x=1..10);   1から10までの総和を求める data  :=  [2,  4,  6,  8,  10];   リストデータの作成 sum(data[i],  i=1..5);   リストの値の総和を求める   sum(a*x^k,  k=0..5);   変数を含む場合も   総和を求めることができる。   product(x,  x=1..10);   1から10までの積 product(data[i],  i=1..5);   リストの値の積  

(39)

• 

Matrix(3,3)で3*3の零行列が作れる。  

•  行または列が

10以上になる場合・・・青字の

出力の上でダブルクリックすると行列の要素

を確認できる。

 

行列

青字をダブルクリック でマトリックスブラウザ が起動

(40)

•  加算、減算はこれまでと同じように計算

できる。

 

•  行列同士のかけ算には

.(ドット)

、行列

をスカラー倍するには

*  

を使う。

 

•  逆行列は

行列

^(-­‐1)

で求めることができる。

 

行列の基本演算(1)

(41)

行列の基本演算(2)

コマンド 説明 Matrix([[a,b],  [c,d]]);   行列を作成する 行列A  +  行列B   足し算を行う 行列A  –  行列B   引き算を行う   行列A  .  行列B   .(ドット)でかけ算を行う   スカラー  *  行列A   行列をスカラー倍する   行列A^(-­‐1)   逆行列を求める  

(42)

(例)行列の基本演算

入力 説明 mat1  :=  Matrix([[1,  2],  [3,  4]]);     mat2  :=  Matrix([[a,  b],  [c,  d]]);   mat1  +  mat2;   足し算を求める mat1  -­‐  mat2;   引き算を求める mat1  .  mat2;   かけ算を求める 4*mat1;   スカラー倍を求める mat2^(-­‐1);   逆行列を求める

(43)

•  展開するには

expandコマンド

 

•  因数分解、部分分数分解するには

factor

コマンドを使用する。

 

変数名

 :=  expand(数式);

 

factor(変数名);

 

式操作:展開と因数分解

(44)

•  順に入力して試してみよう。

 

(例)式操作:展開と因数分解

入力 説明

a1  :=  expand((x+2*y)^8);

(x+2*y)^8を展開

factor(a1);

a1を因数分解

a2  :=  (x+1)/(x+2);

(45)

その他の式操作(1)

コマンド 説明 入力例 simplify(式)   複雑な数式を見やす く簡単化する eq1  :=  1/(1+1/(1+1/(1+x)));  simplify(eq1); csgn(式)   正負を求める a  :=  -­‐5;  b  :=  3;   csgn(a);  csgn(b);   coeff(多項式, 変数名,次数)   指定した次数の係数 を取り出す eq2  :=  6*z^3  -­‐  5*z^2  +  2*z  -­‐  3*z  +  4;   coeff(eq2,  z,  2); lcoeff(式) 多項式に含まれる最 高次の係数を求める lcoeff(eq2); tcoeff(式) 多項式に含まれる最 低次の係数を求める tcoeff(eq2);

(46)

その他の式操作(2)

コマンド 説明 入力例 degree(式)   多項式の最高次数を 求める degree(eq2); ldegree(式)   多項式の最低次数を 求める ldegree(eq2);  

(47)

•  代数方程式を解くには

solveコマンド、も

しくは

fsolveコマンドを使用する。  

solve(方程式,  解く変数)

: 厳密解を求め

る。

 

fsolve(方程式,解く変数)

: 近似解を求め

る。

 

代数方程式を解く

(48)

•  順に入力して確かめてみよう。

 

 (例)代数方程式を解く(1)

入力 説明 eq1  :=  3*x^2  +  8*x  +  4;   solve(eq1,  x);   eq1の厳密解を求める fsolve(eq1,  x);   eq1の近似解を求める 式に小数点が含まれる場合、solveコマンドでも近似解を返す eq2  :=  3*x^2  +  8*x  +  4.0;   solve(eq2,  x); eq2の近似解を求める

(49)

(例)代数方程式を解く(2)

入力 説明 eq3  :=  4*x  +  2*y  =  4;   eq4  :=  2*x  +  3*y  =  3;   このような連立方程式も   解くことができる。

solve({eq3,  eq4},  {x,  y});   引数(括弧の中身)を集合{}を使

用して入力する。 fsolve({eq3,  eq4},  {x,  y});  

解に複素数が含まれる場合、  

3つ目の引数にcomplexと指定する。 eq5  :=  2*x^2  +  1;  

(50)

•  漸化式を解くには

rsolveコマンドを使用

する。 

rsolve(漸化式,  初期条件)  

漸化式を解く(1)

入力 説明

eqs1  :=  {a(n+1)=a(n)+4,  a(0)=1};   等差数列の漸化式を解く。

rsolve(eqs1,  a(n));  

eqs2  :=  {a(n+1)=p*a(n)+q};   漸化式に変数が含まれて

いる場合も解ける。 rsolve(eqs2,  a(n));

(51)

•  フィボナッチ数列を解いてみよう。

 

参考(

hnp://ja.wikipedia.org/wiki/

フィボナッチ数

 

漸化式を解く(2)

F

0

= 1

F

1

= 1

F

n+2

= F

n

+ F

n+1

(

n ≥ 0

)

"

#

$

%

$

(52)

漸化式を解く(3)

入力

fibo  :=  {f(n)=f(n-­‐1)+f(n-­‐2),  f(0)=1,  f(1)=1};   rsolve(fibo,  f(n));  

(53)

• 

Mapleでは2次元、3次元のグラフを

描くことができる。

 

 

plot  

: 二次元プロットを作成する。

 

plot3d  

: 三次元プロットを作成する。

 

グラフを描く

(54)

•  二次元のグラフを描く

 

plot(

関数

,  

変数名

=

下限

..

上限

)

 

•  複数の関数を重ね書きする  

plot([

関数

1,  

関数

2],  

変数名

=

下限

..

上限

)  

 

※標準では相対軸でのプロットを作成する。

 

絶対軸として確認する場合は

オプション

を追加す

る。

 

plot(

関数

,  

変数

=

下限

..

上限

,  scaling=constrained

);  

 

 

 

 2次元プロット(1)

(55)

•  媒介変数のプロットを作成する

 

plot([横軸の関数,  縦軸の関数,  変数名=

下限

..上限)

 

•  座標点のプロットを作成する

 

座標点のリスト

:=  [[x1,y1],  [x2,y2],[x3,y3]];  

plot(座標点のリスト);  

 

 2次元プロット(2)

(56)

•  入力して確認してみよう

 

 (例)2次元プロット

入力 説明

plot(sin(x),  x=0..10);   y  =  sin(x)  (0≦x≦10)  の   グラフを描く

plot([sin(x),  sin(x)^2],  x=0..10);   y  =  sin(x)とy  =  sin(x)^2の   グラフを重ね書きする

plot([t,  sin(t),  t=0..10]); x  =  t  (0≦t≦10),  y  =  sin(t)の   グラフを描く

points  :=  [[1,3],  [2,4],  [3,7],  [4,5]];   plot(points);

座標点のリストを作成  

(57)

•  三次元のグラフを描く

 

plot3d(関数,  横軸の範囲,  縦軸の範囲)

 

•  複数の関数を重ね書きする

 

plot([関数1,  関数2],横軸の範囲,  縦軸の

範囲

)  

 

 3次元プロット(1)

(58)

•  重ね書きしたプロットの色を変更する

 

plot([関数1,  関数2],横軸の範囲,  縦軸の

範囲

,  color=[

1,  

2])

 

•  媒介変数のプロットを作成する

 

plot3d([横軸の関数,  縦軸の関数,  高さの

関数

],  変数1の範囲,  変数2の範囲)  

 3次元プロット(2)

(59)

•  入力して確認してみよう

 

 (例)3次元プロット

入力 説明 plot3d(sin(x)*cos(y),  x=0..10,   y=0..10);   sin(x)*cos(y)の  グラフを描く plot3d([sin(x)*y,  x+cos(y)],    

x=0..3,  y=0..3);   sin(x)*y  と  x*cos(y)の  グラフを重ね書きする plot3d([sin(x)*y,  x+cos(y)],    

x=0..3,  y=0..3,  color=[red,  blue]);

sin(x)*yを赤、  x*cos(y)を青で描く   plot3d([t,  s,  sin(t)*cos(s)],    

(60)

•  グラフをクリックするとグラフオプションを

変更するメニューバーが表示される。

 

plot  

 

3dplot  

 

 

色々と変更してみよう。

 

 グラフのオプション

(61)

•  微分するには、

diffコマンドを使用する。  

diff(数式,  変数)

: 指定した変数で微分す

る。

 

Diff(数式,  変数)

: 微分を計算しない数式

の形式のまま扱う。このとき、

value(変数)

で解を求めることが出来る。

 

微分(1)

(62)

•  複数回微分する場合や複数の変数で微

分する場合は、変数をカンマで区切って

追加する。

 

 

diff(数式,  変数1,  変数1)

: 指定した変数

で2階微分する。

 

diff(数式,  変数1,  変数2)

: 変数

1と変数2

で微分する。

 

微分(2)

(63)

•  区分関数の微分をすることができる。

 

変数

A  =  piecewise(区間1,  値1or関数1,  区

2,  値2or関数2)

: 区分関数を定義する。

 

(※最後の値または関数の区間を指定しなかった場合、 otherwise(前の区間以外)として扱われる)  

diff(変数A,  変数x)

: 区分関数の変数

Aを

変数

xで微分する  

微分(3)

(64)

 (例)微分

入力 説明

diff(x^2,  x);   x^2をxで微分する

diff(sin(x)*x,  x);   sin(x)*xをxで微分する

diff(ln(x),  x,  x); log(x)をxで2階微分する

diff(sin(x*y),  x,  y); sin(x*y)をxとyで微分する

peq  :=  piecewise(x<0,  sin(x),  cos(x));  

diff(peq,  x); 区分関数区分関数peqを定義  peqをxで微分する

deq  :=  Diff(x^2+x,  x);   value(deq);  

微分を計算しない形式で表示  

(65)

•  積分するには定積分、不定積分ともに

intコ

マンドを使用する。

 

• 

Mapleの不定積分では、任意定数は解に含

まれない。

 

int(数式,  変数)

: 指定した変数で不定積分を

行う。

 

int(数式,  変数  =  下限..上限)

: 指定した変数

と区間で定積分を行う。

 

積分(1)

(66)

•  複数回積分する場合は

intコマンドをさらに

入力する必要がある。

(微分の

diff

とは違う

ので注意!)

 

int(int(数式,  変数1),  変数1)

: 指定した変数で

2回積分する。

 

Int(数式,  変数)

: 積分を計算しない数式の形

式のまま扱う。微分同様、

value(変数)

で解を

求めることが出来る。

 

 

積分(2)

(67)

•  微分同様、区分関数の積分をすること

ができる。

 

変数

A  =  piecewise(区間1,  値1or関数1,  区

2,  値2or関数2)

: 区分関数を定義する。

 

 

int(変数A,  変数x)

: 区分関数の変数

Aを

変数

xで積分する  

(68)

(例)積分(1)

入力 説明 int(x^2,  x);   x^2を積分する(不定積分) int(x^2,  x=1..3);   x^2を1≦x≦3の区間で   積分する(定積分) int(x^2,  x=a..b); 積分範囲に変数を   指定することもできる peq  :=  piecewise(x<0,  sin(x),  cos(x));  

int(peq,  x);

区分関数peqを定義  

(69)

 (例)積分(2)

入力 説明 deq  :=  Int(x^2+x,  x);   value(deq);   積分を計算しない形式で表示 deqの解を求める int(ln(x),  x);   log(x)の不定積分 int(int(ln(x),  x),  x);   log(x)をさらに積分する

(70)

•  極限を行うには、

limitコマンドを使用す

る。

 

limit(数式,  変数=値,  オプション)

: 

(変数)

(値)に近づくときの(数式)の極限値を計

算する。

(※無限大は

infinityと記述する)  

オプションに

right

または

ler

を指定すること

で右極限、左極限を求めることができる。

 

極限

(71)

•  入力して確認してみよう

 

(例)極限

入力 説明 limit(sin(x)/x,  x=0);     eq  :=  (2*x^2+x-­‐3)/(x^2-­‐2*x+1);   limit(eq,  x=infinity);   limit(1/x,  x=0,  right); 右極限を求める limit(1/x,  x=0,  ler); 左極限を求める x→0

lim

sin(x)x x→∞

lim

2x 2 + x − 3 x2 − 2x +1

(72)

•  級数展開するには

seriesコマンドを使用

する。

 

series(数式,  変数=展開点)

: 

6次までの多

項式に級数展開する。

 

series(数式,  変数=展開点,  次数)

: 指定し

た次数まで展開する

 

級数展開(1)

(73)

(例)級数展開

入力 説明

eq1  :=  series(sin(x),  x=0);   sin(x)を級数展開

eq2  :=  series(sin(x),  x=0,  8);   8次までの多項式に級数展開

 

↓級数展開した結果のグラフを作成する↓  

peq1  :=  convert(eq1,  polynom); plotの前にconvertで剰余項を 取り除く必要がある

(74)

•  数値積分とは・・・与えられた関数の定

積分の値を数値的に求める。

 

evalf(Int(数式,  範囲))

: 数値積分を行う

 

 

その他、様々な数値積分の手法を指定す

ることができる。

 

数値積分

(75)

(例)数値積分

入力 説明 evalf(Int(sin(x),  x=0..1));   sin(x)の0≦x≦1の範囲の積分 を数値的に求める evalf(Int(eq1,  x=0..1,  digits=20,   method=_Dexp));   指数関数法 evalf(Int(eq1,  x=0..1,  digits=20,   method=_Gquad)); ガウス求積法 evalf(Int(eq1,  x=0..1,  digits=20,   method=_NCrule)); ニュートン・コーツ法

(76)

•  常微分方程式を入力するには

diff  

コマ

ンドを使用する。

 

dsolve(微分方程式,  求める関数):

 微分

方程式を解く

 

 

常微分方程式

入力 説明 deq  :=  diff(f(x),  x);            と入力する dsolve(deq,  f(x));   f(x)を求める  

d

dx

f (x)

(77)

•  微分方程式の初期条件等の条件を指定し

ない場合、任意定数を含む一般解を求める。

 

•  必要な条件を定義することで任意定数を含

まない一般解を求めることができる。

 

dsolve({微分方程式,  初期条件},  求める関数)

: 

初期条件を定義して任意定数を含まない一般

解を求める。

 

常微分方程式の一般解

(78)

 (例)常微分方程式の一般解

入力 説明

deq  :=  diff(f(x),  x)  =  x*f(x);   微分方程式を定義する

ini  :=  f(0)  =  1;   初期条件iniを定義する

sol1  :=  dsolve({deq,  ini},  f(x)); 初期条件を使用して   微分方程式を解く

sol2  :=  dsolve({deq,  ini},  numeric); numericオプションを指定すると

数値解を求めることができる

sol2(1.5); 適当な値を入力して  

(79)

•  偏微分方程式を入力するには、常微分

方程式同様

diff  

コマンドを使用する。

 

pdsolve(微分方程式,  求める関数):

 偏微

分方程式を解く

 

 

偏微分方程式

入力 説明 pdeq  :=  diff(f(x,y),  x);             を入力

pdsolve(pdeq,  f(x,y));   f(x,y)を求める  

(80)

•  偏微分方程式は

pdsolve  

コマンドで求めること

ができる。

 

•  変数分離のヒントを与えることで他の解を求め

ることもできる。

 

• 

buildオプションで解を組み立てた形式で求める  

pdsolve(

微分方程式

,  

求める関数

,  

ヒント

,  build)  

 

: 偏微分方程式を解く

 

偏微分方程式の一般解

(81)

 (例)偏微分方程式の一般解

入力 説明

pdeq1  :=  diff(f(x,y),  x)  =  4*diff(f(x,y),  y);   偏微分方程式を定義 する  

 

pdsolve(pdeq1,  f(x,y));   偏微分方程式を解く

pdsolve(pdeq1,  f(x,y),  HINT=g(x)+h(y),  build); 変数分離のヒントを  

与えて解く  

∂x

f (x, y) = 4

(82)

 (例)偏微分方程式の数値解

入力 説明

pdeq2  :=  diff(f(x,t),  x)  =  -­‐0.3*diff(f(x,t),  t);   偏微分方程式を定義

ini2  :=  {f(x,0)=sin(x),  f(0,t)=-­‐sin(t)};   x,tの初期条件を定義 pds1  :=  pdsolve(pdeq2,  ini2,  

numeric,  vme=t,  range=0..1);

numericオプションを指定して実行 (モジュール形式で出力) p1:=pds1:-­‐plot(t=0,  color=red):   p2:=pds1:-­‐plot(t=1,color=blue):   p3:=pds1:-­‐plot(t=2,color=green):   plots[display](p1,  p2,  p3);     tが変化するときの   2次元プロットを作成 pds1:-­‐plot3d(t=0..1,  axes=boxed);   3次元プロットを作成

(83)

•  数式を

LaTeX形式に変換するには

latex

マンドを使用する。

 

LaTeX形式への変換

入力 説明

eq  :=  sin(x)  /  cos(x);  

latex(eq);   LaTeX形式に変換

deq  :=  Diff(sin(x),x)  =  diff(sin(x),x);   latex(deq);  

参照

Outline

関連したドキュメント

非自明な和として分解できない結び目を 素な結び目 と いう... 定理 (

Maurer )は,ゴルダンと私が以前 に証明した不変式論の有限性定理を,普通の不変式論

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

Maurer )は,ゴルダンと私が以前 に証明した不変式論の有限性定理を,普通の不変式論

事業セグメントごとの資本コスト(WACC)を算定するためには、BS を作成後、まず株

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

しかし , 特性関数 を使った証明には複素解析や Fourier 解析の知識が多少必要となってくるため , ここではより初等的な道 具のみで証明を実行できる Stein の方法