Автор: Пользователь скрыл имя, 06 Мая 2013 в 18:29, реферат
Эру создания компьютерной символьной математики принято отсчитывать с начала 60-х годов. Именно тогда в вычислительной технике возникла новая ветвь компьютерной математики, не совсем точно, но зато броско названная компьютерной алгеброй. Речь шла о возможности создания компьютерных систем, способных осуществлять типовые алгебраические преобразования: подстановки в выражениях, упрощение выражений, операции со степенными многочленами (полиномами), решение линейных и нелинейных уравнений и их систем, вычисление их корней и т. д.
ВВЕДЕНИЕ ………………………………………………………………………….3
Глава 1 Основные объекты и функции системы MAPLE ………………………..4
1.Основные объекты и системы…………………………………………………..4
2.Переменные, неизвестные и выражения……………………………………….5
3.Функции системы MAPLE …… ……………………………………………….7
Глава 2 Решение задач линейной алгебры с использованием MAPLE ………….9
2.1 Векторная алгебра……………………………………………………………….9
2.2 Действия с матрицами………………………………………………………….11
2.3 Спектральный анализ матрицы………………………………………………..16
2.4 Системы линейных уравнений и матричные уравнения…………………….19
2.5 Решение обыкновенных уравнений…………………………………………...21
2.6 Решение неравенств……………………………………………………………22
ЗАКЛЮЧЕНИЕ …………………………………………………………………….24
ЛИТЕРАТУРА……………………………………………………………………...25
Глава 2 Решение задач линейной алгебры с использованием MAPLE
Координату уже определенного вектора x можно получить в строке вывода, если ввести команду x[i] , где i - номер координаты. Например, первую координату заданного в предыдущем примере вектора можно вывести так:
> x[1];
1
Вектор можно преобразовать в список и, наоборот, с помощью команды convert(vector, list) или convert(list, vector).
Сложение векторов.
Сложить два вектора a и b можно с помощью двух команд:
1) evalm(a+b);
2) matadd(a,b).
Команда add позволяет вычислять линейную комбинацию
векторов a и b:
, где
- скалярные величины, если использовать
формат: matadd(a,b,alpha,beta)
Скалярное, векторное произведение векторов и угол между векторами.
Скалярное произведение двух векторов вычисляется командой dotprod(a,b).
Векторное произведение двух векторов вычисляется командой crossprod(a,b).
Угол между двумя векторами a и
Норма вектора.
Норму (длину) вектора , которая равна , можно вычислить с помощью командыnorm(а,2).
Можно нормировать вектор а с помощью команды normalize(a), в результате выполнения которой будет получен вектор единичной длины .
Нахождение базиса системы векторов. Ортогонализация системы векторов по процедуре Грамма-Шмидта.
Если имеется система n векторо
При помощи команды GramSchmidt([a1,a2,…,
1. Даны два вектора: и . Найти и угол между a и b. Для решения этой задачи наберите:
> with(linalg):
> a:=([2,1,3,2]); b:=([1,2,-2,1]);
a:=[2,1,3,2]
b:=[1,2,-2,1]
> dotprod(a,b);
0
> phi=angle(a,b);
2. Найти векторное произведение , а затем скалярное произведение , где , .
> restart; with(linalg):
> a:=([2,-2,1]); b:=([2,3,6]);
a:=[2,- 2,1]
b:=[2,3,6]
> c:=crossprod(a,b);
c:=[- 15,- 10,10]
> dotprod(a,c);
0
3. Найти норму вектора .
> restart; with(linalg):
> a:=vector([1,2,3,4,5,6]): norm(a,2);
4. Из системы векторов: , , , , выделить базис и ортогонализовать его по процедуре Грамма-Шмидта:
> restart; with(linalg):
> a1:=vector([1,2,2,-1]):
a2:=vector([1,1,-5,3]):
a3:=vector([3,2,8,7]): a4:=vector([0,1,7,-4]):
a5:=vector([2,1,12,-10]):
> g:=basis([a1,a2,a3,a4,a5]);
g:= [a1, a2, a3, a5]
> GramSchmidt(g);
[[1,2,2,- 1], [2,3,- 3,2], ,
2.2 Действия с матрицами
Определение матрицы.
Для определения матрицы
в Maple можно использовать
команду matrix(n, m, [[a11,a12,…,a1n],
[a21,a22,…,a2m],…, [an1,an2,…,anm]]), где n -
> A:=matrix([[1,2,3],[-3,-2,-
В Maple матрицы специального вида можно генерировать с помощью дополнительных команд. В частности диагональную матрицу можно получить командой diag. Например:
> J:=diag(1,2,3);
Генерировать матрицу
можно с помощью функции f(i, j
> f:=(i, j)->x^i*y^j;
> A:=matrix(2,3,f);
Число строк в матрице А можно определить с помощью команды rowdim(A), а число столбцов – с помощью командыcoldim(A).
Арифметические операции с матрицами.
Сложение двух матриц одинаковой
размерности осуществляется теми же
командами, что и сложение векторов:evalm(A+B) или matadd
В качестве второго аргумента в командах, вычисляющих произведение, можно указывать вектор, например:
> A:=matrix([[1,0],[0,-1]]);
> B:=matrix([[-5,1], [7,4]]);
> v:=vector([2,4]);
> multiply(A,v);
> multiply(A,B);
> matadd(A,B);
Команда evalm позволяет также прибавлять к матрице число и умножать матрицу на число. Например:
> С:=matrix([[1,1],[2,3]]):
> evalm(2+3*С);
Определители, миноры и алгебраические дополнения. Ранг и след матрицы.
Определитель матрицы А вычисля
> A:=matrix([[4,0,5],[0,1,-6],
> det(A);
1
> minor(А,3,2);
> det(%);
-24
> trace(A);
9
Обратная и транспонированная матрицы.
Обратную матрицу А- 1 , такую что А- 1А=АА- 1=Е, где Е - единичная матрица, можно вычислить двумя способами:
Транспонирование матрицы А – это изменение местами строк и столбцов. Полученная в результате этого матрица называется транспонированной и обозначается А'. Транспонированную матрицу А' можно вычислить командойtranspose(A).
Например, используя заданную в предыдущем пункте матрицу А, найдем ей обратную и транспонированную:
> inverse(A);
> multiply(A,%);
> transpose(A);
Выяснение типа матрицы.
Выяснить положительную
или отрицательную
> A:=matrix([[2,1],[1,3]]);
> definite(А,'positive_def');
true
Проверить ортогональность матрицы А можно командой orthog(A).
> В:=matrix([[1/2,1*sqrt(3)/2]
[1*sqrt(3)/2,-1/2]]);
> orthog(В);
true
Функции от матриц.
Возведение матрицы А в степень n производится
командой evalm(A^n). Вычислени
> Т:=matrix([[5*a,2*b],[-2*b,
> exponential(Т);
> evalm(Т^2);
Задание.
> with(linalg):restart;
> A:=matrix([[4,3],[7,5]]):
> B:=matrix([[-28,93],[38,-
> C:=matrix([[7,3],[2,1]]):
> F:=evalm(A&*B&*C);
> Det(A)=det(A); Det(B)=det(B); Det(C)=det(C);
Det(F)=det(F);
Det(A)=- 1
Det(B)=- 6
Det(C)=1
Det(F)=6
> A:=matrix([[2,5,7],[6,3,4],[
> Det(A)=det(A);
Det(A)=- 1
> transpose(A);
> inverse(A);
> det(minor(A,2,2));
- 41
> A:=matrix([[8,-4,5,5,9], [1,-3,-5,0,-7],
[7,-5,1,4,1], [3,-1,3,2,5]]):
> r(A)=rank(A);
r(A)=3
> exponential([[3,-1],[1,1]]);
> A:=matrix([[5,1,4],[3,3,2],[
> P(A)=evalm(A^3-18*A^2+64*A);
Собственные числа и собственные векторы матрицы.
Из курса линейной алгебры известно, что если Ах=l х, то вектор х называется собственным вектором матрицы А, а число l– собственным числом, соответствующим данному собственному вектору. Совокупность всех собственных чисел матрицы называется спектром матрицы. Если в спектре матрицы одно и тоже собственное число встречается k раз, то говорят, что кратность этого собственного числа равна k.
Для нахождения собственных чисел матрицы А используется команда eigenvalues(A). Для нахождения собственных векторов матрицы А используется команда eigenvectors(A). В результате выполнения этой команды будут получены собственные числа, их кратность и соответствующие собственные векторы.
Чтобы понять, в каком
виде получаются результаты выполнения
команды eigenvectors, внимател
> A:=matrix([[3,-1,1],[-1,5,-
> eigenvectors(A);
[2,1,{[-1,0,1]}], [3,1,{[1,1,1]}], [6,1,{[1,-2,1]}]
В строке вывода перечислены
в квадратных скобках собственное
число, его кратность и
Характеристический и минимальный многочлены матрицы.
Для вычисления характеристического многочлена матрицы A используется командаcharpoly(A,lambda).
Минимальный многочлен (делитель) матрицы А можно найти с помощью команды minpoly(A,lambda).
Канонические и специальные виды матрицы.
Привести матрицу А к нормальной форме Жордана можно командой jordan(A).
К треугольному виду матрицу А можно привести тремя способами:
Характеристическую матрицу можно вычислить командой charmat(A,lambda).
Задание.
> U:=matrix([[3,2-I],[2+I,7]])
> eigenvectors(U);
,
> A:=matrix([[3,-I,0],[I,3,0],
> eigenvectors(A);
[2, 1, {([1, - I, 0])}], [4, 2, {([0, 0, 1]), ([- I, 1, 0])}]
> P(lambda):=charpoly(A,
> d(lambda):=minpoly(A,lambda);
> jordan(A);
Информация о работе Решение задач линейной алгебры в системе MAPLE