Методичка Maple, Стребуляев
.pdf> 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