Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка Maple, Стребуляев

.pdf
Скачиваний:
297
Добавлен:
27.03.2015
Размер:
1.24 Mб
Скачать

> allvalues(%);

b

b2 4 a

b

b2 4 a

b

b2 4 a

b

b2 4 a

 

{y

 

 

, x

 

 

}, {y

 

 

, x

 

 

}

 

2

 

2

 

2

 

2

2

 

2

 

2

 

2

 

 

> restart: with(plots):

Warning, the name changecoords has been redefined

> z1:=2*x+4*y-6;

z1 := 2 x 4 y 6

> z2:=y+(1/x)-1;

z2

1

:= y 1

 

x

> eqs:={z1,z2};

eqs

 

 

1

 

 

:= {2 x 4 y 6, y 1 }

 

 

 

 

x

 

> r:=solve(eqs,[x,y]);

 

1

 

 

 

 

 

 

r :=

 

[x -1, y 2 ],

 

x 2, y

 

 

 

2

 

 

 

 

 

 

> # Проверка правильности полученного решения; > eval(eqs,r[1]);

{0}

> eval(eqs,r[2]);

{0}

> implicitplot(eqs,x=-10..10,y=-

10..10,thickness=3,color=blue);

># Решение системы нелинейных уравнений {x^2- y^2=1,x^2+xy=2};

>eqq:={x^2-y^2=1,x^2+x*y=2};

61

eqq := {x2 y2 1, x2 y x 2 }

> _EnvExplicit:=true;

_EnvExplicit := true

> ss:=solve(eqq,{x,y});

2

3

3

 

2

3

 

3

 

ss := {x

3

, y 3

}, {x

 

 

, y

 

}

 

3

3

> simplify(ss[1]);

2

3

3

 

{x

3

, y 3

}

> simplify(ss[2]);

{x 2 3 3 , y 33 }

># Решение тригонометрического уравнения {5sin(x) +12cos(x)=13};

>_EnvAllSolutions:=true:

>solve(5*sin(x)+12*cos(x)=13,x);

 

5

 

5

 

arctan

 

 

2 _Z1~, arctan

 

 

2 _Z2~

 

 

 

12

 

12

 

 

 

 

 

 

> evalf(%);

0.3947911197 6.283185308_Z1~, 0.3947911197 6.283185308_Z2~

Решение неравенств: > restart:

> solve(5*x>0,x);

RealRange(Open(0 ), )

> solve(5*x>=10,x);

RealRange(2, )

> solve(a*x>b,{x});

{ signum(a ) x signum(a ) b } a

>restart:

>eqns:=abs(z)^2/(z+1)<exp(2)/(exp(1)-1);

eqns :=

 

z

 

2

 

e2

 

 

 

 

 

 

 

z 1

 

 

e 1

> AA:=solve(eqns,{z});

62

 

 

2

2

2

2

e 4 e

2

 

2

(e

2

2

2

e 4 e

2

 

 

 

 

1 e (e

 

) 4 e

 

 

 

1 e

 

) 4 e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AA :=

 

z

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

z

, {z -1}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

e 1

 

 

 

 

2

 

 

 

e 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

> evalf(AA);

{z 5.137320995, -0.8370624580 z }, {z -1.}

>restart:

>eqns:=exp(x)*x^2>=1/2;

eqns := 12 ex x2

> SS:=solve(eqns,{x});

 

 

2

 

 

 

2

 

2

SS := {2 LambertW

-1,

 

x, x 2 LambertW

 

 

 

}, {2 LambertW

 

 

 

 

 

 

4

 

 

 

4

 

 

4

 

 

 

 

 

 

 

>evalf(SS);

{-2.617866616 x, x -1.487962064}, {0.5398352768 x}

>restart:

>eqns:=abs((z+abs(z+2))^2-1)^2=9;

x}

eqns := (z z 2 )2 1 2 9

> solve(eqns,{z});

{z 0 }, {z -2}

Решение систем неравенств:

> eqns:={x^2<=1,y^2<=1,x+y<1/2};

 

2

1

2

eqns := {y

1, x y

, x 1 }

 

 

2

 

> solve(eqns,{x,y});

 

 

 

 

1

 

 

 

{x y

, -1 x, x 1, -1 y, y 1}

2

 

 

 

>solve({x*y*z>0,x>-1,y+z>10},{x,y,z});

{z 0, 10 y, -1 x}, {10 z, y 0, -1 x}

>{z = 0, 10 < y, -1 < x}, {10 < z, y = 0, -1 < x};

{z 0, 10 y, -1 x}, {10 z, -1 x, y 0}

># Отображение областей, представленных системой неравенств;

>restart:

>with(plots):

63

> inequal({x+y>-1,x-y<=1,y<=2+0.1*x},x=-4..4,y=-4..4,op- tionsfeasible=(color=magenta),optionsopen=(color=blu e,thickness=2),optionsclosed=(color=black,thickness= 3),optionsexcluded=(color=yellow));

>

> inequal({0<y,y<4,y/2+1<x,x<7-y},x=-4..10,y=0..4,op- tionsfeasible=(color=magenta),optionsopen=(color=blu e,thickness=2),optionsclosed=(color=black,thickness= 3),optionsexcluded=(color=yellow));

1.8. Анализ функций

При выполнении курсовых, дипломных и научно-исследовательских работ приходится проводить анализ поведения функций. В некоторых случаях

— это сложная и трудоемкая процедура. Автоматизировать этот процесс возможно с помощью предлагаемых ниже функций.

Поиск экстремумов функций:

> restart: with(plots):with(linalg):

64

># Используем функцию extrema(expr,constrs,vars,'s'), где expr - вид функции, constr - ограничения,varsаргументы функции, s - найденная абсцисса точки экстремума;

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

y:= x a x2 b x c

>extrema(y(x),{},x,'s');# при отсутствии ограничений записывается пустой список {};

{

b2 4 c a

}

 

4 a

 

> s;subs(x=s,y(x));

{{x 2ba }}

2

a {{x 2ba }} b {{x 2ba }} c

>

> extrema(x*exp(-x),{},x,'s');evalf(%);

{e(-1) }

{0.3678794412}

> s;

{{x 1 }}

> plot(x*exp(-x),x=0..3);

>evalf(extrema(sin(x)^2,{},x,'s'));s;

{0., 1.}

65

{{x }, {x 0 }}

2

> plot(sin(x)^2,x=-Pi..Pi);

Поиск минимума или максимума функции от двух переменных:

>restart: with(plots):

>z[1]:=(x,y)->x^2-3*x+y^2+3*y+3;

z1 := (x, y) x2 3 x y2 3 y 3

> minimize(z[1](x,y));

-3

2

> minimize(z[1](x,y),location);

-3

, {

3

-3

 

-3

 

 

 

{x

, y

},

 

}

 

 

2

 

2

2

 

2

 

 

 

 

 

 

> plot3d(z[1](x,y),x=-5..5,y=-

5..5,color=blue,thickness=1,axes=boxed);

> z[2]:=(x,y)->sin(y)*exp(-x);

66

z2 := (x, y) sin(y) e( x)

> maximize(z[2](x,y));

> maximize(z[2](x,y),location);

, {

{y

1

2 _Z3, x },

}

 

 

2

 

 

 

 

 

> maximize(z[2](x,y),x=-10..10,y=-10..10,location);

 

10

 

5

 

10

 

 

 

10

 

 

3

 

10

 

e

, {

{x -10, y

}, e

 

,

{y

, x -10}, e

,

{x -10, y

 

}, e

 

}

 

2

 

 

 

2

 

 

 

 

2

 

 

 

 

 

 

 

> evalf(%);

22026.46579, {[{x -10., y 7.853981635}, 22026.46579],

[{x -10., y 1.570796327}, 22026.46579],

[{x -10., y -4.712388981}, 22026.46579]}

>plot3d(z[2](x,y),x=-10..10,y=-10..10,color=blue,thick- ness=1,axes=boxed);

Анализ функций на непрерывность, сингулярность:

>restart:

>iscont(1/x^2,x=-1..1);# is function continue ?;

false

cont

> iscont(1/x^2,x=0..1);

true

67

> iscont(1/x^2,x=0..1,'closed'); false

> iscont(1/x^2,x=-1..1,'closed');

false

> iscont(1/(x+2),x=-1..1);

true

>singular(ln(x)/(x^2-x));

{x 0}, {x 1 }

>singular(tan(x));evalf(%);

{x Z1~

1

}

 

2

{x 3.141592654 _Z1~ 1.570796327}

>singular(1/sin(x));evalf(%);

{x _Z2~ }

{x 3.141592654 _Z2~ }

>singular(x+y+1/x,{x,y});

{x 0, y y}, {x , y y}, {x , y y}, {y , x x}, {y , x x}

Операции с полиномами:

># Выделение коэффициентов полиномa p(x);

>restart:

>p:=a[4]*x^4+a[3]*x^3+a[2]*x^2+a[1]*x+a[0];

p:= a4 x4 a3 x3 a2 x2 a1 x a0

>coeff(p,x);# выделение коэффициента при x^1;

a1

> coeff(p,x^3); coeff(p,x,3); # выделение коэффициента

при x^3;

a3

a3

> coeffs(p,x);# выделение всех коэффициентов по возрас-

танию степени;

a0, a1, a4, a3, a2

> collect(p,x);

68

a4 x4 a3 x3 a2 x2 a1 x a0

># Выделение коэффициентов полиномa q(x,t);

>q:=x^2+2*(t^2)+3*x+4*t+5;

q := x2 2 t2 3 x 4 t 5

> coeffs(q);

5, 3, 4, 1, 2

> coeffs(q,t);

x2 3 x 5, 4, 2

> collect(q,x);

x2 2 t2 3 x 4 t 5

> collect(q,x,t);

t(1 ) x2 t(3 ) x t(5 2 t2 4 t )

># Оценка коэффициентов полинома по степеням;

>restart:

>q:=1/x^2+2/x+3+4*x+5*x^2;

 

1

2

q :=

 

3 4 x 5 x2

x2

 

x

> lcoeff(q,x);# коэффициент при старшей степени x;

5

> lcoeff(q,x,'t'); t;

5

x2

> coeffs(q,x,'t');t;

3, 1, 4, 5, 2

1, x12 , x, x2, 1x

>

> p:=a[4]*x^4+a[3]*x^3+a[2]*x^2+a[1]*x+a[0];

p:= a4 x4 a3 x3 a2 x2 a1 x a0

>degree(p,x);# Высшая степень полинома;

4

> ldegree(p,x);# Низшая степень полинома;

0

69

># Разложение полинома по степеням;

>restart:

>evala(AFactor(2*x^2+4*x-6));

2(x 3 ) (x 1 )

>evala(AFactor(x^2+2*y^2));

(x RootOf(_Z2 2) y) (x RootOf(_Z2 2) y)

>expand((x-1)*(x-2)*(x-3)*(x-4));

x4 10 x3 35 x2 50 x 24

> AFactor(%);

AFactor(x4 10 x3 35 x2 50 x 24)

> evala(%);

(x 1) (x 2) (x 3 ) (x 4)

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

x3 x2 3 x x2 I 2 I x 9 3 I

> evala(AFactor(x^2-2*y^2));

(x RootOf(_Z2 2) y) (x RootOf(_Z2 2) y)

># Вычисление корней полинома;

>restart:

>p:=x^4+9*x^3+31*x^2+59*x+60;

p := x4 9 x3 31 x2 59 x 60

> solve(p,x);# все корни полинома;

-3, -4, -1 2 I, -1 2 I

> roots(p,x);# вещественные корни полинома с учетом

кратности;

[[-4, 1 ], [-3, 1 ]]

>expand((x-1)*(x-2)*(x-3)*(x-4));

x4 10 x3 35 x2 50 x 24

> roots(%,x);

[[1, 1 ], [2, 1 ], [3, 1 ], [4, 1 ]]

># Основные операции с полиномами;

>restart:

>readlib(psqrt);# подключение библиотек;

proc(p) ... end proc

70