Автор работы: Пользователь скрыл имя, 19 Мая 2014 в 04:32, курсовая работа
Для управляющих предприятиями важно знать теорию и владеть практическими навыками в расчетах. За счет развития наук и техники сейчас все расчеты занимают меньше времени нежели ранее. Сильная продвинутость математических теорий (линейная алгебра, математический анализ, теория вероятностей, корреляционный и регрессионный анализ, дифференциальные уравнения и т.д.) предоставляет к нашим услугам очень мощный и развитый математический аппарат.
ВВЕДЕНИЕ
Для управляющих предприятиями важно знать теорию и владеть практическими навыками в расчетах. За счет развития наук и техники сейчас все расчеты занимают меньше времени нежели ранее. Сильная продвинутость математических теорий (линейная алгебра, математический анализ, теория вероятностей, корреляционный и регрессионный анализ, дифференциальные уравнения и т.д.) предоставляет к нашим услугам очень мощный и развитый математический аппарат.
Разумеется, в использовании математических методов есть свои слабые стороны. При попытке формализовать экономическую ситуацию может получиться очень сложная математическая задача. Для того чтобы ее упростить, приходится вводить новые допущения, зачастую не оправданные с точки зрения экономики. Поэтому исследователя подстерегает опасность заниматься математической техникой вместо анализа подлинной экономической ситуации. Главное и, по существу, единственное средство борьбы против этого – использование ЭВМ с набором программ. В данной курсовой роботе мы рассмотрим, несколько специальных методов алгебраических вычислений при помощи пакета программ, на примере Maple.
1 ОБЩИЕ СВЕДЕНИЯ MAPLE
Maple — программный пакет, система компьютерной алгебры. Создана в компании Waterloo Maple Inc., которая основана в 1984 году и выпускает и продвигает на рынке ряд программных продуктов, ориентированных на сложные математические вычисления, визуализацию данных и моделирование. Система Maple предназначена для символьных вычислений, хотя имеет ряд средств и для численного решения дифференциальных уравнений и нахождения интегралов. Обладает развитыми графическими средствами. Имеет собственный язык программирования.
Maple состоит из ядра – процедур, написанных на языке С и в высшей степени оптимизированных, библиотеки, написанной на Maple-языке, и интерфейса. Ядро выполняет большинство базисных операций. Библиотека содержит множество команд – процедур, выполняемых в режиме интерпретации. Программируя собственные процедуры, пользователь может пополнять ими стандартный набор и, таким образом, расширять возможности Maple.
Интерфейс Maple в настоящее время разнится в зависимости от используемой техники. Приводимые примеры были опробованы на IBM PC для DOS-версии и Windows-версии, сведения об интерфейсе Windows-версии даны в приложении. Этот интерфейс основан на концепции рабочего поля (worksheet) или документа, содержащего строки ввода, вывода и текст, а также графику.
Работа в Maple проходит в режиме сессии (session) – пользователь вводит предложения (команды, выражения, процедуры и др.), которые воспринимаются Maple. Если ввод предложения завершается разделителем ";", то в строке под предложением сразу будет отклик: результат исполнения команды или сообщение об ошибке. Разделитель ":" используется для "отложенного" ввода. Нажатие Enter запускает исполнение предложения. Если введено законченное предложение, то следует выполнение, иначе Maple ожидает завершения предложения. Обнаружив ошибку, Maple печатает на следующей строке сообщение о ней; при ошибке в написании имени команды символом "^" отмечается первая неузнанная литера.
По умолчанию результаты сеанса сохраняются в файле с расширением 'ms'. Если задан режим сохранения состояния сеанса (session), то в файле с расширением 'm' будут записаны текущие назначения.
Maplesoft продаёт как студенческую, так и профессиональные версии Maple, с существенной разницей в цене.
Недавние студенческие версии (начиная с шестой) не имели вычислительных ограничений, но поставлялись с меньшим объёмом печатной документации. Так же различаются студенческая и профессиональная версии пакета Mathematica.
2 ЭТАП ПРИМЕНЕНИЯ ПАКЕТА ПРОГРАММ MAPLE
Линейное программированием называется нахождение оптимального плана в задачах имеющих линейную структуру. Для решения задач линейного программирования, как правило, используется симплекс метод, который в общем виде заключается в том, что при помощи последовательных итерационных процедур находится решение задачи, удовлетворяющее условию оптимальности.
В общем случае, доля решения подобных задач необходимо пройти следующие этапы
1. Выяснение сущности задач и нахождении системы переменных.
2. Анализ и формализация всех ограничений задачи.
3. Нахождение целевой
функции и критерия
4. Математическая формализация
всех исходных данных и поиск р
Четвертый этап может осуществляться двумя способами
1. Нахождения решения вручную
2. И с использование пакета программ Maple
По всем параметрам второй способ является наиболее удобным, поскольку он сокращает затраты времени на поиск решения задач, обеспечивает необходимую наглядность информации и возможность корректировки исходных данных. Современный вычислительный процесс характеризуется высокой интенсивностью - большим объемом сообщаемой информации в единицу времени, что предъявляет особые требования к процессам. В частности, повышение эффективности расчетов в современных условиях невозможно без использования систем компьютерной математики.
3 РЕШЕНИЕ ЗАДАЧ С ПОМОЩЬЮ ПРОГРАММЫ MAPLE
Рассмотрим роботу программы Maple в задачах наиболее часто встречаемых при экономико-математическом моделировании.
1.Матрицы
2.Дифференциальное исчисление
3.Интегрирование
4. Решение задач линейного программирования с помощью программы
5. Примеры решения транспортных задач в MAPLE
3.1 Матрицы
Определение матрицы.
Для определения матрицы в Maple можно использовать команду matrix. Числа задавать необязательно, а достаточно перечислить элементы матрицы построчно в квадратных скобках через запятую. Например:
> A:=matrix([[1,2,3],[-3,-2,-1]]
A:=
В Maple матрицы специального вида можно генерировать с помощью дополнительных команд. В частности диагональную матрицу можно получить командой diag. Например:
> J:=diag(1,2,3);
J:=
Генерировать матрицу можно с помощью функции f(i, j) от переменных i, j – индексов матрицы: matrix(n, m, f), где где n - число строк, m – число столбцов. Например:
> f:=(i, j)->x^i*y^j;
> A:=matrix(2,3,f);
A:=
Число строк в матрице А можно определить с помощью команды rowdim(A), а число столбцов – с помощью команды coldim(A).
Арифметические операции с матрицами.
Сложение двух матриц одинаковой размерности осуществляется теми же командами, что и сложение векторов: evalm(A+B) или matadd(A,B). Произведение двух матриц может быть найдено с помощью двух команд:
1. evalm(A*B);
2. multiply(A,B).
В качестве второго аргумента в командах, вычисляющих произведение, можно указывать вектор, например:
> A:=matrix([[1,0],[0,-1]]);
> B:=matrix([[-5,1], [7,4]]);
A:=
> v:=vector([2,4]);
> multiply(A,v);
> multiply(A,B);
> matadd(A,B);
Команда evalm позволяет также прибавлять к матрице число и умножать матрицу на число. Например:
> С:=matrix([[1,1],[2,3]]):
> evalm(2+3*С);
Определители, миноры и алгебраические дополнения. Ранг и след матрицы.
Определитель матрицы А вычисляется командой det(A). Команда minor(A,i,j) возвращает матрицу, полученную из исходной матрицы А вычеркиванием i-ой строки и j-ого столбца. Минор Mij элемента aij матрицы А можно вычислить командой det(minor(A,i,j)). Ранг матрицы А вычисляется командой rank(A). След матрицы А, равный сумме ее диагональных элементов, вычисляется командой trace(A).
> A:=matrix([[4,0,5],[0,1,-6],[
A:=
> det(A);
1
> minor(А,3,2);
> det(%);
-24
> trace(A);
9
Обратная и транспонированная матрицы.
Обратную матрицу А-1 , такую что А-1А=АА-1=Е, где Е - единичная матрица, можно вычислить двумя способами:
1. evalm(1/A);
2. inverse(A).
Транспонирование матрицы А – это изменение местами строк и столбцов. Полученная в результате этого матрица называется транспонированной и обозначается А'. Транспонированную матрицу А' можно вычислить командой transpose(A).
Например, используя заданную в предыдущем пункте матрицу А, найдем ей обратную и транспонированную:
> inverse(A);
> multiply(A,%);
> transpose(A);
Выяснение типа матрицы.
Выяснить положительную или отрицательную определенность матрицы можно при помощи команды definite(A,param), где param может принимать значения: 'positive_def' – положительно определена (A>0), 'positive_semidef' – неотрицательно определенная(A≥0), 'negative_def' – отрицательно определенная (A<0), 'negative_semidef' – неположительно определенная (A≤0). Результатом действия будет константа true – подтверждение, false – отрицание сделанного предположения. Например:
> A:=matrix([[2,1],[1,3]]);
A:=
> definite(А,'positive_def');
true
Проверить ортогональность матрицы А можно командой orthog(A).
> В:=matrix([[1/2,1*sqrt(3)/2], [1*sqrt(3)/2,-1/2]]);
B:=
> orthog(В);
true
Функции от матриц.
Возведение матрицы А в степень n производится командой evalm(A^n). Вычисление матричной экспоненты возможно с помощью команды exponential(A). Например:
> Т:=matrix([[5*a,2*b],[-2*b,5*
T:=
> exponential(Т);
> evalm(Т^2);
1. Даны матрицы: A= , B= , C= . Найти: (AB)C .
> with(linalg):restart;
> A:=matrix([[4,3],[7,5]]):
> B:=matrix([[-28,93],[38,-126]]
> C:=matrix([[7,3],[2,1]]):
> F:=evalm(A&*B&*C);
F=
2. Дана матрица A= , найти: detA, , A’, det(M22). Наберите:
> A:=matrix([[2,5,7],[6,3,4],[5,
A=
> Det(A)=det(A);
> transpose(A);
> inverse(A);
> det(minor(A,2,2));
- 41
3. Найти ранг матрицы A= .
> 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);
4. Вычислить , где T= .
> exponential([[3,-1],[1,1]]);
5. Дана матрица A= . Найти значение многочлена .
> A:=matrix([[5,1,4],[3,3,2],[6,
> P(A)=evalm(A^3-18*A^2+64*A);
3.2 Дифференциальное исчисление
Большинство задач дифференциального и интегрального исчисления функций многих переменных решается в Maple теми же командами, что и для функций одной переменной, только с указанием дополнительных параметров.
Частные производные.
Для вычисления частных производных функции f(x1,…, xm) используется уже хорошо известная вам команда diff. В этом случае эта команда имеет такой формат: diff(f,x1$n1,x2$n2,…, xm$nm), где x1,…, xm – переменные, по которым производится дифференцирование, а после знака $ указаны соответствующие порядки дифференцирования. Например, частная производная записывается в виде: diff(f,x,y).
1. Найти и функции .
> f:=arctan(x/y):
> Diff(f,x)=simplify(diff(f,x));
> Diff(f,y)=simplify(diff(f,y));
2. Найти все частные производные 2-го порядка функции .
> f:=(x-y)/(x+y):
> Diff(f,x$2)=simplify(diff(f,x$
> Diff(f,y$2)=simplify(diff(f,y$
> Diff(f,x,y)=diff(f,x,y);
Локальные и условные экстремумы функций многих переменных.
Для исследования функции на локальный и условный экстремум используется команда из стандартной библиотеки extrema(f,{cond},{x,y,…},'s'), где cond – ограничения для поиска условного экстремума, которые записываются в виде равенств. После ограничений в фигурных скобках указываются все переменные, от которых зависит функция f, а затем в кавычках записывается s – имя переменной, которой будут присвоены координаты точек экстремума. Если ограничений не указывать, то будет производиться поиск локального экстремума.
К сожалению, команда extrema выдает все критические точки, то есть и те, в которых экстремума нет. Отсеять недающие экстремума критические точки можно с помощью непосредственной подстановки этих точек в функцию, например, оператором subs.
Так же, как и для функции одной переменной, наибольшее и наименьшее значения функции многих переменных вычисляются командами maximize(f,{x1,…,xn},range), и minimize(f,{x1,…,xn}, range), где следует указывать после функции в фигурных скобках список всех переменных, от которых она зависит, а затем интервалы для каждой переменной, указывающие область поиска наибольшего и наименьшего значений.
Если требуется найти переменные, при которых линейная функция многих переменных имеет максимум (или минимум) при выполнении определенных ограничений, заданных в виде линейных равенств или неравенств, то следует использовать симплекс-метод. Для этого сначала необходимо загрузит пакет simplex, а затем воспользоваться командой maximize (или minimize), где теперь в качестве range можно указывать в фигурных скобках ограничительную систему неравенств. Пакет simplex предназначен для решения задач линейной оптимизации. После его загрузки команды maximize и minimize меняют свое действие. Теперь эти команды выдают координаты точек, при которых заданная линейная функция имеет максимум или минимум. При этом допускается дополнительная опция для поиска только неотрицательных решений NONNEGATIVE.
1.Найти экстремумы функции .
> restart: readlib(extrema):
> f:=2*x^4+y^4-x^2-2*y^2:
> extrema(f,{},{x,y},'s');s;
{{x=0, y=0}, {x= y=0}, {x= , y=0}, {x=0, y=1}, {x=0, y=-1}, {x= , y=1}, {x= , y=-1}, {x= , y=1}, {x= , y=-1}}
Получилось всего два экстремума, поэтому очевидно, что fmax=0 и fmin=- 9/8, причем максимум достигается в точке (0,0). Остальные критические точки следует проверить. В силу четности функции по обеим переменным, можно ограничится проверкой критических точек только с положительными координатами.
> subs([x=1/2,y=1],f);
> subs([x=1/2,y=0],f);
Информация о работе Специальные методы вычислений при помощи пакета Maple