Podstawy programu MAPLE

8. Wyrażenia algebraiczne

8.1. Rozwijanie wyrażeń

Wyrażenia algebraiczne, trygonometryczne, logarytmiczne i inne rozwijamy przy pomocy funkcji expand(f), na przykład:

> expand((x-1)*(x+2));

                                   2
                                  x  + x - 2

> expand((x-a-b)*(x+2));

                        2
                       x  + 2 x - a x - 2 a - b x - 2 b


8.2. Rozwijanie z warunkami

Podając dodatkowe wyrażenia jako kolejne argumenty funkcji expand zapobiegamy ich rozwijaniu. Porównaj:

> expand((x+y)*(u-w^2));

                                     2            2
                            x u - x w  + y u - y w

> expand((x+y)*(u-w^2),u-w^2);

                                  2            2
                            (u - w ) x + (u - w ) y


8.3. Upraszczanie wyrażeń

Funkcja normal(f) upraszcza wyrażenia wykonując na przykład redukcję wyrazów podobnych i skracanie, na przykład:

> normal(a*b-a*(b+1));

                                      -a

> normal((a^3-b^3)/(a-b));

                                  2          2
                                 a  + a b + b

> normal(x/(x+1) + 1/x + 1/(1+x));

                                     x + 1
                                     -----
                                       x


8.4. Upraszczanie wyrażeń

Funkcja simplify(f) upraszcza wyrażenia wykonując odpowiednie prawa działań, na przykład:

> simplify((2^3)^2-sqrt(4*7-19));

                                      61

> simplify(((x+y)^2*(x-y)^3)^2);

                                      4        6
                               (x + y)  (x - y)

Dodatkowy argument wskazuje na rodzaj wyrażeń:

> simplify(cos(x)^2-sin(x)^2,trig);

                                         2
                                 2 cos(x)  - 1


8.5. "Kombinowanie" wyrażeń

Funkcja combine(expr,name) służy do przekształcania wyrażenie expr z zastosowaniem reguł określonych jako name. Regułami mogą być: exp, ln, power, Psi, trig. Na przykład wyrażenie ex esin(x) sin4(x) można przekształcać tak: Bez stosowania reguł otrzymujemy:

> combine(exp(x)*exp(sin(x))*sin(x)^4);

3/8 exp(x + sin(x)) + 1/8 exp(x + sin(x)) cos(4 x)

     - 1/2 exp(x + sin(x)) cos(2 x)

3/8 ex+sin(x) + 1/8 ex+sin(x) cos(4x) - 1/2 ex+sin(x) cos(2x). Po wymuszeniu przekształceń ze względu na eksponensy otrzymujemy:

> combine(exp(x)*exp(sin(x))*sin(x)^4,exp);

                                  4
                            sin(x)  exp(x + sin(x))

sin4(x) ex+sin(x). Przekształcając ze względu na funkcje trygonometryczne:

> combine(exp(x)*exp(sin(x))*sin(x)^4,trig);

3/8 exp(x) exp(sin(x)) + 1/8 exp(x) exp(sin(x)) cos(4 x)

     - 1/2 exp(x) exp(sin(x)) cos(2 x)

3/8 ex esin(x) + 1/8 ex esin(x) cos(4x) - 1/2 ex esin(x) cos(2x). No i na koniec jeszcze jeden przykład:

> combine(exp(x)*exp(sin(x))*sin(x)^4,trig,exp);

3/8 exp(x + sin(x)) + 1/8 exp(x + sin(x)) cos(4 x)

     - 1/2 exp(x + sin(x)) cos(2 x)

3/8 ex+sin(x) + 1/8 ex+sin(x) cos(4x) - 1/2 ex+sin(x) cos(2x)


8.6. Obliczanie wartości wyrażenia w punkcie

Weźmy takie wyrażenie:

> w:=(2*a*x^2-3)/(x-a);

                                          2
                                     2 a x  - 3
                                w := ----------
                                       x - a

Możemy obliczyć jego wartość dla zadanej wartości parametru a i/lub w zadanym punkcie x. Ile wynosi wartość tego wyrażenia dla a=0? Aby się tego dowiedzieć trzeba użyć funkcji subs(x1=a1,x2=a2,...,w), która oblicza wartość wyrażenia w z warunkami x1=a1, x2=a2... gdzie xi są zmiennymi (parametrami) wyrażenia w, a ai ich wartościami.

> subs(a=0,w);

                                     - 3/x

A dla dowolnego a i x=5?

> subs(x=5,w);

                                   50 a - 3
                                   --------
                                    5 - a

Możemy też chcieć znać wartość jednocześnie dla a=0 i x=5:

> subs(a=0,x=5,w);

                                     -3/5

Oczywiście równoważne są następujące trzy zapisy:

> subs(a=0,x=5,w);

> subs(x=5,subs(a=0,w));

> subs(a=0,subs(x=5,w));


8.7. Podstawienia

Funkcji subs(x1=a1,x2=a2,...,w) można też używać w celu dokonywania podstawień. Weźmy takie wyrażenie:

> w:=1/2*(3*x^2-5*x);

                                        2
                              w := 3/2 x  - 5/2 x

i dokonajmy trzech (przykładowych) podstawień: cos(t) zamiast x, z zamiast x2 oraz x zamiast x2:

> subs(x=cos(t),w);

                                     2
                           3/2 cos(t)  - 5/2 cos(t)

> subs(x^2=z,w);

                                   3 z   5 x
                                   --- - ---
                                    2     2

> subs(x^2=x,w);

                                      -x


8.8. Określanie precyzji

evalf(1/3+1/4);

                                 0.5833333333

evalf(1/3+1/4,4);

                                    0.5833

[koniec]