Equals

等号(Equals)

等号の意味

等号は,数学でいろいろな意味を持つことを中学校で学ぶ.それぞれの状況による意味の違いを人間は適当に判断できるが,プログラムであるMapleでは無理.Mapleでは,それぞれ違った記号や操作として用意され,人間がMapleに指示する必要がある.

変数への代入:= (colonequal)

変数に値を代入する時には:= (colonequal)を使う.例えば,

a=3, b=2のとき,a+bはいくらか?

という問題を,Mapleで解かす時には,

aに3, bに2を代入したとき,a+bはいくらか?

と読み直し,

> a:=3; #res: 3
> b:=2; #res: 2
> a+b;  #res: 5

式の定義も同様.以下は$ax+b=cx^2+dx+e$という式をeq1と定義している.

> eq1:=a*x+b=c*x^2+d*x+e;
$$ 3x+2=cx^2+dx+e $$

a,bに値が代入されていることに注意.

変数の初期化(restart)

一度何かを代入した変数を何も入れていない状態に戻す操作を変数の初期化という.すべての変数を一度に初期化するには,

> restart;

とする.なにか新たなひとまとまりの作業をするときには,このコマンドを冒頭に入れることを習慣づけるように.

作業の途中でひとつの変数だけを初期化するには,シングルクォート’でくくる.

> a:='a';
$$ a $$

一時的代入にsubsがある.

方程式の解(solve)

3x=2を満たすxをもとめよ.

という問題は,

> solve(3*x=2,x);
$$ \frac{2}{3} $$

連立方程式は以下のとおり.

> solve({x+y=1,x-y=2},{x,y});
$$ \left\{x = \frac{3}{2}, y = -\frac{1}{2} \right\} $$

ただし,solveだけでは,x,yに値は代入されない.

> sol1:=solve({x+y=1,x-y=2},{x,y});
> assign(sol1);
$$ sol1 := \left\{x = \frac{3}{2}, y = -\frac{1}{2} \right\} $$

とする必要がある.確認してみると

> x,y;
$$ \frac{3}{2},-\frac{1}{2} $$

となり,値が代入されていることがわかる.

方程式の数値解(fsolve)

解析的に解けない場合は,数値的に解を求めるfsolveを使う.上でxにassignしているので,xを初期化している.

> x:='x';
> fsolve(log(x)-exp(-x),x);
$$ x := x \notag \\ 1.309799586 \notag $$

恒等式(Identity)

式の変形にも等号が使われる.例えば,

$$ (x-2)^2=x^2-4x+4 $$

というのが等号で結ばれている.式の変形とは,変数$x$がどんな値であっても成り立つ恒等的な変形である.

この式変形も,問題としては,

(x-2)^2を展開(expand)せよ

と与えられるので,そのままMapleコマンドに読み替えて

> expand( (x-2)^2 );
$$ x^2-4x+4 $$

とすればよい.因数分解(factor)や微分(diff)・積分(int)も同様に等号で結ばれるが,Mapleには操作を指示する必要がある.詳しくは他の単元で.

等号についての課題

  1. a=3, b=4としてa,bの四則演算をおこなえ.また,べき乗$a^b$を求めよ.
  2. eq1=3*x+4=2*x-2, a=2とした場合のeq1/a,eq1+aを試し,両辺を観察せよ.
  3. 3点(1,2),(-3,4),(-1,1)を通る2次方程式を求めよ.
  4. 方程式$\sin(x+1)-x^2=0$の2つの解をfsolveのヘルプを参照して求めよ.

Equals

  1. a=3, b=4としてa,bの四則演算をおこなえ.また,べき乗$a^b$を求めよ.
> a:=3:
> b:=4:
> a+b;a-b;a*b;a/b;a^b;      #省略
  1. eq1=3*x+4=2*x-2, a=2とした場合のeq1/a,eq1+aを試し,両辺を観察せよ.
> eq1:=3*x+4=2*x-2;
> a:=2;
> eq1/a;
> eq1+2;
$$ eq1:=3x+4=2x-2 \notag \\ a:=2 \notag \\ \frac{3}{2}x+2 = x-1 \notag \\ 3x+6=2x $$
  1. 3点(1,2),(-3,4),(-1,1)を通る2次方程式を求めよ.

まず2次関数を定義する.

> restart;
> f:=x->a*x^2+b*x+c;
$$ f := x \mapsto ax^2+bx+c $$

(1,2)を通ることから,f(1)=2が成立.これをeq1として保存.

> eq1:=f(1)=2;
$$ eq1 := a+b+c=2 $$

他の点も同様に

> eq2:=f(-3)=4;
> eq3:=f(-1)=1;
$$ eq2\, := \,9\,a-3\,b+c=4 \notag\\ eq3\, := \,a-b+c=1 \notag $$

この3個の連立方程式から,a,b,cを求めれば解となる.

> solve({eq1,eq2,eq3},{a,b,c});
$$ \left\{ a=1/2,b=1/2,c=1 \right\} $$
  1. 方程式$\sin(x+1)-x^2=0$の2つの解をfsolveのヘルプを参照して求めよ.

まず,2つの関数とみなしてプロット.

> plot([sin(x+1),x^2],x=-1..1);
Equalsplot2d1.png

解が2つあることに注意.与えられた関数値が0となる方程式として定義し,これをsolveでとく.

> eq1:=sin(x+1)-x^2=0;
> solve(eq1,x);
$$ eq1 := \,\sin \left( x+1 \right) -{x}^{2}=0 \notag\\ -1+{\it RootOf} \left( -\sin \left( {\it \_Z} \right) +1-2\,{\it \_Z}+{{\it \_Z}}^{2} \right) \notag $$

これでは解を求めてくれないので,fsolveで数値解を求める.

> fsolve(eq1,x);
$$ 0.9615690350 $$

これではxの負にあるもう一つの解がでない.これを解決するには,fsolveでxに初期値を入れて実行する.

> fsolve(eq1,x=-1..0);
$$ -.6137631294 $$
Last modified:2016/08/01 17:49:55
Keyword(s):
References:[MaplePrime] [MaplePrimeTOC] [MapleProgram] [MapleProgramTOC] [MapleProgrammingTOC] [SideMenu]