Система компьютерной математики Марlе в задачах теории автоматического управления
Программирование вычислительных задач и математических моделей. Реализация техники имитационного и ситуационного моделирования, численных и матричных расчетов. Правила написания объектов и особенности синтаксиса. Построение математических графиков.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лекция |
Язык | русский |
Дата добавления | 22.07.2015 |
Размер файла | 2,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Система компьютерной математики Марlе в задачах теории автоматического управления
Введение
Оказывается, что большинство научных и учебных расчетов носят если и не единовременный, то достаточно редкий характер. Определенные классы расчетов используются очень часто, но их конкретные задачи повторяются редко. В этих условиях программирование вычислительных задач стало занимать несоразмерно больше времени, чем их решение. При этом программирование обычно не носит творческого характера, является вполне рутинным (хотя и сложным и трудоемким) бременем. В последние время возникло и получило бурное развитие новое фундаментальное научное направление -- компьютерная математика, которое зародилось на стыке математики и информатики.
Вряд ли есть хоть один действительно серьезный научный проект, связанный с математикой и, в целом, с наукой и техникой, где системы компьютерной математики не применялись бы в деле. Лидером в области численных и матричных расчетов, а также в реализации техники имитационного и ситуационного моделирования стала мощная система Matlab с ее многочисленными пакетами расширения. Однако в области аналитических вычислений она сильно уступает таким системам, как Марlе и Мathematica.
Марlе могут использовать (и используют) для решения своих задач не только специалисты в области математики, но и специалисты в других прикладных областях. Главное, чтобы они понимали и имели представление о тех математических моделях, которые применяют в своих исследованиях.
Широта функциональных возможностей Марlе поражает -- она охватывает такие разделы, как линейная алгебра, дифференциальные вычисления, геометрия, статистика и многое, многое другое. По каждому разделу написано большое количество процедур и функций, которыми можно воспользоваться, набрав имя одной из них в командной строке Марlе.
Системы компьютерной математики класса Марlе были созданы как системы компьютерной алгебры с расширенными возможностями в области символьных (аналитических) вычислений. Версии Марlе позиционируется как универсальная система компьютерной математики, рассчитанные на широкого пользователя. Система содержит средства для выполнения быстрых численных расчетов, лежащих в основе математического моделирования различных явлений окружающего нас мира, систем и устройств различного назначения. Все это сочетается с новейшими и весьма эффектными средствами визуализации вычислений.
Марlе -- типичная интегрированная программная система. Она объединяет в себе:
Мощный язык программирования (он же язык для интерактивного общения с системой).
Мощный язык программирования (он же язык для интерактивного общения с системой).
Редактор для подготовки и редактирования документов и программ.
Современный многооконный пользовательский интерфейс с возможностью работы в диалоговом режиме.
Мощную справочную систему со многими тысячами примеров.
Ядро алгоритмов и правил преобразования математических выражений.
Численный и символьный процессоры.
Систему диагностики.
Библиотеки встроенных и дополнительных функций.
Пакеты функций сторонних производителей и поддержку некоторых других языков программирования и программ.
Основой для работы с символьными преобразованиями в Марlе является ядро системы. Это, впрочем, не исключает появление новых неточностей и ошибок. В Марlе имеется также основная библиотека операторов, команд и функций. Многие встроенные в нее функции, как и функции ядра, могут использоваться без какого-либо объявления, другие нуждаются в объявлении. Кроме того, имеется ряд подключаемых проблемно-ориентированных пакетов, тематика которых охватывает множество разделов классической и современной математики. Дополнительные функции из пакетов могут применяться после объявления подключения пакета с помощью команды with(name), где name -- имя применяемого пакета. Общее число функций, с учетом встроенных в ядро и размещенных в пакетах, в системе Марlе превышает 3000.
Система Марlе интегрирует в себе три собственных языка:
Входной.
Реализации.
Программирования.
Марlе имеет входной язык сверхвысокого уровня, ориентированный на решение математических задач практически любой сложности в интерактивном (диалоговом) режиме. Он служит для задания системе вопросов или, говоря иначе, задания входных данных для последующей их обработки. Это язык интерпретирующего типа и по своей идеологии напоминает Бейсик. Он имеет большое число заранее определенных математических и графических функций, а также обширную библиотеку дополнительных функций, подключаемую по мере необходимости.
Имеет Марlе и свой язык процедурного программирования -- Марlе-язык. Этот язык содержит вполне традиционные средства структурирования программ. Он включает в себя все команды и функции входного языка. Ему доступны все специальные операторы и функции. Многие из них являются весьма серьезными программами: например, символьное дифференцирование, интегрирование, разложение в ряд Тейлора, построение сложных трехмерных графиков и т. д.
В новые реализации Марlе добавлены средства Марlе создания визуально-ориентированного диалога с системой, включающие в себя задание множества диалоговых окон и иных типовых средств интерфейса, привычного пользователям Windows-приложений. Однако даже обычные средства диалога у систем класса Марlе обеспечивают высокую наглядность и комфортность работы с системой при решении математических задач.
Языком реализации системы Марlе является один из самых лучших и мощных универсальных языков программирования -- Си. На нем написано ядро системы, содержащее тщательно оптимизированные процедуры. Большинство же функций, которые содержатся в библиотеках расширения системы Марlе, написаны на Марlе-языке, благодаря чему их можно модифицировать и даже писать свои собственные библиотеки. По разным оценкам, лишь от 5 до 10 % средств Марlе создано на языке реализации -- все остальное написано на Марlе-языке.
Для подготовки программ на языке Марlе могут использоваться внешние редакторы, но система имеет и свой встроенный редактор, вполне удовлетворяющий требованиям большинства пользователей. Он открывается командами New и Open в меню File. Этот редактор можно использовать для редактирования файлов программ или математических выражений. Последние версии Марlе имеют свой редактор программ и отладчик с функциями проверки синтаксиса.
Марlе-яэык программирования считается одним из самых лучших и мощных языков программирования математических задач. Это, наряду с упомянутыми новыми средствами пакета Марlе, позволяет создавать высококачественные электронные уроки, статьи и даже целые книги.
1. Пакеты расширения Марlе
В ядро системы Марlе включена только часть реализованных в ней функций. Это те функции, которые используются достаточно часто и должны выполняться в минимально возможное время. Множество функций, в том числе применяемых довольно редко и в вычислениях специальных видов, реализовано в проблемно-ориентированных пакетах расширения. С помощью команды
?name_ package;
можно получить информацию о любом пакете расширения и найти список входящих в него функций. Для обращения к функциям того или иного пакета используется его полная загрузка командой
with( package ) : [;]
Знак : блокирует вывод списка функций пакета, а знак ; задает вывод этого списка.
Если вам необходима какая-то одна функция пакета или небольшая их часть, то не стоит загружать пакет целиком. Это может привести к избыточным затратам памяти компьютера и даже нарушить нормальную работу некоторых функций -- следует помнить, что нередко пакеты переопределяют некоторые функции ядра. Для загрузки избранных функций используется команда в форме
with( package, f1, f2, … ) :
или
with( package, [f1, f2, … ] ) :
При этом загружаются функции f1, f2, … из пакета с именем package. Полезно отметить, что большинство функций в пакетах расширения имеет вполне понятные имена, отражающие их суть и назначение. К примеру, назначение функций animate или даже textplot в пакете plots или Diff, Int и Limit в пакете student понятны, пожалуй, всем. Но и в гораздо более специализированных пакетах имена входящих в них функций в значительной мере знакомы специалистам, поскольку почти всегда ассоциируются с общепринятыми названиями тех или иных специализированных функций или с их комбинациями.
2. Использование знаков алфавита
При всей своей математической направленности система Марlе, как и любая программная система, работает с данными и осуществляет их обработку. Поскольку Марlе ориентирована на подготовку документов самого различного характера (в том числе электронных документов и книг), то система обладает обширным набором возможных данных и средствами для работы с ними.
Язык Марlе (или Марlе-язык) является одновременно входным языком общения с системой Марlе и языком ее программирования. При этом относящаяся к традиционному программированию часть Марlе-языка реализована с помощью довольно скромного набора специальных знаков и зарезервированных слов. Большинство функций Марlе 9 (в частности все, входящие в пакеты) написаны на этом языке. Поэтому знание его является определяющим в серьезном применении Марlе.
Алфавит Марlе-языка содержит 26 малых латинских букв (от a до z), 26 больших латинских букв (от A до Z), 10 арабских цифр (от 0 до 9) и 32 специальных символа (арифметические операторы +, -, *, /, знак возведения в степень ^ и др.). Кроме того, имеется множество особых математических символов. Для ввода символов используется клавиатура и панели математических символов.
К специальным одиночным и составным знакам относятся элементы синтаксиса языка
% (процент) -- системная переменная, хранящая результат предшествующей операции;
: (двоеточие) -- фиксатор выражения, предотвращающий вывод результата вычисления в ячейку вывода;
; (точка с запятой) -- фиксатор выражения, дающий вывод результата вычисления в ячейку вывода;
# (решетка) -- указатель программного комментария;
" (кавычки) -- ограничитель строки (например %зЬг1пдч);
:= (двоеточие и равенство) -- оператор присваивания (например: =5);
; ; (две точки с запятой) -- пустой оператор;
:: (два двоеточия) -- указатель типа переменной (например, или );
\ -- знак обратного деления, который имеет множественные значения в зависимости от контекста (см. справку по этому знаку -- backslash).
Комментарии в программе, не выводимые в ячейки вывода, задаются после символа #. В них допустимо использовать все символы кодовых таблиц, что важно при вводе русскоязычных комментариев, использующих символы кириллицы. Применение последних для идентификаторов (имен) объектов недопустимо, хотя иногда и возможно.
3. Зарезервированные слова
Зарезервированные слова используются для создания условных выражений, циклов, процедур и управляющих команд. Список зарезервированных слов дан ниже. Этими словами нельзя называть объекты пользователя.
and |
break |
by |
catch |
description |
|
do |
done |
elif |
else |
end |
|
error |
export |
fi |
finally |
for |
|
from |
global |
if |
in |
intersect |
|
local |
minus |
mod |
module |
next |
|
no |
d |
option |
options |
or |
|
proc |
quit |
read |
return |
save |
|
stop |
then |
to |
try |
union |
|
use |
while |
Совокупность правил, по которым записываются определения всех объектов Марlе-языка, называется его синтаксисом. Некоторые особенности синтаксиса полезно знать уже в начале освоения Марlе. Например, то, что знак -- (минус) имеет двойное значение. Применительно к одному числу, переменной или выражению он меняет их знак. Однако два знака минус подряд (например, в записи -- -- 3) задавать нельзя. Другое назначение знака минус -- создание операции вычитания, например, 5-2 или a-b. Соответственно двойное назначение имеет и знак +, причем число без знака считается положительным, так что +5 = 5.
При вводе действительных чисел с порядком для указания порядка используется символ ^. Для возведения числа в степень наряду с оператором ^ можно использовать и составной оператор ** (две звездочки подряд). Для изменения общепринятого приоритета вычислений используются круглые скобки, в них же задаются параметры функций и процедур. Более подробно синтаксис Марlе-языка рассматривается ниже.
Некоторые операторы представлены двумя символами -- например, оператор присваивания переменным их значения : = содержит двоеточие и знак равенства. В таких операторах между символами недопустим знак пробела. Однако его можно использовать между отдельными частями выражений.
4. Комплексные числа
Комплексные числа, их геометрическая интерпретация
Комплексным числом называется выражение вида
, (1)
где -- действительная часть комплексного числа ; -- мнимая часть . Под символом понимается . Из определения следует, что
, ,
и вообще
, , , ,
Множество действительных чисел является подмножеством множества комплексных чисел, получаемым при . Полагают, что , если и .
Два комплексных числа
и
равны между собой, если , , т. е. если равны соответственно их действительные и мнимые части.
Комплексное число называется сопряженным, к числу
,
если
,
т. е. отличается от только знаком мнимой части.
Между множеством комплексных чисел и множеством точек плоскости можно установить взаимно однозначное соответствие. Для этого по оси абсцисс откладывается действительная часть комплексного числа, а по оси ординат -- мнимая. Тогда каждому комплексному числу будет соответствовать точка на плоскости и каждой точке на плоскости -- комплексное число.
Комплексные числа можно изображать и в виде векторов на плоскости. Действительные числа располагаются на действительной оси , на мнимой оси располагаются мнимые числа (рис. 1).
Рис. 1.
Модуль и аргумент комплексного числа
Положение точки на плоскости можно определить в полярной системе координат углом наклона вектора и его длиной. Поставим в соответствие точке комплексное число (рис. 2).
Рис. 2.
Расстояние от начала координат до точки называется модулем комплексного числа .
Аргументом комплексного числа называется угол, образованный радиусом-вектором точки с положительным направлением действительной оси
.
Если
,
То
, (2)
, (3)
Модуль комплексного числа есть положительное число, отличное от нуля, если . Аргумент комплексного числа, отличного от нуля, -- функция неоднозначная. Главное значение аргумента заключено в пределах
.
Если , то , а значение -- неопределенно.
Комплексное число можно записать в тригонометрической форме. Так как
, ,
То
. (4)
Отметим, что и .
Сложение, вычитание, умножение и деление комплексных чисел
Пусть
-- комплексные числа. Определим операции сложения и вычитания следующим образом
, (5)
т. е. при сложении (вычитании) комплексных чисел складываются (вычитаются) отдельно их действительные и мнимые части.
Геометрически сложение и вычитание комплексных чисел сводится к сложению и вычитанию соответствующих векторов (рис. 3).
Умножение комплексных чисел определим по правилу умножения многочленов: если
, ,
То
(6)
Рис. 3.
Сложение и умножение комплексных чисел подчиняются обычным алгебраическим законам.
1.Сложение и умножение комплексных чисел обладают свойством коммутативности, т. Е
,
.
2.Сложение и умножение комплексных чисел подчиняются ассоциативному закону, т. е.
,
.
Сложение и умножение связаны дистрибутивным законом, т. Е
,
Введем операцию деления комплексных чисел. Частным от деления комплексного числа
на комплексное число
называется число
такое, что
.
Покажем, что если , то деление всегда определено. Вначале запишем
.
Определим частное от деления
на
Имеем
(7)
Рассмотрим умножение и деление комплексных чисел, заданных в тригонометрической форме. Пусть
, ,
тогда произведение комплексных чисел и , заданных в тригонометрической форме, будет
. (8)
Из выражения (8) следует, что модуль произведения комплексных чисел равен произведению модулей сомножителей, а аргумент произведения равен сумме аргументов сомножителей, т. е.
, . (9)
Рассмотрим деление комплексных чисел, заданных в тригонометрической форме
. (10)
Из выражения (10) следует, что модуль частного комплексных чисел равен отношению модулей делимого и делителя, а аргумент частного равен разности аргументов делимого и делителя, т. е.
, . (11)
5. Возведение в степень и извлечение корня
Возведение комплексного числа в целую положительную степень можно производить с помощью формулы бинома Ньютона
. (12)
Если распространить формулу (8) на случай одинаковых сомножителей
. (13)
Следовательно, чтобы возвести комплексное число в целую положительную степень, нужно возвести в эту степень его модуль, а аргумент умножить на показатель степени.
Рассмотрим операцию извлечения корня из комплексного числа. Положим
,
если . Из всякого комплексного числа можно извлечь корень -й степени, причем получается всего различных значений
,
.
Дадим геометрическую интерпретацию полученному результату. Обозначим значений корня через , , … , . Все значения корня имеют одинаковый модуль, а их аргументы отличаются последовательно на , причем
.
Следовательно, если изображать различные значений корня векторами на комплексной плоскости, имеющими начало в начале координат, то концы векторов будут находиться в вершинах правильного -угольника, имеющего центр в начале координат, радиус описанной окружности, равный , причем вектор, проведенный в одну из его вершин, расположен под углом к действительной оси.
Марlе, естественно, может работать с комплексными числами вида
.
Мнимая единица в комплексном числе (корень квадратный из -1, то есть
}
обозначается как . Функции и возвращают действительную и мнимую части комплексных чисел.
Для мнимой единицы Марlе используется константа . Задание комплексного числа не отличается от его обычного задания в математике.
Марlе умеет выполнять все арифметические действия над комплексными числами точно так же, как он это делает и с действительными целыми, дробями и с плавающей точкой.
Если хотя бы одна из действительных или мнимых частей комплексного числа вычисляется в виде числа с плавающей точкой, то результат также представляется через эти числа.
Для выделения из комплексного числа действительной и мнимой части в Марlе предусмотрены две функции: для действительной и о для мнимой части комплексного числа. Вычислить аргумент комплексного числа можно с помощью функции , а построить комплексно-сопряженное -- функцией . Модуль комплексного числа вычисляется с помощью функции .
6. Математические функции
Марlе имеет полный набор элементарных математических функций. Все они, кроме арктангенса двух аргументов, имеют один аргумент , например sin(x). Он может быть целым, рациональным, дробно-рациональным, вещественным или комплексным числом. В ответ на обращение к ним элементарные функции возвращают соответствующее значение. Поэтому они могут быть включены в математические выражения. Все описанные здесь функции называются встроенными, поскольку они реализованы в ядре системы Марlе.
Как правило, если аргументом функции является фундаментальная константа, целое или рациональное число, то функция выводится с таким аргументом без получения результата в форме действительного числа с плавающей точкой. Вообще говоря, если результат выражается через фундаментальную математическую константу, то он будет вычислен и представлен ею. В противном случае функция с целочисленным и рациональным аргументом или с константой просто повторяется в строке вывода в установленном для этой строки формате.
Обычно в математических выражениях используются разнообразные математические функции. В Марlе изначально определен большой набор стандартных математических функций, начиная от элементарных и заканчивая специальными функциями, которые используются при решении сложных задач математической физики.
В таблицах представлены основные математические функции и соответствующий им синтаксис Марlе.
Основные математические функции |
||||
Функция |
Синтаксис Maple |
Функция |
Синтаксис Maple |
|
exp(x) |
sqrt (x) |
|||
ln(x) |
abs (x) |
|||
log10(x) |
signun (x) |
|||
log[a](x) |
n ! |
Тригонометрические и гиперболические функции |
||||
Функция |
Синтаксис Maple |
Функция |
Синтаксис Maple |
|
sin (x) |
sinh (x) |
|||
cos (x) |
cosh (x) |
|||
tan (x) |
tanh (x) |
|||
sec (x) |
sech (x) |
|||
csc (x) |
csch (x) |
|||
cot (x) |
coth (x) |
Обратные тригонометрические и гиперболические функции |
||||
Функция |
Синтаксис Maple |
Функция |
Синтаксис Maple |
|
arcsin (x) |
arcsinh (x) |
|||
arccos (x) |
arccosh (x) |
|||
arctan (x) |
arctanh (x) |
|||
arcsec (x) |
arcsech (x) |
|||
arccsc (x) |
arccsch (x) |
|||
arccot (x) |
arccoth (x) |
Задание в Марlе функций Бесселя, эллиптических интегралов, дельта-функции Дирака, функции Хевисайда и других специальных функций можно найти в справочной системе.
Для получения подробной информации о некоторой произвольной функции достаточно задать команду или
В теории автоматического управления особое место занимают дельта-функция Дирака (-функция) и функция Хевисайда (единичная ступенчатая функция).
Единичная ступенчатая функция (функция Хевисайда) определяется равенством
. (1)
Ее график показан на рисунке 1.
Рис. 1.
В Марlе функция Хевисайда вычисляется по формуле
и вызывается командой
Heaviside (t) ,
где -- действительная переменная. Ниже приведены примеры вычисления функции Хевисайда
> z1:=Heaviside(1);
> z0:=Heaviside(0);
> z11:=Heaviside(-1);
С помощью функции Heaviside (t) можно выполнить моделирование функции (1) следующим образом
> g:=t->piecewise(t=0,1,Heaviside(t));
Ниже приведены примеры вычисления единичной ступенчатой функции (1) с помощью функции Heaviside (t)
> g:=t->piecewise(t=0,1,Heaviside(t));
> g1:=g(1);
> g0:=g(0);
> g11:=g(-1);
Избежать неопределенность вычисления функции Heaviside (t) при можно так как представлено в следующей программе
> MyInvalidOp := proc(f,rg)
if f=Heaviside and nops(rg)=1 and rg[1]-0.0=0.0 then
NumericStatus(invalid_operation=false);
1.0;
else
undefined;
end if;
end proc:
NumericEventHandler(invalid_operation=MyInvalidOp):
forget(Heaviside):
> g0:=Heaviside(0);
> g1:=Heaviside(1);
> g11:=Heaviside(-1);
Дельта-функция Дирака (-функция) определяется равенствами
и . (2)
В Марlе -функция Дирака вычисляется по формуле
и вызывается командой
Dirac (t) ,
где -- действительная переменная. Ниже приведены примеры вычисления -функции Дирака
> delta1:=Dirac(1);
> delta11:=Dirac(-1);
> delta0:=Dirac(0);
Избежать неопределенность вычисления функции Dirac (t) при можно так как представлено в следующей программе
> delta:=t->piecewise(t=0,infinity,Dirac(t));
> delta0:=delta(0);
> delta1:=Dirac(1);
> delta11:=Dirac(-1);
7. Команды преобразования выражений
Технология работы в Марlе заключается в том, что пользователь создает переменные, присваивает им символьные выражения и производит над ними некоторые действия в соответствии с алгоритмом решения поставленной задачи, используя стандартные функции или написанные собственные процедуры. Синтаксис вызова стандартной команды следующий
команда ( пар_1, пар_2, … , пар_n ) ;
или
команда ( пар_1, пар_2, … , пар_n ) :
Здесь команда -- это имя вызываемой функции, а пар_1, пар_2, ... означают необходимые для выполнения команды параметры, которые могут быть переменными или даже выражениями, причем их тип должен соответствовать типу параметров используемой функции. Отметим, что первая форма задания команды (с завершающей точкой с запятой) осуществляет отображение результатов ее выполнения в области вывода, тогда как при второй форме (с завершающим двоеточием) команда выполняется, но никакого вывода результатов не происходит.
Система обозначений функций в Марlе интуитивно проста, поэтому обыкновенно имя функции соответствует действию, которое она выполняет (следует учесть, что все имена заданы на английском языке). Например, ясно, что функция с именем simplify осуществляет некоторые упрощения над выражением, заданным в качестве ее параметра.
Для некоторых команд существуют две формы: активная и пассивная. В случае вызова активной формы команды, которая немедленно будет выполнена, ее имя начинается со строчной буквы. Пассивная форма команды не выполняется немедленно ядром Марlе, а просто в области вывода отображает математическую запись того, что она может сделать. Ее имя начинается с прописной буквы. В дальнейшем, если в операторе присваивания для некоторой переменной в правой части задана пассивная форма команды, то командой value ее можно вычислить. Однако основное предназначение пассивных форм команд -- использование их как средства документирования производимых действий в обычной математической нотации. Примерами команд с двумя формами являются команды дифференцирования и интегрирования и другие.
Командой ?inert можно отобразить страницу Справки, содержащей информацию об активной и пассивной форме некоторых функций Марlе.
Команды и функции, являющиеся частью ядра системы Марlе, всегда доступны пользователю, тогда как для вызова других команд и функций необходимо подключить библиотеку или пакет, в которых они расположены. Для этого используются команды readlib и with. Первая подключает библиотеку, вторая -- пакет. Параметром этих команд является имя библиотеки или пакета, функции которых пользователь желает использовать.
Наиболее часто используемые при аналитических преобразованиях команды и функции Марlе располагаются и его системном ядре -- части программного обеспечения системы аналитических вычислений, постоянно находящейся в памяти компьютера. К таким командам относятся команды, выполняющие разнообразные преобразования выражений, получающие решение уравнений и систем уравнений, дифференцирующие функции и т. д. Мы рассмотрим наиболее часто используемые при выполнении аналитических вычислений.
8. Упрощение выражений - simplify.
Функция simplify - одна из самых мощных в системах символьной математики. Она предназначена для упрощения математических выражений. Стремление представить многие математические выражения в наиболее простом виде поощряется в большинстве вычислений и нередко составляет их цель. Марlе может упростить выражение, а может и не упростить, так как он использует свои внутренние алгоритмы упрощения, результат выполнения которых может не совсем соответствовать взглядам пользователя на то, как он хотел бы упростить выражение и в каком виде его получить. Вообще, задача упрощения во всех системах аналитических вычислений -- это достаточно сложная проблема. В одном контексте вычислений какое-то преобразование считается упрощением, а в другом то же самое преобразование может и не считаться упрощением.
Команда simplify имеет несколько форм вызова, отличающихся наличием параметров управляющих процедур. Её самый простой синтаксис имеет следующий вид
simplify(expr)
В скобках в качестве параметра передается expr, подлежащее упрощению. Команда simplify ищет в выражении вызовы функций, квадратные корни, радикалы и степени и инициализирует подходящие процедуры упрощения. Реально команда simplify реализована в виде набора процедур упрощения, хранящихся в основной библиотеке Марlе. Мы перечислим часть из них, остальные можно найти в справке по этой команде (например, установив курсор в рабочем листе на ее имя и нажав клавишу <F1>). По умолчанию Марlе пытается использовать максимальный набор функций упрощения, подходящий к конкретному выражению.
simplify(expr,n1,n2,…)
Возвращает упрощенное выражение expr c учетом параметров n1,n2,… (в том числе заданных списком или множеством).
simplify(expr,assume=prop)
Возвращает упрощенное выражение expr с учетом всех условий, представленных равенством или списком равенств.
Функция simplify -- многоцелевая. Она обеспечивает упрощение математических выражений, выполняя следующие типовые действия:
* комбинируя цифровые подвыражения;
* приводя подобные множители в произведениях;
* приводя подобные члены в суммах;
* используя тождества, содержащие ноль;
* используя тождества, содержащие единицу;
* распределяя целочисленные показатели степени в произведениях;
* сокращая expr на наибольший общий полиномиальный или иной множитель;
* понижая степень полиномов там, где это возможно;
* используя преобразования, способные упростить выражения.
Несмотря на свою гибкость, функция simplify не всегда способна выполнить возможные упрощения. В этом случае ей надо подсказать, в какой области ищутся упрощения и где можно найти соответствующие упрощающие преобразования. С этой целью в функцию simplify можно включать дополнительные параметры.
Полезен также параметр symbolic, задающий формальные символьные преобразования для многозначных функций, например, таких как квадратный корень. Однако, следует с осторожностью использовать параметр symbolic в функции simplify, так как в большинстве случаев результат упрощения не верен на всей комплексной плоскости, а также не всегда известно, какая ветвь многозначной функции использовалась при упрощении.
При вызове команды упрощения можно последним, или единственным, не считая самого упрощаемого выражения, параметром задать параметр с именем symbolic. В этом случае, если выражение содержит многозначные функции, например квадратный корень, то относительно таких функций будет осуществлено формальное символическое упрощение. Это означает, что не будет приниматься во внимание различное поведение многозначных функций при нахождении их аргумента в разных областях комплексной плоскости или действительной оси. Так, в случае с функцией при упрощении следует учитывать, положительна или отрицательна неизвестная .v; задание параметра symbolic снимает эту неопределенность, используя формальное правило: квадратный корень из квадрата какой-либо величины равен этой величине
Использование собственных правил для упрощения тригонометрических выражений позволяет получить именно тот его вид, который необходим для дальнейшей работы, так как третьим параметром можно определить, в какой последовательности должны отображаться неизвестные в упрошенном выражении. Этот параметр задается в двух формах: в виде множества и в виде списка. (О множестве мы упомянули при определении правил упрощения пользователя, а список -- это тоже объект Марlе, который пока можно считать как список выражений через запятую, заключенный в квадратные скобки.). Так вот, если он задан в виде множества, то алгоритм упрощения сортирует в выражении неизвестные по убыванию их степени в слагаемых выражения, учитывая степени всех неизвестных, а потом начинает упрощения в соответствии с заданными правилами. В случае со списком -- сначала выражение сортируется по степеням первой неизвестной в списке, затем упрощается в соответствии с заданными правилами, затем полученное выражение сортируется по степеням второй неизвестной списка и упрощается и т. д.
Подробнее познакомиться с использованием собственных правил упрощения можно познакомиться на странице Справки, отображаемой командой ?simplify(siderels).
Примеры применения команды simplify.
> simplify(4^(1/2)+3);
> simplify((x^a)^b+4^(1/2), power);
> simplify(exp(a+ln(b*exp(c))));
> simplify(sin(x)^2+cos(x)^2, trig);
> e := cos(x)^5 + sin(x)^4 + 2*cos(x)^2 - 2*sin(x)^2 - cos(2*x):
simplify(e);
> f := -1/3*x^5*y + x^4*y^2 + 1/3*x*y^3 + 1:
simplify(f, {x^3 = x*y, y^2 = x+1});
> g:=sqrt(x^2);
> simplify(g);
> simplify(g,assume=real);
> simplify(g,assume=positive);
> simplify(g,symbolic);
9. Раскрытие скобок в выражении - expand
Порою упрощенное выражение скрывает его особенности, знание которых является желательным. В этом случае можно говорить о полезности расширения или раскрытия выражения.
Основное назначение команды expand -- представить произведение в виде суммы, т. е. данная команда раскрывает скобки в алгебраическом выражении. Она выполняется для любого полинома. Для частного двух полиномов (рациональная алгебраическая дробь) эта команда раскрывает скобки в числителе и делит каждый член полученного выражения на знаменатель, с которым она не производит никаких преобразований.
Кроме того, данная команда умеет работать с большинством математических функций и знает, как раскрывать скобки в выражениях, содержащих следующие функции: sin(x), cos(x), tg(x), ln(x), специальные математические функции и др. Эта команда имеет следующий синтаксис:
expand(expr, expr1, expr2, … , exprn)
где expr -- преобразуемое выражение, expr1, expr2, … , exprn -- необязательные подвыражения -- опции. Имеется также инертная форма данной функции -- Expand(expr). Кроме того, возможно применение операторной конструкции frontend(expans,[expr]).
Функция expand раскладывает рациональные выражения на простые дроби, полиномы на полиномиальные разложения, она способна раскрыть многие математические функции. С помощью дополнительных аргументов expr1, expr2, … , exprn можно задать расширение отдельных фрагментов в expr.
Может показаться, что команда simplify одна из самых полезных команд Марlе. Однако, это не совсем так. Как мы видели, эта команда упрощает выражение в соответствии со своими внутренними представлениями о том, что считать более простым видом выражения. Например, она всегда считает, что сумма проще произведения, хотя в некоторых случаях может оказаться как раз наоборот. Команду expand, алгоритм которой достаточно гибок, можно также использовать для упрощения вида выражения, например, если необходимо оставить не раскрытым какое-то подвыражение.
Примеры применения команды expand.
> expand((x+1)*(x+2));
> expand((x+1)/(x+2));
> expand(1/(x+1)/x);
> expand(sin(x+y));
> expand(cos(2*x));
> expand((x+1)^3/(x+2)^2);
> expand((x+1)^2*(y+z),x+1);
10. Разложение полинома на множители -- factor
Основное предназначение команды factor -- разложить на множители полином от нескольких переменных. Под полиномом в Марlе понимается выражение, содержащее неизвестные величины, в котором каждый член представлен в виде произведения целых неотрицательных степеней неизвестных величин с числовым или алгебраическим коэффициентом, т. е. коэффициент может быть целым, дробным, с плавающей точкой, комплексным числом и даже представлять собой алгебраическое выражение с другими переменными. Главная цель факторизации -- это нахождение максимального числа независимых сомножителей выражения, линейных по заданным переменным с коэффициентами наиболее простой формы.
Неизвестная в полиноме может быть представлена обращением к математической функции, параметр которой есть неизвестная.
Для алгебраических выражений функция факторизации записывается в вычисляемой и невычисляемой (инертной) формах:
factor(a) Factor(a)
factor(a,K) Factor(a,K)
Здесь a -- полином с несколькими переменными, K -- необязательное алгебраическое расширение. Для получения результата от инертной формы функции факторизации надо использовать функции вычисления evale или evalgf.
Относительно этой команды следует помнить одно правило: она раскладывает полином на множители над числовым полем, которому принадлежат коэффициенты полинома. Это означает, если все коэффициенты целые, то и в получаемых сомножителях будут только целые коэффициенты и не обязательно будут получены линейные сомножители. Второй необязательным параметр этой команды служит для указания, над каким числовым полем следует осуществлять разложение полинома. Он может иметь значение real, complex, а также один радикал или список/множество радикалов.
При применении этой же команды к алгебраической рациональной дроби (отношение двух полиномов) сначала осуществляется приведение дроби к нормальной форме (сокращение общих множителей числителя и знаменателя), а после этого и числитель, и знаменатель раскладываются на множители (с учетом поля коэффициентов).
Главная цель факторизации -- это нахождение максимального числа независимых сомножителей выражения, линейных по заданным переменным с коэффициентами наиболее простой формы. Ниже представлены примеры применения функции factor.
> factor(6*x^2+18*x-24);
> factor((x^3-y^3)/(x^4-y^4));
> factor(x^3+5);
> factor(x^3+5, 5^(1/3));
> factor(x^3+5, {5^(1/3),(-3)^(1/2)});
> factor(x^3+5.0);
> factor(x^3+5,complex);
> factor(y^4-2,sqrt(2));
> factor(x^3+y^3);
> factor(x^3+y^3,(-3)^(1/2));
11. Сокращение алгебраической дроби -- normal.
Назначение команды normal -- привести выражение, содержащее алгебраические дроби, к общему знаменателю и упростить полученную алгебраическую дробь, сократив и числитель, и знаменатель на наибольший общий делитель. Она имеет две формы вызова
normal(f)
normal(f,expanded)
где f -- алгебраическая дробь, а параметр expanded служит для указания того, что после сокращения дроби в числителе и знаменателе раскрываются скобки.
Если параметр f задан в виде списка, множества, последовательности, ряда, уравнения, отношения или функции, то команда normal последовательно применяется к компонентам f. Например, для уравнения это означает, что процедура сокращения применяется и к правой, и к левой части уравнения. В случае ряда, это означает, что упрощаются коэффициенты ряда, а в случае выражения с несколькими функциями, аргументы которых представлены алгебраическими дробями, процедура сокращения применяется к аргументу каждой функции.
Ниже представлены примеры применения функции normal.
> normal( x^2-(x+1)*(x-1)-1 );
> normal( (x^2-y^2)/(x-y)^3 );
> normal( (f(x)^2-1)/(f(x)-1) );
> normal( {2/x + y/3 = 0} );
> normal( sin(x*(x+1)-x) );
> normal( 1/x+x/(x+1) );
> normal( 1/x+x/(x+1), expanded );
12. Подстановки с помощью функций subs и subsop
При выполнении математических преобразований часто необходимо вести замену переменных в выражении, функции, уравнении и т. д., вместо какой-то переменной подставить ее представление через некоторые другие переменные. Подстановки в общем случае служат для замены одной части выражения на другую. Частными видами подстановок являются такие виды операций, как замена одной переменной на другую или замена символьного значения переменной ее численным значением. Основные операции подстановки выполняют следующие функции:
subs(x=a,e)
в выражении заменяет подвыражение на подвыражение . Эта форма команды анализирует выражение e, выделяет в нем все вхождения старого выражения x и подставляет вместо них новое выражение a;
subs(s1, … ,sn,e)
в выражении заменяет одни подвыражения на другие, выбирая их из списков s1, … ,sn вида x=a. Эта форма позволяет выполнить серию подстановок в выражение e. Подстановки выполняются последовательно, начиная с s1. Это означает, что после выполнения первой подстановки, определенной уравнением s1, Марlе отыскивает вхождения левой части уравнения s2 во вновь полученном выражении и заменяет каждое такое вхождение на выражение, заданное в левой части уравнения s2. Если подстановки заданы в виде списка или множества уравнений, то они выполняются одновременно, т. е. вхождения выражений, заданных в левых частях уравнений, определяются в исходном параметре выражения e.
subsop(eq1, eq2, … , eqi, … , eqn, e)
в выражении заменяет указанные в eqi операнды другими, указанными в правой части равенств eqi вида ni=ei, где ni -- номер операнда, ei -- выражение для замены.
Все эти функции возвращают измененное после подстановки выражение.
Следует обратить внимание на то, что результат подстановок, полученный с помощью функции subs, порой может не совпадать с ожидаемым. Поэтому полезно контролировать получаемые в результате подстановок выражения на их корректность.
Одним из важных применений подстановок является проверка правильность при решений уравнений и систем уравнений.
Ниже приведены примеры применения функций подстановок.
> subs( x=2, x^2+x+1 );
> subs( x=r^(1/3), 3*x*ln(x^3) );
> subs( sin(x)=y, sin(x)/sqrt(1-sin(x)) );
> subs( x=y, y=x, [x,y] );
> subs( {x=y, y=x}, [x,y] );
> p := x^7+8*x^6+x^2-9;
> subsop( 2=y, p );
> subsop(1=x,a+b+c);
> subsop(2=x,a+b+c);
> subsop(3=x,a+b+c);
13. Комплектование по степеням -- соllесt
Еще одна функция общего назначения -- соllесt -- служит для комплектования выражения expr по степеням указанного фрагмента x (в том числе множества либо списка). Она задается в одной из следующих форм
cоllесt (a, x) ;
cоllесt (a, x, form, fune) ;
Во второй форме этой функции дополнительно задаются параметры form (форма) и fune (функция или процедура). Параметр form может иметь два значения: recursive (рекурсивная форма) и distributed (дистрибутивная форма). Параметр fune позволяет задать имя функции, по которой будет идти комплектование expr.
> f := a*ln(x)-ln(x)*x-x;
> collect(f,ln(x));
> g := int(x^2*(exp(x)+exp(-x)),x);
> collect(g,exp(x));
> f := x*(x+1)+y*(x+1);
> coeff(f,x,1);
> g := collect(f,x);
> coeff(g,x,1);
> p := x*y+a*x*y+y*x^2-a*y*x^2+x+a*x:
collect( p, [x,y], recursive );
> collect( p, [y,x], recursive );
> collect( p, {x,y}, recursive );
> collect( p, {x,y}, distributed );
> collect( p, [x,y], distributed );
> f := a^3*x-x+a^3+a;
> collect(f,x);
> collect(f,x,factor);
> p := y/x+2*z/x+x^(1/3)-y*x^(1/3);
> collect(p,x);
> DE := diff(y(x),x,x)*sin(x)-diff(y(x),x)*sin(y(x))+sin(x)*diff(y(x),x)+
sin(y(x))*diff(y(x),x,x);
> collect(DE,diff);
> collect(DE,sin);
> collect( x^3*y+x^2*y^3+x+3, y );
14. Функции дифференцирования выражений diff и Diff
Вычисление производных функций
-го порядка -- одна из самых распространенных задач математического анализа. Для ее реализации Марlе имеет следующие основные функции:
diff (a , x1, x2, … , xn)
Diff (a , x1, x2, … , xn)
diff (a , [x1, x2, … , xn])
Diff (a , [x1, x2, … , xn])
Здесь a -- дифференцируемое алгебраическое выражение, в частности, функция ряда переменных, по которым производится дифференцирование. Функция Diff является инертной формой вычисляемой функции diff и может использоваться для естественного воспроизведения производных в документах.
Первая из этих функций (в вычисляемой и в инертной форме) вычисляет частные производные для выражения а по переменным . В простейшем случае diff (f(x) , x) вычисляет первую производную функции по переменной . При , большем , вычисления производных выполняются рекурсивно, например, diff (f(x) , x, y) эквивалентно
diff (diff (f(x) , x), y).
Оператор $ можно использовать для вычисления производных высокого порядка. Для этого после имени соответствующей переменной ставится этот оператор и указывается порядок производной. Например, выражение
diff (f(x) , x$4)
вычисляет производную 4-го порядка и эквивалентно записи
diff (f(x) , x, x, x, x),
а выражение
diff (f(x, y) , x$2, y$3)
эквивалентно
diff (f(x, y) , x , x , y , y , y ).
Примеры визуализации и вычисления производных:
> diff(sin(x),x);
> diff(sin(x),y);
> diff(sin(x),x$3);
> diff(x*sin(cos(x)),x);
> diff(tan(x),x);
> Diff(tan(x),x);
> Diff(tan(x),x) = diff(tan(x),x);
> diff(f(x),x);
> diff(f(x,y),x,y);
> Diff(a*x^n,x)=diff(a*x^n,x);
> Diff(a*sin(b*x),x)=diff(a*sin(b*x),x);
> Diff([sin(x),x^n,exp(a*x)],x)=diff([sin(x),x^n,exp(a*x)],x);
> Diff(a*x^n,x$3)=diff(a*x^n,x$3);
Как видно из приведенных примеров, функции вычисления производных могут использоваться с параметрами, заданными списками. Приведенные ниже примеры показывают эти возможности и иллюстрируют дифференцирование функции пользователя для двух переменных
> restart;
> f(x,y):=cos(x)*y^3;
> Diff(f(x,y),x)=diff(f(x,y),x);
> Diff(f(x,y),y)=diff(f(x,y),y);
> Diff(f(x,y),x,y)=diff(f(x,y),x,y);
> Diff(f(x,y),x$4)=diff(f(x,y),x$4);
> Diff(f(x,y),y$2)=diff(f(x,y),y$2);
> Diff(f(x,y),x$4,y$4)=diff(f(x,y),x$3,y$2);
Получаемые в результате дифференцирования выражения могут входить в другие выражения. Можно задавать их как функции пользователя и строить графики производных.
15. Дифференциальный оператор D
Для создания функций с производными может также использоваться дифференциальный оператор D. Порою, он позволяет создавать более компактные выражения, чем функции diff и Diff. Дифференциальный оператор можно записывать в следующих формах: D(f) или D[i](f) , где параметр f -- выражение или имя функции, i -- положительное целое число, выражение или последовательность. Оператор D(f) просто вычисляет имя производной от f, поскольку в этой форме он эквивалентен
unnaply(diff (f(x) , x) , x).
В форме D(f)(x) этот оператор подобен diff (f(x) , x).
Приведем примеры дифференцирования функций, заданных только именами, и функций с одним параметром.
> D(sin);
> D(cos^2);
> D(exp^2+cos^2+tan);
> D(sin)(x)=diff(sin(x),x);
> D[1](sin*cos);
Следующий пример показывает дифференцирование функции пользователя fun с применением дифференциального оператора D и функции diff.
> fun:=(x)->sin(x^2);
> D(fun)=diff(fun(x),x);
Дифференциальный оператор можно применять и для дифференцирования функций нескольких переменных по заданной переменной.
> fun:=(x,y,z)->x*exp(y)+ln(z);
> D[1](fun)
Warning, inserted missing semicolon at end of statement, D[1](fun);
> D[2](fun)
Warning, inserted missing semicolon at end of statement, D[2](fun);
> D[3](fun)
Warning, inserted missing semicolon at end of statement, D[3](fun);
Ряд интересных возможностей по вычислению производных предоставляет пакет расширения student.
16. Вычисление неопределенных интегралов
Вычисление неопределенного интеграла обычно заключается в нахождении первообразной функции. Это одна из распространенных операций математического анализа.
Для вычисления неопределенных и определенных интегралов Марlе предоставляет следующие функции:
int(f,x); int(f,x=a..b); int(f,x=a..b,continuous);
Int(f,x); Int(f,x=a..b); Int(f,x=a..b,continuous);
Здесь f -- подынтегральная функция, x -- переменная, по которой выполняются вычисления, a и b -- нижний и верхний пределы интегрирования, continuous -- необязательное дополнительное условие.
Марlе старается найти аналитическое значение интеграла с заданной подынтегральной функцией. Если это не удается (например, для «не берущихся» интегралов), то возвращается исходная запись интеграла. Ниже приведены примеры визуализации и вычисления неопределенных интегралов.
> Int(1/x,x)=int(1/x,x);
> Int(a*x^n,x)=int(a*x^n,x);
> Int(ln(x)^3,x)=int(ln(x)^3,x);
Обратите внимание, что в аналитическом представлении неопределенных интегралов отсутствует произвольная постоянная C. Не следует забывать о ее существовании.
Возможно вычисление сумм интегралов и интегралов сумм, а также интегралов от полиномов.
> Sum(Int(x^i,x),i=1..5);
> value(%);
> Int(Sum(x^i,i=1..5),x);
> value(%);
> P(x):=A*x^3+B*x^2+C*x+D;
> int(P(x),x);
Марlе успешно берет большинство справочных интегралов. Но не всегда форма представления интеграла совпадает с приведенной в справочнике. Иногда требуется доводка ее до нужной формы, а иногда Марlе упорно дает иное выражение (в большинстве случаев правильное). Тем не менее следует помнить, что нередко может найтись интеграл, который окажется «не по зубам» и Марlе.
17. Вычисление определенных интегралов
Другой важной операцией является нахождение в аналитической или численной форме определенного интеграла
Определенный интеграл удобно трактовать как площадь, ограниченную кривой осью абсцисс и вертикалями с координатами, равными и . При этом площадь ниже оси абсцисс считается отрицательной. Таким образом, значение определенного интеграла -- это число или вычисляемое выражение.
Для вычисления определенных интегралов используются те же функции int и Int, в которых надо указать пределы интегрирования, например, x=a..b, если интегрируется функция переменной x. Это поясняется приведенными ниже примерами
> Int(a*x^2,x=0..1)=int(a*x^2,x=0..1);
> Int(Sum(x^i,i=1..5),x=0..1)=int(Sum(x^i,i=1..5),x=0..1);
> Int(x*exp(-x),x=0..infinity)=int(x*exp(-x),x=0..infinity);
Как видно из этих примеров, среди значений пределов может быть бесконечность, обозначенной как infinity.
18. Построение графиков функций одной переменной
В ядро системы Марlе встроено ограниченное число функций построения графиков. Это, прежде всего, функция для построения двумерных графиков plot и функция для построения трехмерных графиков plot3d. Для построения специальных графиков (например, векторных полей градиентов, решения дифференциальных уравнений, построения фазовых портретов и т.д.) в пакеты системы Марlе включено большое число дополнительных графических функций. Для их вызова необходимы соответствующие указания.
Вообще говоря, средства для построения графиков в большинстве языков программирования принято считать графическими процедурами или операторами. Однако мы сохраним за ними наименование функций, в силу двух принципиально важных свойств:
* графические средства Марlе возвращают некоторые графические объекты, которые размещаются в окне документа -- в строке вывода или в отдельном графическом объекте;
* эти объекты можно использовать в качестве значений переменных, то есть переменным можно присваивать значения графических объектов и выполнять над ними соответствующие операции (например, с помощью функции show выводить на экран несколько графиков).
Графические функции заданы таким образом, что обеспечивают построение типовых графиков без какой-либо особой подготовки. Для этого нужно лишь указать функцию, график которой строится, и пределы изменения независимых переменных. Однако, с помощью дополнительных необязательных параметров (опций) можно существенно изменить вид графиков -- например, настроить стиль и цвет линий, вывести титульную надпись, изменить вид координатных осей и т, д. Эти опции имеют значения по умолчанию -- они и обеспечивают начальный вид графиков, который получается при использовании функций без задания опций в качестве их параметров.
Основная функция построения двумерных графиков plot.
В математике широко используются зависимости или . Их графики строятся на плоскости в виде ряда точек , обычно соединяемых отрезками прямых. Таким образом, используется кусочно-линейная интерполяция двумерных графиков. Если число точек графика достаточно велико (десятки или сотни), то приближенность построения не очень заметна. Для построения двумерных графиков служит функция plot. Она задается в виде
plot(f, h, v) , plot(f, h, v, o) ,
где f -- визуализируемая функция (или функции), h -- переменная с указанием области ее изменения, v -- необязательная переменная с указанием области изменения, o -- параметр или набор параметров, задающих стиль построения графика (толщину и цвет кривых, тип кривых, метки на них и т. д.). Самыми простыми формами задания этой функции являются следующие:
plot(f, xmin..xmax) -- построение графика функции, заданной только своим именем.
plot(f(x), x=xmin..xmax) -- построение графика функции f(x).
Диапазон изменения независимой переменной задается как , где и -- минимальное и максимальное значение , .. (две точки) -- составной символ, указывающий на изменение независимой переменной. Разумеется, имя здесь дано условно -- независимая переменная может иметь любое допустимое имя.
Ниже приводятся примеры построения графиков функции на интервале от до и функции на интервале от до
> plot(sin(x),x=0..2*Pi);
> f(t):=2*exp(-t/2)*cos(t);
> plot(f(t),t=0..7.5);
Помимо построения самой кривой или необходимо задать ряд других свойств графиков функций, например вывод координатных осей, тип и цвет линий графика и др. Это достигается применением параметров графика -- специальных указаний для Марlе.
...Подобные документы
Реализация алгоритмов вычисления математических объектов на конкретных вычислительных машинах. Числовые данные в практических задачах. Анализ математических моделей, связанных с применением вычислительных машин в различных областях научной деятельности.
курсовая работа [369,3 K], добавлен 13.01.2018Программирование численных методов одномерной оптимизации. Решение одномерных задач оптимизации методами последовательного поиска. Градиентные методы и их применение для оптимизации на ЭВМ математических моделей объектов. Методы нулевого порядка.
контрольная работа [257,9 K], добавлен 15.01.2009Популярная система компьютерной математики, предназначенная для автоматизации решения массовых математических задач в самых различных областях науки, техники и образования. Основные возможности Mathcad, назначение и интерфейс, графика и развитие.
презентация [3,5 M], добавлен 01.04.2014Понятие компьютерной и информационной модели. Задачи компьютерного моделирования. Дедуктивный и индуктивный принципы построения моделей, технология их построения. Этапы разработки и исследования моделей на компьютере. Метод имитационного моделирования.
реферат [29,6 K], добавлен 23.03.2010Построение и использование математических и алгоритмических моделей для решения линейных оптимизационных задач. Освоение основных приемов работы с инструментом "Поиск решения" среды Microsoft Excel. Ввод системы ограничений и условий оптимизации.
лабораторная работа [354,7 K], добавлен 21.07.2012Использование объектно-ориентированной методологии при программировании математических процессов. Среда языка программирования Delphi для решения математических задач. Объектно-ориентированные, декларативные и императивные языки программирования.
дипломная работа [1,8 M], добавлен 14.09.2011Основные особенности создания работоспособных программ по решению математических задач. Рассмотрение и характеристика типовых структурных элементов схемы алгоритма: внутренний цикл, ветвление. Анализ результатов машинного тестирования программы.
контрольная работа [502,8 K], добавлен 07.01.2013Сущность, принципы и описание методов и этапов имитационного моделирования. Процессы и применение дискретного и непрерывного алгоритма. Характеристика методов построения математических моделей для решения управленческих задач банковской системы.
курсовая работа [80,5 K], добавлен 29.05.2014Создание библиотеки классов имитационного моделирования и реализация алгоритма имитационного моделирования системы массового обслуживания "Модель комиссионного магазина". Использование для разработки среды программирования C++. Словарь предметной области.
курсовая работа [581,0 K], добавлен 23.01.2013Написание программы решения технических задач языком высокого уровня Си: определение мольной теплоемкости кислорода методом интерполяции. Построение математических моделей, графиков и таблиц по результатам расчетов, составление текста программы.
курсовая работа [382,9 K], добавлен 19.05.2011Обзор средств компьютерного имитационного моделирования по созданию веб-приложения для визуализации имитационных моделей. Система имитационного моделирования AnyLogic, Arena, SimuLab. Серверная, клиентская часть. Модель работы отдела банка и участка цеха.
дипломная работа [3,3 M], добавлен 25.05.2015Чарлз Бэббидж и его чудесные машины. Ada - название единого языка программирования американских вооруженных сил. Метод разделения математических расчетов. Причастность Ады Лавлейс к разработке многофункционального инструмента для решения прикладных задач.
статья [628,1 K], добавлен 06.04.2010Основы технологии моделирования Arena. Построение простой имитационной модели. Моделирование работы системы обслуживания покупателей на кассе супермаркета. Построение модели IDEF3. Анализ результатов имитационного моделирования и аналитического решения.
курсовая работа [659,1 K], добавлен 24.03.2012Сущность и основы программирования с использованием трёхмерной графики. Построение объемных фигур с последующей их демонстрацией на экране монитора. Обучение работе с программным продуктом. Нереализованные возможности программы и ее основные компоненты.
курсовая работа [294,6 K], добавлен 15.06.2009Сущность построения, особенности применения и теоретическое обоснование алгоритмов приближенного решения математических задач. Основы численного метода, нахождение интерполяционного полинома методом Лагранжа. Руководство программиста и пользователя.
курсовая работа [527,6 K], добавлен 16.08.2012Использование программного обеспечения MatLab для выполнения математических расчетов в области линейной алгебры, теории информации и обработки сигналов, автоматического и автоматизированного управления. Возможности стандартного интерфейса программы.
курсовая работа [178,7 K], добавлен 08.08.2011Возможности Mathcad для выполнения математических и технических расчетов. Графический интерфейс, инструменты для работы с формулами, числами, графиками и текстами. Операторы и логические функции для численного и символьного решения математических задач.
статья [208,6 K], добавлен 01.05.2010Характеристика, свойства и возможности программного пакета Maple. Применение аналитических, численных, графических возможностей системы Maple для моделирования физических явлений. Использование графики и анимации в системе Maple в педагогическом процессе.
курсовая работа [1,5 M], добавлен 12.01.2016Методы языка программирования C#. Алгоритмизация и программирование задач на языке высокого уровня C#. Внутренний цикл, ветвление, внешний цикл, вложенные друг в друга структуры ветвления. Вывод элементов массива на экран. Остальные элементы матрицы.
курсовая работа [250,2 K], добавлен 27.02.2015Использование вычислительных возможностей программ общего назначения при решении базовых геодезических задач. Решение прямой угловой засечки по формулам Юнга и обратной геодезической задачи. Решение с помощью системы для математических расчетов MATLAB.
курсовая работа [11,4 M], добавлен 31.03.2015