Материал: Основные математические операции в Maple. методические указания к выполнению лабораторных работ по курсам «Информатика» и «Практикум по информационным технологиям». Кострюков С.А., Пешков В.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2. Решение уравнений

 

Уравнение представляет собой выражение вида

 

f (x) 0 ,

(1)

в котором f (x) – некоторая функция, а x является неизвестной переменной. Решением (корнем) этого уравнения называется всякое число x из области определения f (x), которое, будучи подставлено в уравнение (1), обращает его в тождество. Геометрический смысл корня – это точка пересечения графика функции f (x) с осью Ox.

Решить уравнение – значит найти совокупность (множество) всех его корней. Иногда задача ставится о решении уравнения лишь на каком-либо подмножестве числовой оси x (например, на отрезке), тогда ищется совокупность корней уравнения, принадлежащих этому подмножеству.

Наибольшие сложности вызывает решение нелинейных уравнений. Их можно разделить на два класса – алгебраические и трансцендентные. Алгебраическими называются уравнения, содержащие только алгебраические функции (целые, рациональные, иррациональные). В частности, многочлен (полином) является целой алгебраической функцией. Уравнения, содержащие другие функции (тригонометрические, показательные, логарифмические и др.), называются трансцендентными.

Алгебраические уравнения решаются с помощью функ-

ции solve:

 

 

 

 

 

 

 

 

 

 

 

> solve(x^3-2*x+1,x);

 

 

 

 

 

 

 

 

 

 

1

 

1

 

 

 

1

 

1

 

 

1,

 

 

5,

 

5

2

2

2

2

 

 

 

 

 

 

 

 

Как само уравнение, так и результат можно присвоить переменной:

>eq:= x^4-5*x^2+6*x=2:

>sols:= [solve(eq,x)];

sols := [–1+ 3 , –1– 3 , 1, 1]

6

> sols[1];

–1+ 3

> evalf(sols);

[.732050808, –2.732050808, 1., 1.]

С помощью функции evalf можно вывести результат в численном виде:

> solve(sqrt(ln(x))=2,x); e4

> evalf(");

54.59815003

Символ " (кавычка) в Maple означает последний вычисленный результат (по времени, а не по расположению команд).

Решение полиномиального уравнения:

> solve(x^5-3*x^4+2*x^2-x+3,x);

RootOf(_Z5 – 3 _Z4 + 2 _Z2 – _Z + 3)

> allvalues(");

–1.127479307, .03687403922 – .8565945569 I,

.03687403922 + .8565945569 I, 1.327862375, 2.725868853

Решить трансцендентное уравнение с помощью функции solve, как правило, не удается. Например, график функций ex и sin x показывает наличие бесконечного множества корней уравнения ex = sin x при x < 0:

> plot([exp(x),sin(x)],x=-10..1);

7

Однако solve выдает комплексный корень:

> solve({exp(x)=sin(x)},x);

{x = RootOf(_Z – ln(sin(_Z)))}

> allvalues(");

{x = .3627020561 – 1.133745919 I}

Трансцендентные уравнения решаются приближенно с помощью функции fsolve:

> fsolve(exp(x)=sin(x),x=–4..0);

–3.183063012

Здесь нужно задавать отрезок, на котором расположен корень. Чтобы его найти, перед решением обычно строят график функции. Найдем еще один корень, теперь на отрезке [–7, –4]:

> fsolve(exp(x)=sin(x),x=–7..–4);

–6.281314366

Решение системы алгебраических уравнений:

> solve({x^2*y^2=0, x-y=1});

{y = –1, x = 0}, {y = –1, x = 0}, {x = 1, y = 0}, {x = 1, y = 0}

Для удобства левым частям уравнений системы можно присвоить имена:

>f:=x^7-5*x^2*y^4+1510:

>g:=y^5-3*x^4*y-105:

>s1:=solve({f,g},{x,y}); #Результат решения не приводит-

ся

>evalf(");

{x = –2.844483289, y = –.5348543088}

> allvalues(s1); # Ниже приводится лишь часть результата

{x = –2.844483289, y = –.5348543088}, {y = –2.573256586, x = –2.304767679},

{y =.1857181696+2.786617077 I, x = –2.107398990–.1931448896 I}

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

{x = 15.00039270, y = 19.74216374}

8

Решение системы трансцендентных уравнений тоже обычно начинается с построения графика:

>with(plots):

>implicitplot({sin(x+y)-exp(x)*y=0,x^2-y=2}, x=-3..3, y=-3..3);

Далее вызываем fsolve столько раз, сколько решений оказалось на графике (использовать копирование). Для каждого решения указываем область, в которой оно находится, например:

> fsolve({sin(x+y)-exp(x)*y=0,x^2-y=2},{x,y}, {x=-1..1,y=-2..0});

{x = –.6687012050, y = –1.552838698}

Для решения полиномиальных уравнений можно использовать функцию roots:

> roots(2*x^3+11*x^2+12*x-9);

[[–3, 2], [ 12 , 1]]

В скобках первое число – корень, второе – его кратность.

Задания для самостоятельной работы

1. Решить нелинейные уравнения, предварительно построив графики:

а) 5x3 2x2 x 1 0 ;

б) x6 3x2 1 0 ;

 

 

 

 

 

 

 

 

в) x 1 1/ x 0 ;

 

г) x2

cos 2 x 0 ;

 

д) ch(0,4x) (x 2)2 ;

 

е) e x

6x 3 tg x 0 ,

x [– , ].

 

2. Решить системы уравнений, предварительно построив

графики:

 

 

 

 

а) sin(x y) xy 1,

 

x2 y 2 3 / 4 ;

 

б) x 2 ln x y 2 0,

2x2 xy 5x 1;

 

в) cos(x 5) xy 2.5,

 

ln x y2

3.

 

9

3. Задачи линейной алгебры

Большинство функций, предназначенных для решения задач линейной алгебры, находится в пакете linalg, который требуется подключить:

> with(linalg):

Задание квадратной матрицы 3-го порядка:

> A:=matrix([[2,1,3],[5,1,0],[7,8,9]]);

2

1

3

 

 

 

 

 

5

1

 

A :=

0

 

7

8

 

 

9

Вычисление определителя матрицы:

> det(A);

72

Вычисление минора элемента а21 матрицы:

> minor(A,2,1);

1

3

 

 

 

 

8

 

 

9

Вычисление ранга матрицы:

> rank(A);

3

Вычисление следа матрицы (т.е. суммы диагональных элементов):

> trace(A);

12

Транспонирование матрицы:

> AT:=transpose(A);

2

5

7

 

 

 

 

 

1

1

 

AT :=

8

 

3

0

 

 

9

Вычисление обратной матрицы:

> A1:=inverse(A);

10

Источник: https://studfile.net/preview/16564688/