Моделирование физических задач в пакете MATHCAD

Рубрика : 1 курс, Математика

Моделирование физических задач в пакете MATHCADоригинал с картинками смотрите здесь

Введение.

Математические  и   научно-технические   расчеты   являются   важной   сферой применения  персональных  компьютеров.  Часто  они  выполняются  с   помощью программ,  написанных  на  языке  высокого  уровня,  например  Бейсике  или Паскале. Сегодня эту работу нередко выполняет обычный пользователь  ПК.  Для этого он вынужден изучать языки программирования  и  многочисленные,  подчас весьма тонкие капризные численные методы  математических  расчетов.  Нередко при этом из под руки способного физика, химика или инженера выходят  далёкие от совершенства программы.

Это не вполне нормальное положение может изменить к лучшему применение интегрированных программных  систем  автоматизации  математических  расчетов (Eureka,  MathCAD,  MatLab  и  др.).  Здесь  рассматриваются  возможности одной из таких систем — MathCAD.

Фирма MathSoft Inc.(США) выпустила первую версию  системы  в  1986  г. Главная отличительная особенность системы MathCAD заключается в  её  входном языке, который максимально приближён к естественному математическому  языку, используемому как  в  трактатах  по  математике,  так  и  вообще  в  научной литературе. В ходе работы с системой  пользователь  готовит  так  называемые документы.  Они  одновременно  включают  описания   алгоритмов   вычислений, программы управляющие работой систем, и результат  вычислений.  По  внешнему виду тексты мало напоминают обычной программы.

Возможности системы.

Mathcad —это популярная система компьютерной математики, предназначенная  для автоматизации решения массовых математических задач в самых различных  областях науки, техники и образования. Название системы происходит от двух  слов — MATHematica (математика) и CAD (Computer Aided Design — системы  автоматического проектирования, или САПР). Так что вполне правомерно  считать Mathcad математическими САПР.

Сегодня различные версии Mathcad являются математически ориентированными универсальными системами, которые далеко опережают в развитии системы электрических плит б у

Помимо собственно вычислений, как численных, так  и аналитических, они позволяют с блеском решать сложные оформительские  задачи, которые с трудом даются популярным текстовым редакторам или  электронным таблицам. С помощью Mathcad можно, например, готовить статьи,  книги, диссертации, научные отчеты, дипломные и курсовые проекты не только  с качественными текстами, но и с легко осуществляемым набором самых  сложных математических формул, изысканным графическим представлением  результатов вычислений и многочисленными «живыми» примерами. А применение  библиотек и пакетов расширения обеспечивает профессиональную ориентацию  Mathcad на любую область науки, техники и образования.
К важным достоинствам новых версий Mathcad относятся настройка под любой мало-мальски известный тип печатающих устройств, богатый набор шрифтов, возможность  использования всех инструментов Windows, прекрасная графика и современный многооконный интерфейс. В новые версии Mathcad включены эффективные средства оформления документов в цвете, возможность создания анимированных (движущихся) графиков и звукового сопровождения. Тут же текстовый, формульный и графический редакторы, объединенные с мощным вычислительным потенциалом. Предусмотрена и возможность объединения с другими математическими и графическими системами для решения особо сложных задач. Отсюда и название таких систем — интегрированные системы.

Впрочем, в решении задач интеграции создатели Mathcad пошли намного дальше — эта система обеспечивает подлинную интеграцию с целым рядом других математических, графических и офисных систем. Для этого в неё включен специальный системный интегратор MathConnex. Не давно вышла новейшая версия MathCad 14. В ней существенно увеличено число встроенных функций, улучшены графические возможности, повышены скорость вычислений и удобство работы. На MathCad 14 построена моя Курсовая работа.

Состав системы Mathcad.
Как интегрированная система Mathcad 14 содержит следующие основные
компоненты:
1. Редактор документов — редактор с возможностью вставки математических выражений, шаблонов графиков и текстовых комментариев;
2. MathConnex — системный интегратор, обеспечивающий интеграцию Mathcad с рядом иных программных продуктов;
3. Центр ресурсов — система управления ресурсами системы;
4. Электронные книги — электронные книги с описанием типовых расчетов в различных областях науки и техники;
5. Справочная система — система для получения справочных данных по тематическому и индексному каталогу, а также для поиска нужных данных по ключевому слову или фразе;
6.Быстрые шпаргалки  QuickSheets — короткие примеры с минимальными комментариями, описывающие применение всех встроенных операторов и функций системы;
7. Броузер Интернета — собственное средство выхода в Интернет.
Системы реализуют типовые и весьма обширные возможности Windows 95/98/NT/XP, включая доступность множества шрифтов, работу со всеми типами принтеров, одновременное выполнение нескольких разнохарактерных задач и (в последних версиях) реализацию технологии обмена объектами OLE2. В режиме редактирования возможна одновременная работа с рядом документов и перенос объектов из одного окна в другое. Предусмотрен также импорт любых графических изображений — от простых и специальных графиков функций до многокрасочных репродукций художественных произведений. Введены средства анимации рисунков и воспроизведения видеофайлов со звуковым стереофоническим сопровождением. Это наряду с улучшенной визуализацией сложных расчетов позволяет пользователю готовить электронные статьи и книги высокого качества. Начиная с версии Mathcad 8.0, было предусмотрено упрощенное построение двумерных графиков и вращение трехмерных графиков мышью. Теперь в версию Mathcad 14 введено упрощенное построение и трехмерных графиков. Особый интерес представляют встраиваемые в систему электронные книги, содержащие справки и примеры применений системы по ряду разделов математики, механики, физики, электротехники и радиотехники, а также по интерфейсу системы. Справки содержат математические формулы и иллюстрации. Можно выделить нужную справку (формулу или рисунок) и перенести ее в текст документа. Библиотеки и пакеты расширений системы Mathcad 14 — еще одно мощнейшее средство расширения возможностей системы и ее профессиональной ориентации на решение задач в различных предметных областях. Особо надо отметить системный интегратор MathConnex. По существу это отдельное приложение, обеспечивающее использование в составе одного документа блоков из разных систем, например Mathcad, Excel, MATLAB и др. Интеграции различных математических и графических систем, несомненно, принадлежит будущее компьютерной математики, и MathConnex — хорошее начало этому. Работа с символами кириллицы.

Все версии Mathcad под Windows позволяют работать как с латинскими буквами, так и с кириллицей (буквами русского алфавита), греческим алфавитом и вообще с любыми символами, доступными в Windows. Более того, благодаря применению масштабируемых TTF-шрифтов можно управлять как размером символов, так и их начертанием (делая буквы прямыми или наклонными, тонкими или жирными). Все это дает возможность готовить документы и электронные книги высокого качества как на английском, так и на русском языках. Впрочем, не стоит забывать, что это достоинство — результат работы системы в среде Windows, которая может быть русифицированной. Это порой ведет к разноязычности надписей на элементах интерфейса. Греческие символы и математические спецзнаки раньше были недоступны в текстовых комментариях, теперь же и этот недостаток полностью устранен.

Понятие о входном языке общения c компьютером, сравнение 2-х программных сред Delphi и MathCad.
Понятие о входном языке общения и языке реализации Mathcad Как следует из вышесказанного, общение пользователя с системой Mathcad происходит на уровне так называемого входного языка, максимально приближенного к обычному языку описания математических задач. Поэтому решение таких задач не требует программирования в общепринятом смысле — написания программ на некотором промежуточном языке или в машинных кодах. Вот, к примеру, как выглядит вычисление квадрата переменной х с заданным значением х=3 на популярном языке Delphi и на Mathcad:

Программа на Delphi
{смотрите в оригинале, по ссылке выше}

Программа на MAthcad
{смотрите в оригинале, по ссылке выше}

Нетрудно заметить, что запись выражений на Mathcad куда более естественна, чем на Delphi. К тому же она существенно короче. Эти достоинства проявляются еще сильнее при более сложных вычислениях. Тем не менее это не означает, что в системе нет своего языка программирования. В действительности он есть, но это математически ориентированный особый язык программирования сверхвысокого уровня, используемый в основном как язык диалога с системой. Входной язык Mathcad относится к интерпретируемому типу. Это означает, что, когда система опознает какой-либо объект, она немедленно исполняет указанные в блоке операции. Объектами системы могут быть формульные, текстовые и графические блоки. При этом формульные блоки могут иметь особые признаки — атрибуты, например, активности, пассивности и оптимизации. Важно сразу учесть, что Mathcad выполняет действия над блоками в строго определенном порядке — блоки анализируются (оцениваются) слева направо и сверху вниз. Это означает, что блоки нельзя располагать в документе произвольно. Блоки, готовящие какие-либо операции, должны предшествовать блокам, которые выполняют эти операции. Исключением являются блоки с глобальным определением (они также будет рассмотрены позже). Их можно располагать в любом месте документа, например в конце. В подавляющем большинстве расчетных задач входной язык общения с Mathcad позволяет задавать их решение в виде вводимых с помощью операторов и функций математических формул и указывать тип желаемых результатов (таблицы или графики). Специальные приемы предусмотрены лишь для задания циклического изменения переменных и создания так называемых ранжированных переменных, имеющих набор значений.
Обратим внимание на то, что визуально-ориентированный язык общения системы Mathcad отличается от языка реализации системы, то есть обычного языка программирования высокого уровня, на котором написана система. Языком реализации системы Mathcad является один из самых мощных языков высокого уровня — C++. По существу, входной язык системы — промежуточное звено между скрытым от пользователя языком документа и языком реализации системы. По мере того как пользователь создает (средствами текстового, формульного и графического редакторов) в окне редактирования объекты (тексты, формулы, таблицы и графики), система сама составляет программу на некотором промежуточном языке связи, которая хранится в оперативной памяти до тех пор, пока не будет записана на диск в виде файла с расширением. mcd. Однако важно подчеркнуть, что от пользователя не требуется знание языков программирования (реализации и связи), достаточно освоить приближенный к естественному математическому языку входной язык системы. В версии Mathcad 14 значительно снижены требования и к знанию даже входного языка. Практически все операторы, имеющие вид привычных математических символов, можно выбирать мышью в палитрах математических объектов, а большинство математических функций (например, sin, cos, ехр и т. д.) имеют естественную форму задания, например, sin (х) так и вводится — sin (х). К тому же есть возможность выбора функций из списка, имеющегося в специальном окне, что резко уменьшает вероятность ошибок при вводе. Этот список выводится с помощью кнопки f (x) на панели инструментов. В Mathcad эффективно решена проблема сквозной передачи данных от одного объекта к другому, например, от одного математического выражения к другому, от него к таблицам, от таблиц к графикам и т. д. Поэтому изменение в любой формуле или в задании входных данных тут же ведет к пересчету задачи по всей цепи взаимодействия объектов (это не относится, однако, к символьным операциям, реализуемым с помощью команд меню).

Средства повышенной эффективности вычисления.
Средства повышения эффективности вычислений и их оптимизация Как отмечалось, входной язык системы Mathcad — интерпретируемый. В интерпретаторах, например, Delphi, листинг программы пользователя анализируется системой сверху вниз (а в пределах строки — слева направо), и любые указания в программе тут же выполняются. Так же просматриваются блоки в системе Mathcad. Как только блок опознается, система автоматически запускает внутренние подпрограммы для выполнения необходимых действий, например, вычисления по формуле, вывода таблицы значений вектора, построения рисунка по его шаблону и т. д. Интерпретаторы работают медленно, поэтому не случайно, что пользователи, работавшие со старыми версиями Mathcad, отмечали медлительность систем, особенно при сложных вычислениях и при построении графиков. Медлительность является и следствием работы системы в графическом режиме, когда малейшее изменение содержания экрана требует его полной перерисовки.

В последние версии Mathcad введена экспертная система SmartMath. Эта система старается использовать при численных вычислениях конечные формулы, полученные в результате символьных (аналитических) преобразований. Часто (хотя и не всегда) это дает значительное ускорение вычислений в сравнении с их реализацией численными методами. Операция оптимизации вычислений с помощью системы SmartMath вводится специальными атрибутами (знак * у формул) и словами — директивами. Их число в новых версиях Mathcad значительно увеличено, и для ввода операторов и директив символьной математики добавлена специальная палитра. Таким образом система SmartMath превратилась в полноправного члена семьи Mathcad. Наиболее развит этот подход в самом мощном варианте системы — Mathcad 14 Premium, в состав которой введено оптимизирующее расширение The Expert Solver, автоматически включающее «на всю катушку» средства SmartMath.

Средства расширения систем Mathcad Начиная с версии Mathcad PLUS 5.0 в систему введена возможность ее расширения функциями, которые задаются обычными программами на языке С или C++. Однако это не позволяет эффективно и просто решить проблему расширения. На С или C++ хорошо программируют системные программисты, но они весьма редко разбираются в сути математических задач. Как отмечалось, начиная с версии Mathcad PLUS 6.0 у системы появилась весьма изящная возможность записи встроенных в документ программных модулей, реализующих типовые управляющие структуры и записанных в виде обычных программ. Так что теперь Mathcad предоставляет программистам полную свободу для самовыражения. Средством локального расширения системных возможностей являются также функции пользователя. Однако в наивысшей степени средства расширения системы Mathcad представлены сменными проблемно-ориентированными электронными книгами, библиотеками и пакетами расширения. Они позволяют настроить систему на наиболее эффективное решение задач в любой области науки и техники — в математике, физике и химии, в астрономии, механике, электротехнике и радиотехнике, в биологии и экономике, в финансах, статистике и т. д. Электронные книги — это пакеты для решения задач в определенной области науки и техники, ориентированные на типовые средства систем класса Mathcad. Пакеты расширения — это укрупненные библиотеки, поставляемые с электронными книгами, учитывающими новые операторы и функции, которые пакеты расширения вводят в базовую систему Mathcad. Входящие в них электронные книги нельзя использовать без соответствующих библиотек. Библиотеки — это комплекты электронных книг и пакетов расширения.

Ввод формул.

Формулы — основные объекты рабочего листа. Новый объект по умолчанию является формулой. Чтобы начать ввод формулы, надо установить крестообразный курсор в нужное место и начать ввод букв, цифр, знаков операций. При этом создается область формулы, в которой появляется уголковый курсор, охватывающий текущий элемент формулы, например имя переменной (функции) или число. При вводе бинарного оператора по другую сторону знака операции автоматически появляется заполнитель в виде черного прямоугольника. В это место вводят очередной операнд. Для управления порядком операций используют скобки, которые можно вводить вручную. Уголковый курсор позволяет автоматизировать такие действия. Чтобы выделить элементы формулы, которые в рамках операции должны рассматриваться как единое целое, используют клавишу ПРОБЕЛ. При каждом ее нажатии уголковый курсор «расширяется», охватывая элементы формулы, примыкающие к данному. После ввода знака операции элементы в пределах уголкового курсора автоматически заключаются в скобки. Элементы формул можно вводить с клавиатуры или с помощью специальных панелей управления. Панели управления открывают с помощью меню View (Вид) или кнопками панели управления Math (Математика). Для ввода элементов формул предназначены следующие панели:
. панель управления Arithmetic (Счет) для ввода чисел, знаков типичных математических операций и наиболее часто употребляемых стандартных функций;
. панель управления Evaluation (Вычисление) для ввода операторов вычисления и знаков логических операций;
. панель управления Graph (График) для построения графиков;
. панель управления Matrix (Матрица) для ввода векторов и матриц и задания матричных операций;
. панель управления Calculus (Исчисление) для задания операций, относящихся к математическому анализу;
. панель управления Greek (Греческий алфавит) для ввода греческих букв (их можно также вводить с клавиатуры), если сразу после ввода соответствующего латинского символа нажимать сочетание клавиш CTRL+G, например [a][CTRL+G] — (, [W][CTRL+G]— ();
. панель управления Symbolic (Аналитические вычисления) для управления аналитическими преобразованиями.

Введенное выражение обычно вычисляют или присваивают переменной. Для вывода результата выражения используют знак вычисления, который выглядит как знак равенства и вводится при помощи кнопки Evaluate Expression (Вычислить выражение) на панели инструментов Evaluation (Вычисление).

{смотрите в оригинале, по ссылке выше}

Стандартные и пользовательские функции.

Произвольные зависимости между входными и выходными параметрами задаются при помощи функций. Функции принимают набор параметров и возвращают значение, скалярное или векторное (матричное). В формулах можно использовать стандартные встроенные функции, а также функции, определенные пользователем. Чтобы использовать функцию в выражении, надо определить значения входных параметров в скобках после имени функции. Имена простейших математических функций можно ввести с панели инструментов Arithmetic (Счет). Информацию о других функциях можно почерпнуть в справочной системе. Вставить в выражение стандартную функцию можно при помощи команды Insert > Function (Вставка > Функция). В диалоговом окне Insert Function (Вставка функции) слева выбирается категория, к которой относится функция, а справа — конкретная функция. В нижней части окна выдается информация о выбранной функции. При вводе функции через это диалоговое окно автоматически добавляются скобки и заполнители для значений параметров. Пользовательские функции должны быть сначала определены. Определение задается при помощи оператора присваивания. В левой части указывается имя пользовательской функции и, в скобках, формальные параметры — переменные, от которых она зависит. Справа от знака присваивания эти переменные должны использоваться в выражении. При использовании пользовательской функции в последующих формулах ее имя вводят вручную.

В диалоговом окне Insert Function (Вставка функции) оно не отображается. Приведем обозначения основных из них:
1. Тригонометрические и обратные функции:
sin (z), cos (z), tan (z), asin (z), acos (z), atan (z)
z — угол в радианах
2. Гиперболические и обратные функции:
sinh (z), cosh (z), tanh (z), asinh (z), acosh (z), atanh (z)
3. Экспоненциальные и логарифмические:
exp (z) — ez
ln (z) — натуральный логарифм
log (z) — десятичный логарифм
4. Cтатистические функции:
mean (x)    — среднее значение
var (x)     — дисперсия
stdev (x)   — среднеквадратическое отклонение
cnorm (x) — функция нормального рапределения
erf (x)     — функция ошибки
Г(x) — гамма-функция Эйлера
5. Функции Бесселя:
J0 (x), J1 (x), Jn (n,x)    — функции Бесселя первого порядка
Y0 (x), Y1 (x), Yn (n,x) — функции Бесселя второго порядка
6. Функции комплексного переменного:
Re (z)      — вещественная часть комплексного числа
Im (z)      — мнимая часть комплексного числа
arg (z)     — аргумент комплексного числа
7. Преобразование Фурье:
U:=fft (V)  — прямое преобразование (V- вещественное)
V:=ifft (U) — обратное преобразование (V- вещественное)
U:=cfft (V) — прямое преобразование (V- комплексное)
V:=icfft (U) — обратное преобразование (V- комплексное)
8. Корреляционная функция — позволяет рассчитывать коэффициент
корреляции двух векторов vx и vy и определить уравнение линейной регрессии:
corr (vx,vy) — коэффициент корреляции
slope (vx,vy) — коэффициент наклона линии регрессии
intercept (vx,vy) — начальная координата линии регрессии
9. Линейная интерполяция:
linterp (vx,vy,x)
vx,vy- векторы значений аргумента и функций.   x- значение аргумента, для  которого проводится интерполяция
10. Функция для определения корней алгебраических и трансцендентных уравнений:
root (уравнения, переменная) — значение переменной, когда уравнение равно нулю
11. Датчик случайных  чисел:
rnd (x) — случайное число с равномерным распределением от 0 до x
12. Целая часть переменной:
floor (x) — ближайшее наименьшее целое число
ceil (x) — ближайшее наибольшее целое число
13. Выделение остатка:
mod (x,y) — остаток от деления x на y
14. Остановка итерации:
until (x,y) — когда x<0
15. Функция условного перехода:
if (условие,x,y) — если условие выполняется, то функция равняется x, иначе y
{смотрите в оригинале, по ссылке выше}
Построение графиков.

Чтобы построить двумерный график в координатных осях Х-У, надо дать  команду  Insert> Graph > X-Y Plot (Вставка > График > Декартовы координаты). В  области размещения графика находятся заполнители для указания отображаемых  выражений и диапазона изменения величин. Заполнитель у середины оси  координат предназначен для переменной или выражения, отображаемого по этой  оси. Обычно используют диапазон или вектор значений. Граничные значения по  осям выбираются автоматически в соответствии с диапазоном изменения  величины, но их можно задать и вручную. В одной графической области можно  построить несколько графиков. Для этого надо у соответствующей оси перечислить несколько выражений через запятую. Разные кривые изображаются  разным цветом, а для форматирования графика надо дважды щелкнуть на  области графика. Для управления отображением построенных линий служит  вкладка Traces (Линии) в открывшемся диалоговом окне. Текущий формат каждой линии приведен в списке, а под списком расположены элементы  управления, позволяющие изменять формат. Поле Legend Label (Описание)  задает описание линии, которое отображается только при сбросе флажка Hide  Legend (Скрыть описание). Список Symbol (Символ) позволяет выбрать маркеры для отдельных точек, список Line (Тип линии) задает тип линии, список  Color (Цвет) — цвет. Список Type (Тип) определяет способ связи отдельных  точек, а список Width (Толщина) — толщину линии. Точно так же можно  построить и отформатировать график в полярных координатах. Для его  построения надо дать команду Insert > Graph > Polar Plot (Вставка > График  > Полярные координаты). Для построения  простейшего трехмерного графика,  необходимо задать матрицу значений. Отобразить эту матрицу можно в виде  поверхности — Insert > Graph > Surface Plot (Вставка > График >  Поверхность), столбчатой диаграммы — Insert > Graph > 3D Bar Plot (Вставка  > График > Столбчатая диаграмма) или линий уровня — Insert > Graph >  Contour Plot (Вставка > График > Линии уровня).

Для отображения векторного поля при помощи команды Insert > Graph > Vector Field Plot (Вставка > График > Поле векторов) значения матрицы должны быть комплексными. В этом случае в каждой точке графика отображается вектор с координатами, равными действительной и мнимой частям элемента матрицы. Во всех этих случаях после создания области графика необходимо указать вместо заполнителя имя матрицы, содержащей необходимые значения. Для построения параметрического точечного графика командой  Insert > Graph > 3D Scatter Plot (Вставка > График > Точки в пространстве) необходимо задать три вектора с одинаковым числом элементов, которые соответствуют х- , у- и  z-координатам точек, отображаемых на графике. В области графика эти три вектора указываются внутри скобок через запятую.

Аналогичным образом можно построить поверхность, заданную параметрически. Для этого надо задать три матрицы, содержащие, соответственно, х- , у- и z- координаты точек поверхности. Теперь надо дать команду построения поверхности Insert > Graph >Surface Rot (Вставка > График > Поверхность) и указать в области графика эти три матрицы в скобках и через запятую. Таким образом можно построить практически любую криволинейную поверхность, в том числе с самопересечениями.
{смотрите в оригинале, по ссылке выше}

Например 3D Surfase Plot график функции

Или функция в 3D Bar Plot

Примеры решений задач.

В качестве примеров программирования я взял 2 задачи:

1) Движение тела в однородном поле с учётом силы сопротивления
Тело бросили под углом к горизонту в однородном поле тяжести. Начальные координаты,
скорость тела и коэффициент сопротивления воздуха известны. Напишите дифференциальное уравнение и постройте траекторию движения тела.

Прежде чем построим график, где будут силы сопротивления, построим график, где нет силы сопротивления, а потом с силой сопротивления и сравним графики.

Мы  видим параболу.
Теперь посмотрим график,  с силой сопротивления.

Графики существенно отличаются

2)Колебательное движение

Имеется колебательная система, состоящая из тела, подвешенного на пружине. Её вывели из состояния равновесия и предоставили самой себе. Получите график колебательного движения и фазовую кривую.

Фазовый портрет:

Литература:

1.    Симонович С.В. «Информатика Базовый курс». М., 2001.
2.    Майер Р.В. «Решение физических задач с помощью пакета MathCAD»
Г., 2006.
3.    Дьяков В. «MathCad». М., 2003.
4.    Плис А.И. Сливина Н.А. «MathCad математический практикум». М., 2005.
5.    http://rrc.dgu.ru/res/exponenta/soft/MathCad/ MathCad.asp.htm


Хотите получать материалы на e-mail?