文字計算例

 

MATLABと異なり=は等号です。

x=2;x

x = 2
x

数値の定義は:=を使います。

x:=2;x

2
2

代入をやめるときはdeleteを使います。SHIFT+Enterで改行できます。

x:=1:y:=z:=2:[x,y,z];
delete x,y:[x,y,z];

[1, 2, 2]
[x, y, 2]

展開するときはexpand、因数分解はfactorを使います。

[(x+1)^3,expand((x+1)^3),factor(x^3-1)];

[(x + 1)^3, x^3 + 3*x^2 + 3*x + 1, (x - 1)*(x^2 + x + 1)]

連分数と三角関数をsimplifyを使って簡単にしました。

f:=1/(2+x/(3+x/(4+x))):f;simplify(f);
f:=cos(x)^2+sin(x)^2:f;simplify(f);
delete f;

1/(x/(x/(x + 4) + 3) + 2)
(4*(x + 3))/(x^2 + 12*x + 24)
cos(x)^2 + sin(x)^2
1

三角関数の公式です。simplifyとexpandを使いました。

f:=sin(x)*cos(y)+cos(x)*sin(y):f=simplify(f);
f:=cos(x+y):expand(f)=f;

cos(x)*sin(y) + cos(y)*sin(x) = sin(x + y)
cos(x)*cos(y) - sin(x)*sin(y) = cos(x + y)

分数の通分はsimplify以外にnormalを使うことがあります。

f:=1/(x+1)+1/(y-1);simplify(f);normal(f);delete f;

1/(x + 1) + 1/(y - 1)
(x + y)/((x + 1)*(y - 1))
-(x + y)/(x - y - x*y + 1)

2つ以上の分数に分けるにはpartfracを使います。

f:=1/(x^3-1):f=partfrac(f);

1/(x^3 - 1) = 1/(3*(x - 1)) - (x/3 + 2/3)/(x^2 + x + 1)

式の代入はsubsか|を使います。。

f:=a*x^2+b*x+c;subs(f,x=y);f|x=0;
g:=a*x^2+b*y^2+c;subs(g,x=1,y=2);g|(x=2,y=1);

a*x^2 + b*x + c
a*y^2 + b*y + c
c
a*x^2 + b*y^2 + c
a + 4*b + c
4*a + b + c

関数の定義は:=と->を使います。

f:=x->a*x^2+b*x+c;
g:=(x,y)->a*x^2+b*y^2+c;

x -> a*x^2 + b*x + c
(x, y) -> a*x^2 + b*y^2 + c

関数の引数への代入は( )に数値・文字を入れるだけです。その他の文字にはsubsまたは|を使います。

f(y);g(1,2);subs(g(1,2),a=2);g(1,2)|a=2;

a*y^2 + b*y + c
a + 4*b + c
4*b + c + 2
4*b + c + 2

複雑な関数は手続きprocedureを使います。

myProc:=proc(x,y,z)
begin
  if x>y then
    if y>z then [x,y,z]
    else
      if x>z then [x,z,y]
      else [z,x,y]
      end_if
    end_if
  else
    if x>z then [y,x,z]
    else
      if y>z then [y,z,x]
      else [z,y,x]
      end_if
    end_if
  end_if
end_proc:
myProc(1,2,3);myProc(22/7,PI,(2143/22)^(1/4));

[3, 2, 1]
[22/7, PI, (22^(3/4)*2143^(1/4))/22]

%を使うと直前の結果を使うことができます。

float(%)

[3.142857143, 3.141592654, 3.141592653]