Решение задач линейной алгебры в системе MAPLE
МИНООБРНАУКИ РОССИИ
ФЕДЕРАЛЬНОЕ
Государственное БЮДЖЕТНОЕ
«пензенский государственный университет»
Физико-математический факультет |
Кафедра «Компьютерные технологии» |
КУРСОВАЯ РАБОТА
на тему:
«Решение задач линейной алгебры в системе MAPLE»
Кузина Е.А.
Проверил: к.ф-м.н., доцент Горюнов Ю.Ю.
Оценка:___________
Пенза 2013 г.
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ ………………………………………………………………………….3
Глава 1 Основные объекты и функции системы MAPLE ………………………..4
- Основные объекты и системы…………………………………………………..4
- Переменные, неизвестные и выражения……………………………………….5
- Функции системы MAPLE …… ……………………………………………….7
Глава 2 Решение задач линейной алгебры с использованием MAPLE ………….9
2.1 Векторная алгебра……………………………………………………………
2.2 Действия с матрицами………………………………………………………
2.3 Спектральный анализ матрицы………………………………………………..16
2.4 Системы линейных уравнений и матричные уравнения…………………….19
2.5 Решение обыкновенных уравнений…………………………………………...21
2.6 Решение неравенств……………………………………………………
ЗАКЛЮЧЕНИЕ …………………………………………………………………….24
ЛИТЕРАТУРА……………………………………………………
ВВЕДЕНИЕ
Эру создания компьютерной символьной математики принято отсчитывать с начала 60-х годов. Именно тогда в вычислительной технике возникла новая ветвь компьютерной математики, не совсем точно, но зато броско названная компьютерной алгеброй. Речь шла о возможности создания компьютерных систем, способных осуществлять типовые алгебраические преобразования: подстановки в выражениях, упрощение выражений, операции со степенными многочленами (полиномами), решение линейных и нелинейных уравнений и их систем, вычисление их корней и т. д. При этом предполагалась возможность получения аналитических (символьных) результатов везде, где это только возможно.
Пользователи, работающие с математическими программами, особенно в области символьной математики, в недалеком прошлом не были избалованы удобными и красивыми интерфейсами этих программ. Все внимание было уделено математической корректности программ и богатству их функциональных возможностей.
Заметное развитие получили языки программирования для символьных вычислений Reduce, система muMath для малых ЭВМ, а в дальнейшем — интегрированные системы символьной математики для персональных компьютеров: Maple, MathCad, Mathematicа, Maxima, Scilab и т.д. Тем самым обуславливается актуальность темы, так как применение математических систем облегчает самые сложные математические, статистические и финансово-экономические расчеты, для проведения которых раньше приходилось привлекать научную элиту — математиков-аналитиков.
В этой связи целью работы является изучение основ работы с программой Maple; знать команды, используемые при решении уравнений и их систем, неравенств и их систем в системе аналитических вычислений Maple; уметь применять указанные команды для решения математических задач.
Глава 1 Синтаксис. Основные объекты и функции системы MAPLE
- Основные объекты системы
Система аналитических вычислений Maple – интерактивная система. В данном случае это означает, что пользователь вводит команду или оператор языка Maple в области ввода рабочего листа и, нажав клавишу<Enter>, сразу же передает ее аналитическому анализатору системы, который выполняет ее. При правильном введении команды в области вывода появляется результат выполнения этой команды, если команда содержит синтаксические ошибки или ошибки выполнения, система печатает сообщение об этом. Если ошибку надо исправить, то следует вернуться к оператору, откорректировать его и снова выполнить. Выполнив введенную команду, система ожидает очередной команды от пользователя. Можно вернуться в любой момент к любой команде или оператору на рабочем листе, подкорректировать его и снова выполнить. Однако, если, на рабочем листе есть команда, использующая результат вновь вычисленной, то ее следует также снова вычислить, установив на нее курсор, и, нажав клавишу<Enter>, а если таких команд много, то можно выполнить команду графического интерфейса Edit ®Execute ®Worksheet для повторного вычисления всех команд рабочего листа.
Каждый оператор или команда
обязательно завершаются
В Maple реализован свой язык, с помощью которого происходит общение пользователя с системой. Базовыми понятиями являются объекты и переменные, из которых с помощью допустимых математических операций составляются выражения.
Простейшими объектами, с которыми может работать Maple, являются числа, константы и строки.
- Переменные, неизвестные и выражения
Для освоения всех возможностей Maple необходимо знакомство с переменными и неизвестными величинами. В переменных можно хранить вычисленные значения функций и символьных выражений. Неизвестные величины представляют собой обычные математические неизвестные, когда мы решаем задачу на листке бумаги, и используются для задания символьных выражений Maple.
Каждая переменная Maple имеет имя, представляющее последовательность латинских символов, начинающихся с буквы, причем строчные и прописные буквы считаются различными. Кроме букв в именах переменных могут использоваться также цифры и знак подчеркивания, однако первым символом в имени должна быть буква. Примеры различных имен:
MyName, myname, my_name
В именах переменных можно использовать и буквы национального алфавита, в частности русского. Однако необходимо заметить, что в математике все-таки принято использовать латинский и греческий алфавиты.
В качестве имен запрещено использовать зарезервированные слова языка Maple:
and |
end |
in |
od |
save |
break |
error |
intersect |
option |
stop |
by |
export |
local |
options |
then |
catch |
fi |
minus |
or |
to |
description |
finally |
mod |
proc |
try |
do |
for |
module |
quit |
union |
done |
from |
next |
read |
use |
elif |
global |
not |
return |
while |
else |
if |
Нельзя использовать защищенные слова Maple, к которым относятся имена неизменяемых констант. Попытка присвоить такому имени какое-либо значение приводит к ошибке:
>Catalan:=7;
Error, attempting to assign to `Catalan` which is protected
Ошибка, попытка присвоить значение защищенному символу `Catalan`
Выражение – это комбинация имен переменных, чисел и, возможно, других объектов Maple, соединенных знаками допустимых операций. Единственным предназначением выражения является его вычисление и получение некоего результата, который можно использовать в операторах языка Maple при дальнейших вычислениях.
Если в выражении используется переменная, которой не присвоено никакого числового или строкового значения, то такая переменная рассматривается системой Maple как некая неизвестная величина, а выражение, содержащее неизвестные, называется символьным выражением. Именно для работы с такими выражениями прежде всего и разрабатывался Maple.
Основная деятельность пользователя Maple направлена на выполнение разнообразных преобразований с символьными выражениями.
Важной операцией в Maple является операция присваивания(:=). Она имеет следующий синтаксис:
переменная: = выражение
С помощью переменных можно хранить и обрабатывать разнообразные типы данных, с которыми работает Maple. По умолчанию переменная Maple имеет тип symbol, представляющий символьную переменную, и ее значением является ее собственное имя. Поэтому простое объявление переменной m оператором m; приведет к отображению в области вывода рабочего листа имени этой переменной.
То, что переменная по умолчанию имеет символьный тип, оказывается очень полезным при использовании функций. В тех случаях, когда имя функции Maple задано не совсем правильно, или такой функции не существует, или не подключен пакет, где она расположена, то Maple в ответ на попытку вычислить эту функцию отобразит в области вывода не результат выполнения функции, а полностью повторенную строку области ввода.
При присвоении переменной какого-нибудь значения, ее тип изменяется на тип присвоенного ей значения. Наряду с числами переменные можно использовать для составления выражений. Все, сказанное выше о числовых выражениях и порядке их вычисления, относится и к выражениям, содержащим переменные.
- Функции системы MAPLE
В математических выражениях обычно используются разнообразные математические функции. В Maple имеется большой набор стандартных математических функций, как элементарных, так и специальных. В табл. 3 показаны основные математические функции и соответствующий им синтаксис Maple.
Таблица 3. Основные математические функции
Функция |
Синтаксис Maple |
Функция |
Синтаксис Maple | |
ex |
exp(x) |
|
sqrt(x) | |
ln(x) |
ln(x) или log(x) |
|
abs(x) | |
|
log10 (x) |
sgn(x) |
signum(x) | |
|
log[a] (x) |
n! |
n! |
Тригонометрические и
гиперболические функции
Таблица 4. Тригонометрические и гиперболические функции
Функция |
Синтаксис Maple |
Функция |
Синтаксис Maple | |
sin(x) |
sin(x) |
sh(x) |
sinh(x) | |
cos(x) |
cos(x) |
ch(x) |
cosh(x) | |
tg(x) |
tan(x) |
th(x) |
tanh(x) | |
sec(x) |
sec(x) |
sech(x) |
sech(x) | |
cosec(x) |
csc(x) |
cosech(x) |
csch(x) | |
ctg(x) |
cot(x) |
cth(x) |
coth(x) |
Задание обратных тригонометрических и обратных гиперболических функций представлено табл. 5.
Таблица 5. Обратные тригонометрические и гиперболические функции
Функция |
Синтаксис Maple |
Функция |
Синтаксис Maple | |
arcsin(x) |
arcsin(x) |
arcsh(x) |
arcsinh(x) | |
arccos(x) |
arccos(x) |
arcch(x) |
arccosh(x) | |
arctg(x) |
arctan(x) |
arcth(x) |
arctanh(x) | |
arcsec(x) |
arcsec(x) |
arcsech(x) |
arcsech(x) | |
arccosec(x) |
arccsc(x) |
arccosech(x) |
arccsch(x) | |
arcctg(x) |
arccot(x) |
arccth(x) |
arccoth(x) |
Глава 2 Решение задач линейной алгебры с использованием MAPLE
2.1 Векторная алгебра
Основная часть команд для решения задач линейной алгебры содержится в библиотеке linalg. Поэтому перед решением задач с матрицами и векторами следует загрузить эту библиотеку командой with(linalg).
Способы задания векторов.
Для определения вектора
в Maple используется команда vector([x1,x2,…,xn]), где в квадратных скобках
через запятую указываются координаты
вектора. Например:
> x:=vector([1,0,0]);
x:=[1, 0, 0]
Координату уже определенного вектора 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
- evalm(A&*B);
- multiply(A,B).
В качестве второго аргумента в командах, вычисляющих произведение, можно указывать вектор, например:
> 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=Е, где Е - единичная матрица, можно вычислить двумя способами:
- evalm(1/A);
- inverse(A).
Транспонирование матрицы А – это изменение местами строк и столбцов. Полученная в результате этого матрица называется транспонированной и обозначается А'. Транспонированную матрицу А' можно вычислить командой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);
Задание.
- Даны матрицы: , , . Найти: (AB)C , detA, detB, detC, det[(AB)C]. Наберите:
> 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
- Дана матрица , найти: detA, , A’, det(M22). Наберите:
> 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);
2.3 Спектральный анализ матрицы
Собственные числа и собственные векторы матрицы.
Из курса линейной алгебры известно, что если Ах=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).
К треугольному виду матрицу А можно привести тремя способами:
- команда gausselim(A) приводит матрицу А к треугольному виду методом Гаусса;
- команда ffgausselim(A) приводи
т матрицу А к треугольному виду методом Гаусса без деления. Эта команда предпочтительней для работы с символьными матрицами, так как не производит нормировку элементов и исключает возможные ошибки, связанные с делением на нуль; - команда gaussjord(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);
- Дана матрица .

- Решение задач на движение
- Решение задач оформления экономической документации средствами MS Word
- Решение задач по физике на компьютере
- Решение задач с параметрами
- Решение задач условной оптимизации методом Лагранжа
- Решение игр в смешанных стратегиях
- Решение игры в смешанных стратегиях
- Решение задач и примеров по финансовой деятельности АТП
- Решение задачи транспорта
- Решение задач как основная функция предмета "математика"
- Решение задач линейного программирования
- Решение задач линейного программирования симплекс методом (2)
- Решение задач линейного программирования симплексным методом
- Решение задач линейной алгебры в системе Maple