Как решать в mathcad
Перейти к содержимому

Как решать в mathcad

  • автор:

Решение систем линейных уравнений методом гаусса в mathcad

Решение систем линейных уравнений методом гаусса в mathcad

РЕШЕНИЕ УРАВНЕНИЙ И СИСТЕМ УРАВНЕНИЙ

4 Решение уравнений и систем средствами Mathcad

Система Mathcad обладает широкими возможностями численного решения уравнений и систем уравнений.

Функция root, блоки Given…Find, Given…Minerr

В ходе численного решения обычно выделяют два этапа:

  • отделение корней – определение интервала нахождения каждого корня или определение приблизительного значения корня. В системе Mathcad наиболее наглядным будет отделение корней уравнения графическим способом;
  • уточнение корней – нахождение численного значения корня с указанной точностью.

Точность нахождения корня устанавливается с помощью системной переменной TOL (Convergence Tolerance – Допуск сходимости), которая по умолчанию равна 10 -3 . Чем меньше значение TOL, тем точнее, вообще говоря, находится корень уравнения. Однако оптимальным является TOL = 10 -5 . Переопределить значение TOL можно в окне математических свойств документа Math Options на вкладке Build-In Variables (Встроенные переменные) или присваиванием, например, TOL:=0.0001.

Для решения одного уравнения с одной неизвестной предназначена встроенная функция root, которая в общем виде задается

root(f(x), x, [a, b])

и возвращает значение переменной x, при котором функция f(x) обращается в ноль. Аргументы функции root:

  • f(x) – функция левой части уравнения f(x) = 0;
  • x – переменная, относительно которой требуется решить уравнение;
  • a, b (необязательные) – действительные числа, такие что a -1 слева: A -1 Ax=A -1 b. Учитывая, что A -1 A, вектор-столбец решений системы можно искать в виде
  1. задается матрица коэффициентов при неизвестных системы A;
  2. задается столбец свободных членов b;
  3. вводится формула для нахождения решения системы X:=A -1 b;
  4. выводится вектор решений системы X=.

Кроме того, пакет Mathcad имеет встроенную функцию

lsolve(A, b),

возвращающую вектор-столбец решений системы линейных алгебраических уравнений. Аргументами функции lsolve являются матрица коэффициентов при неизвестных системы и столбец свободных членов. Порядок решения аналогичен рассмотренному, но вместо формулы X:=A -1 b используется X:=lsolve(A, b).

Реализовать широко известный метод Гаусса решения систем линейных уравнений позволяет встроенная функция rref(M), возвращающая ступенчатый вид матрицы M. Если в качестве аргумента взять расширенную матрицу системы, то в результате применения rref получится матрица, на диагонали которой – единицы, а последний столбец представляет собой столбец решений системы.

Решение системы линейных уравнений можно осуществить с помощью блоков Given…Find, Given…Minerr. При этом неизвестным системы задается произвольное начальное приближение, а проверка необязательна.

Порядок выполнения лабораторной работы

  1. Загрузить Mathcad Start / All Programs / Mathsoft Apps / Mathcad (Пуск / Все программы / Mathsoft Apps / Mathcad).
  2. Сохранить в личной папке на диске z:\ новый документ с именем ФИО1, лучше использовать латинские буквы. Производить сохранение регулярно в процессе работы (Ctrl + S).
  3. Вставить текстовую область Insert / Text Region (Вставка / Область текста) и ввести в поле документа текст:

Лабораторная работа № 4
Решение уравнений и систем в Mathcad.

  1. В новой текстовой области ввести фамилию, имя, отчество, учебный шифр и номер варианта.
  2. Выполнить задание 1.

Задание 1. Решить уравнение .

Решение.

Решение данного уравнения будем проводить в два этапа: отделение корней уравнения графически, уточнение корней уравнения.

Определим функцию f(x), равную левой части данного уравнения, когда правая равна нулю:

Зададим ранжированную переменную x на некотором диапазоне с мелким шагом, например:

Вставим в документ графическую область. Для этого выберем дважды пиктограмму с изображением графика сначала на панели Math (Математика), затем на палитре графиков Graph или выполним из главного меню последовательность команд Insert / Graph / X-Y Plot (Вставка / График / X-Y Зависимость).

Снизу по оси абсцисс наберем x, а сбоку по оси ординат введем f(x).

Для появления графика щелкнем левой клавишей мыши вне графической области.

Отформатируем график функции f(x). Для этого щелкнем правой клавишей мыши в области графика и выберем в контекстном меню команду Format (Формат). Установим пересечение осей графика (CrossedТолько оси), добавим вспомогательные линии по координатным осям (Grid LinesВспомогательные линии). Отменим при этом автосетку (AutogridАвтосетка) и установим количество линий сетки, равное 10.

Для подтверждения внесенных изменений нажмем последовательно кнопки Apply (Применить) и ОК.

После указанных преобразований график функции f(x) будет выглядеть следующим образом:

Из графика функции f(x) видно, что уравнение имеет три корня, которые приблизительно равны: x1 ≈ -1; x2 ≈ 1; x3 ≈ 2,5.

Этап отделения корней завершен.

Уточним теперь корни уравнения с помощью функции root.

Присвоим начальное приближение переменной x и укажем точность поиска корня:

Уточним заданное приближение к значению корня с помощью функции root:

Выполним проверку, подтверждающую, что первый корень найден с заявленной точностью:

Начальное приближение можно не задавать при использовании в качестве аргументов root границ отрезка нахождения корня, например, второй корень можно уточнить:

Задание 2. Решить уравнение .

Решение.

Напечатаем левую часть уравнения, не приравнивая выражение к 0, и выделим синим курсором переменную x:

Выберем из главного меню Symbolics / Polynomial Coefficients (Символика / Коэффициенты полинома). Появившийся вектор коэффициентов полинома выделим целиком синим курсором и вырежем в буфер обмена, используя кнопку Вырезать на панели инструментов Formatting (Форматирование) или комбинацию клавиш Ctrl + X.

Напечатаем v := и вставим вектор из буфера обмена, используя кнопку Вставить на панели инструментов или комбинацию клавиш Ctrl + V.

Для получения результата напечатаем polyroots(v) =:

Задание 3. Решить систему линейных уравнений Сделать проверку.

Решение.

1-й способ. Использование блока Given … Find.

Зададим всем неизвестным, входящим в систему уравнений, произвольные начальные приближения, например:

Напечатаем слово Given. Установим визир ниже и наберем уравнения системы, каждое в своем блоке. Используем при этом логический знак равенства (Ctrl + =).

После ввода уравнений системы напечатаем X := Find(x, y, z) и получим решение системы в виде вектора, состоящего из трех элементов:

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

После набора знака «=» в каждой строке должен быть получен результат, равный или приблизительно равный правой части системы. В данном примере системная переменная ORIGIN = 1.

2-й способ. Использование блока Given…Minerr.

Порядок решения системы этим способом аналогичен порядку использования блока Given … Find и представлен ниже вместе с проверкой:

3-й способ. Решение системы линейных уравнений матричным способом.

Создадим матрицу А, состоящую из коэффициентов при неизвестных системы. Для этого напечатаем A := , вызовем окно создания массивов (Ctrl + M). Число строк (Rows) и столбцов (Columns) матрицы данной системы равно 3. Заполним пустые места шаблона матрицы коэффициентами при неизвестных системы, как показано ниже:

Зададим вектор b свободных членов системы. Сначала напечатаем b :=, затем вставим шаблон матрицы(Ctrl + M), где количество строк (Rows) равно 3, а количество столбцов (Columns) равно 1. Заполним его:

Решим систему матричным способом по формуле

Решим систему с помощью функции lsolve:

Для проверки правильности решения системы, полученного матричным способом, достаточно вычислить произведение A·X, которое должно совпасть с вектором-столбцом свободных членов b:

MathCAD — это просто! Часть 4. Системы линейных алгебраических уравнений

Итак, мы с вами продолжаем изучать MathCAD — самую дружелюбную к пользователю математическую среду из существующих в настоящее время. Пока мы занимались тем, что изучали способы решения уравнений — трансцендентных и алгебраических, и теперь вы знаете, как их решать с помощью MathCAD’а в общем виде или численно. Как вы могли убедиться из материала третьей части, численное решение уравнений — не такая простая задача, как может показаться с первого взгляда, однако и не такая сложная, если построить график уравнения. Но просто уравнения — это, согласитесь, довольно скучно, потому что в жизни, как правило, уравнения по одиночке не встречаются. Поэтому сегодня мы перейдем к более сложной, а значит, и более интересной, теме — попробуем решать системы уравнений. Я сказал «попробуем»? Простите, пожалуйста — я, наверное, оговорился. Конечно, не попробуем, а научимся — потому что благодаря MathCAD’у можно быть уверенным в том, что подобные попытки увенчаются успехом. Готовы? Ну что же, тогда вперед.

Решение систем с помощью функции lsolve

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

Для обозначения систем линейных алгебраических уравнений у математиков есть своя аббревиатура — СЛАУ. Ее используют намного чаще, чем полное название, что, в общем-то, вполне естественно — эта аббревиатура и произносима легко, и не перекрывается с другими математическими аббревиатурами. Так что и мы с вами тоже будем ее применять. СЛАУ называется система уравнений следующего вида:
k11x1 + k12x2 + … + k1nxn + l1 = 0
k12x1 + k22x2 + … + k2nxn + l2 = 0

kn1x1 + kn2x2 + … + knnxn + ln = 0

Здесь kij и li — какие-то числовые константы, называемые, соответственно, коэффициентами и свободными членами уравнений, а xj — переменные. Такие уравнения обычно записывают также с помощью матриц:
KX + L = 0

Здесь K — матрица (kij), составленная из коэффициентов при переменных величинах, где i — номер строки матрицы, а j — номер столбца. X и L — это, соответственно, векторы, составленные из переменных и свободных членов. Собственно, при решении СЛАУ с помощью MathCAD мы будем записывать СЛАУ именно в таком виде, потому что решение СЛАУ в MathCAD реализовано именно с помощью матричных методов. Возможно, вы что-нибудь слышали о методах решения СЛАУ Гаусса и Крамера, но даже если и нет, ничего страшного в этом нет — MathCAD тем и удобен, что с его помощью можно решать уравнения, не задумываясь над тем, каким именно алгоритмом пользуется математическая система при их решении.

Итак, для начала давайте посмотрим, каким именно образом в MathCAD’е нужно задавать матрицы. Для этого на панели инструментов Matrix нажмите кнопку Matrix or Vector, а в появившемся окне задайте количество столбцов и строк в матрице. Мы с вами попробуем решать для начала СЛАУ из четырех уравнений, и, соответственно, нам нужна будет матрица размером четыре на четыре элемента. Только, поскольку мы будем присваивать значение, записанное в этой матрице, переменной, обозначающей матрицу коэффициентов, то сначала лучше записать «K_: а». Функция lsolve сразу выдаст ошибку, но не нужно этого пугаться — нужно просто заменить знак равенства на стрелку (ее можно найти на панели инструментов Symbolic или же записать комбинацией клавиш Ctrl + .). Дело в том, что знак «равно» в MathCAD’е используется для численных вычислений, а стрелка — для символьных, то есть при решении систем уравнений в общем виде нужно применять именно стрелку.

Решение с помощью solve

В общем-то, решать такую систему можно было бы и используя уже знакомый нам с вами оператор solve. Для этого достаточно записать уравнения в виде матрицы, а затем применить к ней оператор solve точно так же, как если бы мы с вами решали не целую систему, а всего лишь одно- единственное уравнение. «Записать уравнения в виде матрицы» в данном случае означает не запись матричного уравнения KX + L = 0, а просто запись в каждой строке одностолбцовой матрицы (т.е. вектор-столбца) одного уравнения из системы. Напомню на всякий случай, что оператор solve находится на панели Symbolic, а для записи знака равенства нужно использовать не просто клавишу » Given» (оно, конечно же, в рабочей области MathCAD’а должно быть записано безо всяких кавычек). После того, как вы записали начальные приближения, слово «Given» и сами уравнения, можно смело воспользоваться функцией find, которая найдет точные значения решений системы. Поскольку в СЛАУ каждая из переменных в итоге будет иметь только одно значение, над подбором максимально точного начального приближения можно особо и не страдать — в конечном итоге в случае СЛАУ оно скорее просто формальность, нежели реальная необходимость, и, как вы сами имели возможность убедиться, есть методы, которые прекрасно решают СЛАУ и без него.

Теперь, когда вы знаете уже столько разных способов решения СЛАУ, вполне логично было бы задаться вопросом: а какой из них лучше при прочих равных условиях? В литературе, как правило, рекомендуется использовать функции lsolve или find, дающие точность до 15 знаков после запятой — однако на самом деле, учитывая тот факт, что такая точность бывает нужна не так уж часто, данным советом можно пренебречь, потому что точность решения системы намного больше зависит от нее самой, нежели от используемого метода ее решения в MathCAD’е. Так что используйте пока что смело тот, который показался вам наиболее удобным, а о погрешностях при решении СЛАУ мы с вами еще поговорим, но только, пожалуй, немного попозже.

Компьютерная газета. Статья была опубликована в номере 16 за 2008 год в рубрике soft

Решение систем линейных уравнений методом гаусса в mathcad

Функция submatrix(Ag, 1, 3, 4, 4), выделяя последний столбец матрицы Ag, формирует столбец решения системы x.

Функция rref(Ar) выполняет элементарные операции над строками матрицы Ar — приводит ее к ступенчатому виду с единичной матрицей в первых столбцах, т.е.выполняет прямой и обратный ход Гауссова исключения.

Прямой и обратный ход Гауссова исключения — приведение матрицы Ar к ступенчатому виду с помощью функции rref Mathcad:

Для просмотра результата введите знак равенства, используя клавишу .

Для формирования расширенной матрицы системы используйте функцию augment(A, b), которая формирует матрицу, добавляя к столбцам матрицы системы A справа матрицу правых частей b.

Сформируем расширенную матрицу системы Ar:

Чтобы определить матрицу, введите с клавиатуры имя матрицы и знак присваивания . Затем щелкните по кнопке Matrix or Vector Toolbar в панели математических инструментов, чтобы открыть панель операций с матрицами и векторами. Откройте щелчком по кнопке Matrix or Vector окно диалога Insert Matrix, определите число строк (Rows) и число столбцов (Columns) и закройте окно диалога, щелкнув по кнопке Ok.

Определим матрицу системы A и матрицу правой части b:

Чтобы столбцы и строки матрицы нумеровались, начиная с единицы, присвойте переменной ORIGIN значение, равное единице.

Знак присваивания можно ввести щелчком по соответствующей позиции в панели Evaluation Toolbar панели математических инструментов.

Решим систему трех линейных уравнений методом Гаусса

Как решать дифференциальные уравнения в mathcad

5. Решение дифференциальных уравнений с помощью встроенных функций MathCad

Обыкновенное дифференциальное уравнение первого порядка, по определению, содержит, помимо самой искомой функции у(t), только ее первую производную y'(t). В подавляющем большинстве случаев дифференциальное уравнение можно записать в стандартной форме (форме Коши), разрешенное относительно старшей производной:

Только с такой формой умеет работать вычислительный процессор Mathcad. Правильная с математической точки зрения постановка соответствующей задачи Коши для ОДУ первого порядка должна, помимо самого уравнения, содержать одно начальное условие — значение функции y(t0) в некоторой точке t0. Требуется явно определить функцию y(t) на интервале от t0 до tx. По характеру постановки задачи Коши называют еще задачами с начальными условиями (initial value problem), в отличие от краевых задач.

Для численного интегрирования одного ОДУ у пользователя Mathcad имеется выбор — либо использовать вычислительный блок Given – Odesolve( ), либо встроенные функции. Первый путь предпочтительнее из соображений наглядности представления задачи и результатов, а второй дает пользователю больше рычагов воздействия на параметры численного метода. Рассмотрим последовательно оба варианта решения.

Вычислительный блок Given – Odesolve( )

Вычислительный блок для решения одного ОДУ, реализующий численный метод Рунге-Кутта, состоит из трех частей:

— Given — ключевое слово;

— ОДУ и начальное условие, записанное с помощью Булевых операторов, причем начальное условие должно быть в форме у(t0) = b;

— Odesolve(t, t1) — встроенная функция для решения ОДУ относительно переменной t на интервале (t0,t1).

Допустимо, и даже часто предпочтительнее, задание функции Odesolve (t, t1, step) с тремя параметрами, где step – необязательный внутренний параметр численного метода, определяющий количество шагов, в которых по методу Рунге-Кутта будет получено решение дифференциального уравнения. Чем больше step, тем с лучшей точностью будет получен результат, но тем больше времени будет затрачено на его решение. Таким образом, подбором этого параметра можно заметно (в несколько раз) ускорить расчеты без существенного ухудшения их точности.

Пример решения задачи Коши для ОДУ первого порядка у’=у-у 2 посредством вычислительного блока Given – Odesolve( ) приведен на рис. 5.1. Вставлять логические операторы нужно при помощи панели инструментов Boolean (Булевы операторы). При вводе с клавиатуры логического знака равенства нужно использовать сочетание клавиш Ctrl =. Символ производной можно ввести как средствами панели Calculus (Вычисления), как это сделано на рис. 5.1, так и в виде штриха (‘), набрав его с помощью сочетания клавиш Ctrl +F7.

Рис.5.1. Решение задачи Коши для ОДУ первого порядка

Пользователь имеет возможность выбирать между двумя модификациями численного метода Рунге-Кутта. Для смены метода необходимо нажать ПКМ на область функции Odesolve( ), вызвать контекстное меню и выбрать в нем один из двух пунктов: Fixed (Фиксированный шаг) или Adaptive (Адаптивный). По умолчанию применяется первый из них, т. е. метод Рунге — Кутта с фиксированным шагом.

Учебное пособие: Решение дифференциальных уравнений в среде MathCAD

В последнее время широкое распространение получили пакеты математических программ (или математические системы), которые можно использовать для различных вычислений и вычерчивания графиков (Mathematica, Derive, Statistica, MathCAD, MathLAB и др.). В этих системах процесс вычислений сильно автоматизирован, что позволяет экономить время и больше внимания уделять физическому смыслу получаемого результата. Выбор системы зависит от характера решаемых задач, от вкуса, от практики.

Система MathCAD -разработка фирмы MathSoft. Примерно каждый год появляется новая версия этой системы. В настоящий момент известна версия Mathcad 12.

Назначение системы: MathCAD — это интегрированная система программирования, ориентированная на проведение математических и инженерно-технических расчетов. MathCAD содержит текстовый редактор, вычислитель, символьный процессор и графический процессор.

Вид окна системы MathCAD аналогичен окнам приложений ОС семейства Windows (Word, Exel и др.).

1. Интерфейс пользователя в системе MathCAD. Интерфейс пользователя состоит из:

1. строки заголовка

2. строки главного меню

3. из строки состояния

которая включается командой View/Status Bar, и на которой отображается следующая информация (слева направо): контекстно-зависимая подсказка о готовящемся действии, режим вычислений (AUTO (автоматический) или Calc 9 (ручной)), режим Gaps Lock (CAP), режим Num Lock (NUM,), номер страницы, на которой находится курсор (Page 1);

4. из панелей Standard, Formatting, Math, Controls, Recources:

На каждой из панелей имеется характерная вешка перемещения в виде выпуклой вертикальной черты в начале каждой панели. С помощью нее можно переносить панели в любое место окна редактирования или «прилепить» ее к любой стороне окна.

Настройка состава панелей инструментов. Установить курсор над нужной панелью и правой кнопкой вызвать контекстное меню, из которого выбрать пункт Customize (Настроить), появится диалоговое окно. В левой панели этого окна расположены еще не добавленные пиктограммы, в правой – добавленные. По команде Add пиктограмма переходит в правое окно, а по команде Remove пиктограмма возвращается в левую панель.

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

Панель служит для вставки в документ стандартных элементов управления интерфейса пользователя (флажков, переключателей, полей ввода и т.п.).

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

Наибольший интерес для нас в системе MathCAD представляет математическая панель . Она содержит перемещаемые палитры математических знаков, которые служат для ввода практически всех известных математических символов и шаблонов операторов и функций

1. – служит для ввода арифметических операций и часто используемых простых функций. Эта палитра фактически дублирует обычный калькулятор.

2 – содержит команды для построения семи типов графиков.

3. — для создания векторов и матриц и некоторые операции для работы с ними.

4. — для вставки операторов управления вычислениями и для ыставки пользовательских операторов..

5. — эта палитра содержит операции высшей математики (производные, интегралы, пределы и др.),а также знак бесконечности .

6. — для вставки операций сравнения и логических операций Not, And, Or

7. — инструменты программирования системы MathCAD.

8. — палитра для набора греческих символов.

9. — содержит ключевые слова, управляющие символьными вычислениями.

10 эта панель вместе с панелью содержит ключевые слова, используемые при символьных вычислениях. Здесь расположены команды, задающие тип символьной переменной.

2. Документ в системе MathCAD. Состоит из блоков, т.е. отдельных частей. В документе блоки имеют точку привязки, расположенную слева

Блоки м.б. трех типов — текстовые, вычислительные, графические. Текстовые блоки играют роль неисполняемых комментариев. Они служат лишь для повышения наглядности документа. Вычислительные блоки состоят из исполняемых математических выражений, например, формул, уравнений, равенств неравенств и т.д. Графические блоки также являются исполняемыми.

Блоки можно перемещать по документу и располагать в удобной для пользователя форме, но для правильного функционирования системы имеет большое значение правильный порядок расположения блоков. Например, если в некотором блоке содержатся операции, требующие данных из другого блока, то этот другой блок обязательно должен выполняться первым и располагаться перед использующим его блоком. Иная ситуация приведет к появлению ошибки. Сигнал ошибки имеет вид надписи, от которой отходит черта, указывающая место ошибки:

.

При манипуляциях с блоками на экране могут оставаться нежелательные искажения. Для их устранения следует использовать команду Refresch (обновить) меню View.

В документе MathCad эффективно решена проблема сквозной передачи данных от одного блока к другому, например, от одного математического выражения к другому, от него к таблицам, от таблиц к графикам и т.д. Поэтому изменение в любой формуле или в задании входных данных тут же ведет к пересчету задачи по всей цепи взаимодействия блоков (это не относится, однако к символьным операциям, реализуемым с помощью команд меню).

Размеры блоков устанавливаются автоматически в зависимости от числа входящих в них знаков, либо от заданных размеров графиков. Обычно границы блоков не видны, но можно установить подсвеченный режим показа блоков (команда View Regions) Блоки не должны налагаться друг на друга . Если такое произошло, то надо воспользоваться командой разделения перекрывающихся областей в документе (Formatt/Separate Regions), предварительно выделив эти перекрывающиеся области.

Сразу после запуска система готова к созданию документа с необходимыми пользователю вычислениями. Соответствующее новому документу окно редактирования получает название Untitled: N , где N – порядковый номер документа. При сохранении на диск документ системы MathCad записывается в файл с расширением .mcd.

Окно редактирования содержит (даже когда очищено) два важных объекта – курсор ввода в виде красного крестика и вертикальную линию, отделяющую текущую страницу от соседней (справа) . Если документ большой, то в некотором месте будет наблюдаться и прерывистая горизонтальная линия раздела страниц . Эти линии раздела показывают, каким образом будет осуществляться разбиение на страницы при распечатке документа на принтере. Изменить параметры страницы можно с помощью команды File/Page Setup. В окне редактирования документа можно включить линейку с помощью команды View/Ruler . Масштаб документа можно изменить по команде View/Zoom.

3. Основные объекты входного языка системы MathCAD.

Фактически документы MathCad представляют собой программу, написанную на визуально-ориентированном языке программирования. Визуально- ориентированные языки программирования задают программу не в виде малопонятных кодов, а в виде визуально понятных объектов. Язык программирования MathCad ориентирован на математические вычисления и потому практически не отличается от обычного языка математических статей, отчетов и книг.

Входной язык MathCad относится к интерпретируемому типу. Это значит, что, когда система опознает какой-либо объект, она немедленно исполняет указанные в блоке операции.

Визуально-ориентированный язык общения системы MathCad надо отличать от языка реализации системы, т.е. обычного языка программирования высокого уровня, на котором написана система. Языком реализации системы MathCad является один из самых мощных языков высокого уровня – С++.

По существу входной язык системы – промежуточное звено между скрытым от пользователя языком документа и языком реализации системы. По мере того как пользователь создает (средствами текстового, формульного, символьного и графического редакторов) в окне редактирования объекты (тексты, формулы, таблицы и графики), система сама составляет программу на некотором промежуточном языке связи. Эта программа хранится в оперативной памяти до тех пор, пока не будет записана на диск в виде файла с расширением .mcd. Однако от пользователя не требуется знание языков программирования (реализации и связи), достаточно освоить приближенный к естественному математическому языку входной язык системы.

К основным объектам входного языка системы MathCAD можно отнести: алфавит, константы, переменные, операторы, функции.

Алфавит – строчные и прописные латинские буквы, цифры от 0 до 9, греческие буквы. Следует отметить, что MathCAD различает строчные и прописные буквы (X и x – разные переменные) и различает шрифт (X и X – тоже разные переменные). Также в алфавит входят символ бесконечности ¥, штрих ¢(набирается с помощью клавиш ctrl/F7), символ подчеркивания _, символ процента, нижний индекс (набирается с помощью клавиши «.», индекс в определении имени переменных и функций, например К2 , не надо путать с числовым индексом векторной переменной). Имя переменной или функции в системе MathCAD может быть любой длины, но:

— имена не должны начинаться с цифры, символа подчеркивания, штриха или процента;

— символ бесконечности может быть только первым в имени;

— все буквы в имени должны иметь один стиль и шрифт;

— имена не могут совпадать с именами встроенных функций, констант и размерностей, например, sin или TOL. Тем не менее, допускается их переопределение, но тогда одноименная встроенная функция не будет использоваться по первоначальному назначению;

— MathCAD не различает имен переменных и функций: если сначала определить функцию f(x), а потом переменную f, то в оставшейся части документа будет утерян доступ к функции f(x);

— в некоторых случаях желательно использовать имена переменных и функций, содержащие символы операторов MathCAD или другие символы, которые нельзя вставлять в имена непосредственно, для этого надо набрать комбинацию клавиш Ctrl/Shift/J, которая позволит вставить пару квадратных скобок с местозаполнителем внутри . Имя, составленное из любых символов и заключенное в эти квадратные скобки, MathCAD будет воспринимать корректно .

Константы – это числа и предварительно определенные системные константы:

.

Эти значения системных констант устанавливаются после загрузки системы.

— погрешность для условий ограничения при решении оптимизационных задач с применением функций Find, Minerr, Maximize, Minimize;

— ширина столбца, используемая при записи файлов функцией WRITEPRN;

— число значащих цифр при записи файлов функцией WRITEPRN.

Формат вывода системных констант можно изменить. Для этого достаточно дважды щелкнуть по числу в блоке вывода результата, при этом появится диалоговое окно, в котором надо будет установить число знаков после запятой. Таким же образом можно изменить формат вывода любых других результатов вычислений. По умолчанию формат вывода имеет три знака после запятой.

Значения некоторых системных констант можно изменить с помощью команды / в диалоговом окне, либо эти значения можно переопределить через оператор присваивания .

Переменные – это объект, числовое значение которого может меняться по ходу выполнения документа. Для присваивания переменной числа или результата выражения используется знак локального присваивания , который можно набрать с клавиатуры (клавиша «двоеточие» на латинском шрифте), с палитры и с палитры . Знак присваивания в системе MathCAD означает, что действие происходит справа налево (а не слева направо). Если при оформлении документа необходимо, чтобы присваивание выглядело на экране как знак равенства без двоеточия, то правой кнопкой надо вызвать контекстное меню и в диалоговом окне вместо пункта “Default” выбрать пункт “Equal”.

Знак обычного равенства (который применяется в системе MathCAD в основном для вывода результата) можно использовать только для первого присваивания.

При локальном присваивании надо обязательно соблюдать правильное расположение блоков. Но иногда в документах возникает необходимость использовать значение некоторой переменной выше на листе, чем расположен оператор присваивания . В таких случаях вместо локального присваивания используется знак глобального присваивания , который можно набрать либо с клавиатуры (клавиша «волнистая черта»), либо с палитры . Если в документе используется глобальное присваивание, то MathCAD проводит вычисления в следующей последовательности: вычисляются сверху вниз все блоки с оператором глобального присваивания, а затем снова с самого начала документа вычисляются сверху вниз все оставшиеся блоки. Это означает, что в блоках с оператором глобального присваивания нельзя использовать результат вычислений из обычного блока.

В отличие от языков программирования система MathCAD не требует точного задания типов переменных: целочисленные, вещественные, комплексные, текстовые, логические. Тип переменной автоматически определяется присвоенным ей значением: . В нижней строке показан результат вывода соответствующей переменной. Целые переменные пояснений не требуют.

Вещественная переменная может быть набрана и как десятичное число с любым количеством десятичных цифр после точки , и в экспоненциальной форме, для чего после ввода числа надо напечатать символ умножения и ввести 10 в нужной степени .

При вводе комплексных переменных мнимая единица набирается с палитры , либо с клавиатуры как. Если просто набрать как , то она будет восприниматься как простая переменная. Форму представления мнимой единицы можно изменить . Для этого дважды щелкнуть в окне вывода с мнимой единицей и в диалоговом окне сделать соответствующий выбор

Текстовая переменная заключается в кавычки. Значением логической переменной может быть 0 (что соответствует «лжи») или 1 (что соответствует «истине»).

В MathCAD есть и специальный тип переменных, именуемых ранжированными или циклическими переменными, которые задаются следующим образом:

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

.

Верхняя граница ранжированной переменной необязательно должна быть элементом последовательности, это число просто ограничивает последовательность сверху (или снизу для убывающей последовательности).

Массивы. Большим преимуществом системы MathCAD является возможность оперировать не только скалярными величинами, но и с массивами. MathCAD поддерживает два вида массивов – одномерные (векторы) и двумерные (матрицы). Элементы массивов характеризуются числовыми индексами, которые вставляется с помощью клавиши “[”, либо командой с панели . Обычно нумерация идет с нуля. Нумерация задается значением системной переменной ORIGIN, которая по умолчанию равна нулю. V0— первый элемент вектора, M 0, 0— первый элемент матрицы. Можно обратиться не только к элементу массива, но и к его колонке, например, M — первая колонка матрицы. Элементами массива могут быть числа, константы, переменные, математические выражения и даже другие массивы. Соответственно массивы могут быть численными и символьными. Основные операции для работы с векторами и матрицами собраны на панели .

Существует несколько способов создания массивов. Самый простой и наглядный способ создания матрицы с помощью команды Insert/Matrix . При вызове этой команды появляется диалоговое окно, в котором надо задать число строк и число колонок матрицы (вектор — это матрица с одной колонкой). Появится шаблон матрицы, в черные квадратики которого надо ввести значения элементов матрицы.

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

Для того, чтобы удалить строки и столбцы из матрицы, надо установить курсор на элемент матрицы, который находится в самом левом столбце из тех, которые нужно удалить и в самой верхней строке из тех, которые нужно удалить

Также матрицу можно создать через определение его элементов

Развернуть вложенные массивы можно, установив, флажок (Разворачивать вложенные массивы) в окне

Есть и другие способы создания матриц – создание матрицы с помощью таблицы ввода, создание матрицы путем импорта данных.

Функции. В системе MatCAD различают встроенные функции (функции, заранее введенные разработчиком системы) и пользовательские функции (созданные пользователем).

Встроенные функции. Вставляются с помощью команды Insert/Function или набором с

клавиатуры. При этом следует помнить, что имена встроенных функций чувствительны к регистру, их следует вводить в точности, как они приведены в системе. Параметры встроенных функций заключаются в скобки. В качестве параметра м.б. константа, переменная или математическое выражение, при этом константа, переменная, выражение должны быть определены ранее

Функции пользователя. В MathCAD, как и в языках программирования, есть возможность задания функций пользователя. Имена функций пользователя подчиняются тем же правилам, что и имена переменных. Для задания функции пользователя нужно ввести имя, а затем в круглых скобках через запятую ввести все аргументы. Для аргументов можно использовать любые имена, подчиняющиеся тем же правилам, что и имена переменных. Далее, как обычно, надо ввести оператор присваивания и после него – выражение, зависящее от введенных аргументов. Все переменные, присутствующие справа в выражении определения функции, либо должны входить в список аргументов функции, либо должны быть определены ранее. В противном случае будет выведено сообщение об ошибке, причем имя неопределенной переменной будет выделено красным цветом

Операторы. Каждый оператор в MathCAD обозначает некоторое математическое действие в виде символа. Каждый оператор действует на одно или два числа (переменную или функцию), которые называются операндами. Если в момент вставки оператора одного или обоих операндов не хватает, то недостающие операнды будут отображены в виде местозаполнителей. Математические палитры содержат сгруппированные по смыслу математические операторы:

1. Операторы, обозначающие арифметические действия, называются арифметическими и вводятся с палитры .

2. Операторы, которые вставляются с палитры (Вычисления), называются вычислительными операторами (дифференцирование, интегрирование, суммирование, вычисление произведения, пределы).

3. Логические операторы – вводятся с палитры .

4. Матричные операторы – предназначены для совершения различных действий над векторами и матрицами, вводятся с палитры .

5. Операторы выражения – сгруппированы на панели (Evaluation – Выражения) (оператор численного вывода , оператор локального присваивания , оператор глобального присваивания , оператор символьного вывода).

6. Операторы пользователя. Запросы взыскательного пользователя могут не исчерпываться набором встроенных операторов MathCAD. Для вставки в документы заранее созданных операторов пользователя применяется панель. Оператор пользователя может иметь абсолютно любое имя. Присваивать оператору некоторое действие следует точно так же, как функции пользователя. Создание бинарного оператора выглядит след. образом:

.

Унарный оператор пользователя создается аналогично

Вывод результатов вычислений и значений переменных осуществляется с помощью

знака обычного равенства . В различных задачах выводить результаты вычислений требуется в различном виде: как десятичную или простую дробь, десятичную дробь в обычной или экспоненциальной форме. Формат вывода задается командой Forma/Result. После вызова этой команды (двойной щелчок на нужном блоке) появляется диалоговое окно Result Format:

В списке Format слева можно выбрать один из пяти различных форматов отображения числа, а с помощью полей и флажков справа можно настроить выбранный формат.

General – это используемый по умолчанию формат результатов вычислений. Число представляется в виде десятичной дроби. Количество знаков после запятой задается в поле . Если установлен флажок , то дробь будет при необходимости дополнена нулями до количества знаков, указанных выше . Поле задает границу перехода ET (Exponential threshold) к экспоненциальной форме (такую форму числа приобретают, если их значение больше 10 ET и меньше 10 — ET ) . При установленном флажке в экспоненциальной форме записи используются только порядки, кратные трем . Это является стандартной инженерной формой записи, поскольку для физических величин в системе CИ со степенями, кратными трем, связаны различные стандартные приставки: кило-, мега-, милли- и др.

Decimal – формат вывода результата в виде десятичной дроби без экспоненты.

Scientific – в этом формате результат всегда выводится в экспоненциальной форме.

Engineering – также используется только экспоненциальная форма записи дробей, но при этом используются только порядки, кратные трем.

Fraction – в этом формате результат выводится в виде простой дроби

В диалоговом окне Result Format также можно изменять представление машинного нуля для комплексных чисел CT (Complex threshold) (если Re(Z)/Im(Z) > 10 CT , то Z выводится

как реальное, если наоборот, то как мнимое) и значение машинного нуля ZT (Zero threshold)

.

Формат вывода может быть глобальным и локальным. Чтобы установить локальный формат, можно сделать двойной щелчок по блоку, при этом появится диалоговое окно Result Format. Данный блок будет иметь локальный формат, а все остальные — глобальный.

Управление процессом вычислений. После запуска MathCAD находится в режиме автоматических вычислений. Это означает, что при внесении каких-либо изменений в документ, все видимые в данный момент формульные блоки и графики пересчитываются и строятся заново. В некоторых случаях такой режим работы может быть нежелательным, например, если в документе есть сложные вычисления, требуется обработка больших объемов данных или выполняются операции, занимающие много времени. В таких случаях работать с документом оказывается очень неудобно, и возникает необходимость запретить автоматическое вычисление либо всего документа, либо для блоков, содержащих наиболее сложные вычисления.

Для того чтобы отключить/включить режим автоматического вычисления для всего документа, надо выбрать команду меню //. При отключенном режиме автоматического вычисления, для того чтобы пересчитать все блоки в документе можно выбрать команду меню //. Для того чтобы пересчитать не весь документ, а лишь тот блок, в котором находится курсор, следует выбрать команду меню // (если курсор находится в свободном месте рабочей области документа, то пересчитаны будут все блоки, которые в данный момент видны на экране).

Для того чтобы временно отключить вычисление одного блока, можно воспользоваться командой контекстного меню . После выбора этой команды MathCAD при просчете документа вообще не будет «обращать внимания» на данный блок и производить вычисления так, как будто его удалили. Для того чтобы возобновить вычисление «отключенного» блока, нужно выбрать команду контекстного меню .

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

Единицы измерения физических величин. При проведении физико-технических расчетов почти всегда имеют дело не просто с абстрактными числами, а с некоторыми физическими величинами. Для того чтобы число в выражении рассматривалось как некоторая физическая величина, нужно ввести единицы измерения следующим образом: после введенного числа ввести знак умножения, выбрать команду /, в диалоговом окне в списках и выбрать нужную единицу измерения . Над размерными переменными можно производить любые корректные с физической точки зрения расчеты . Нельзя складывать переменные разной размерности, будет получено сообщение об ошибке . Но позволяется складывать, например, амперы с кило амперами .

Для любого результата вычислений есть возможность изменить его единицы измерения. Если щелкнуть на формульном блоке, содержащем результаты вычислений, то справа от единиц измерения результата появится черный квадратик – поле ввода единиц измерения, к которым необходимо привести результат. Если введенные здесь единицы измерения не будут соответствовать единицам результата, то MathCAD автоматически допишет нужный коэффициент . В MathCAD по умолчанию все результаты вычислений представлены в системе СИ. Однако систему измерений можно изменить с помощью команды / и диалогового окна .

4. Текстовый редактор служит для ввода и редактирования текстов. Именно тексты делают документы MathCad документами в общепринятом смысле этого слова.

В простейшем случае для ввода текста достаточно ввести символ » на английском регистре. Нередко пользователь начинает набор текстов, забыв установить кавычки. MathCad воспринимает такой набор как ввод математического выражения. Однако, нажав клавишу Пробел, можно тут же превратить набранный фрагмент в текстовый. Признаком текстового блока являются черные квадратики на правой и нижней границах блока, а курсор в текстовом блоке приобретает вид красной вертикальной черты .

Текст может состоять из слов, математических выражений и формул, спец. знаков. Русский текст вводится с помощью любого кириллического шрифта Courier, Times New Roman Cyr, Arial Cyr). Также для работы с текстом предусмотрены команды меню Format/Text и Format/Paragraph. Можно создать текстовую область (текст начинается на позиции курсора), создать текстовый параграф (текст начинается первой строкой на позиции курсора), форматировать текст (панель форматирования), внедрять в текст математические формулы (команда Insert/Math Region , при этом надо находится в текстовом блоке), проверять орфографию (Check Spelling) для англоязычных текстов, изменять размер шрифта, начертание, цвет текста и т.д. Т.е. для текстовых блоков используются типовые средства редактирования (как в любых текстовых редакторах).

5. Графический процессор служит для создания графиков. Это очень удобно для вывода результатов математических расчетов в графической форме. Графики могут размещаться в любом логически дозволенном месте документа, т.е. после тех вычислительных блоков системы, которые готовят исходные данные для построения графиков.

После включения графического процессора для двухмерного графика на экране появляется шаблон будущего графика в виде прямоугольной рамки с маленькими прямоугольниками, расположенными вдоль осей x и y .

Крайние задают пределы изменения переменных (пределы проставляются системой автоматически, но можно их изменять — для этого в диалоговом окне Formatting флажок «autoscale« надо отключить), а в средние надо ввести имена аргумента и функции. После нажатия Enter график будет построен. Для форматирования графика достаточно сделать двойной щелчок по полю графика, при этом появится диалоговое окно Formatting.

Если строятся графики нескольких функций в одном шаблоне, то имена функций следует разделять запятыми.

6. Вычислитель(формульный редактор) обладает поистине уникальными возможностями. Он обеспечивает вычисления по сложным математическим формулам, имеет большой набор встроенных математических формул, позволяет вычислять ряды, суммы и произведения, интегралы и производные, работать с комплексными числами, производить символьные преобразования, решать линейные и нелинейные уравнения, проводить минимизацию функций, выполнять векторные и матричные операции. В вычислитель входят и такие мощные средства, как линейная и сплайн-интерполяция, прямое и обратное быстрое преобразование Фурье.

Для запуска формульного редактора достаточно установить указатель мыши в любом свободном месте окна документа, щелкнуть левой кнопкой и начинать ввод. Поместить формулу в документ можно, просто начиная вводить символы, числа или операторы . Во всех этих случаях на месте курсора ввода создается математическая область (регион) с формулой, содержащей и линии ввода. В области формульного блока курсор ввода превращается в синий уголок, указывающий направление и место ввода. Клавиша Insert меняет направление охвата курсором объекта. Для расширения охваченной уголком области (вплоть до полного охвата выражения) нужно пользоваться клавишей Пробел .

Перемещать линии ввода внутри формульного блока можно также с помощью клавиш со стрелками или щелкая в нужном месте мышью.

Большинство операций редактирования формул реализованы естественным образом, однако некоторые из них несколько отличаются от общепринятых, что связано с особенностью MathCAD как вычислительной системы, например, вставка операторов. Операторы могут быть унарными (действующими на один операнд)и бинарными (действующими на два операнда) . При вставке нового оператора в документ MathCAD определяет, сколько операндов ему требуется. Если в точке вставки оператора один или оба операнда отсутствуют, MathCAD автоматически помещает рядом с оператором один или два местозаполнителя. То выражение в формуле, которое выделено линиями ввода в момент вставки оператора, становится его первым операндом

.

Как видно, MathCAD сам расставляет, если необходимо, скобки, чтобы часть формулы, отмеченная линиями ввода, стала первым операндом. Местозаполнители (черный квадратик – для символа и прямоугольная рамка – для оператора) появляются внутри незавершенных формул . Символ в черный квадратик вводится обычным образом, а чтобы в прямоугольную рамку ввести оператор, например +, необходимо курсор расположить перед этой прямоугольной рамкой .

1. Назначение системы MathCAD. Какие еще пакеты математических программ вы знаете?

2. Интерфейс пользователя в системе MathCAD.

3. Документ в системе MathCAD(заголовок, расширение при сохранении на диск, типы и расположение блоков, точка привязки блока, размеры блоков, сквозная передача данных в документе).

4. Объясните, что такое входной язык системы MathCAD и язык реализации системы MathCAD?

5. Перечислите основные объекты входного языка системы MathCAD. Расскажите об алфавите языка и о встроенных и пользовательских функциях системы MathCAD. Что такое определение функции и обращение к функции?

6. Константы и переменные в системе MathCAD? Как задаются типы данных в MathCAD? Что такое глобальное и локальное присваивание переменных в документе MathCAD? Как вставляется мнимая единица для комплексных чисел? Что такое ранжированная переменная и как она задается?

7. Как задаются массивы в MathCADе? Как можно добавлять строки и столбцы в готовые матрицы? Как удаляются строки и столбцы из матриц?

8. Перечислите операторы входного языка системы MathCAD?

9. Как осуществляется вывод результатов в системе MathCAD? Как можно настроить формат вывода результатов? Как осуществляется управление процессом вычислений в системе MathCAD?

10. Как работать с единицами измерений физических величин в системе MathCAD?

11. Подробно охарактеризуйте текстовые, графические и математические блоки.

Лекция №2. Задачи линейной алгебры и решение дифференциальных уравнений в среде MathCAD

В задачах линейной алгебры практически всегда возникает необходимость выполнять различные операции с матрицами. Панель операторов с матрицами находится на панели Math.

Операторы , вам уже знакомы. Напомним только, что оператор вычисляет только детерминант матрицы, а модуль вектора, который равен квадратному корню из суммы квадратов его элементов, вычисляется с помощью оператора , который расположен на панели Calculator. К сожалению, по внешнему виду они не отличаются.

При попытке вычислить модуль вектора с панели Matrix будет ошибочное состояние. Точно также будет ошибочное состояние при попытке вычислить детерминант матрицы с панели Calculator.

Рассмотрим неизвестные вам до сих пор операторы панели Matrix.

Скалярное произведение векторов определяется как скаляр, равный сумме попарных произведений соответствующих элементов (идентичен обычному оператору умножения). Векторы должны иметь одинаковый размер. Для обозначения скалярного произведения используется символ «точка». Векторное произведение двух векторов u и v с углом q между ними равно вектору с модулем , направленным перпендикулярно плоскости векторов u и v. Векторное произведение векторов применимо только для трехкомпонентных векторов. Обозначают векторное произведение символом х, который можно ввести нажатием кнопки на панели Matrix/

— сумма элементов вектора.

— оператор векторизации. Он позволяет провести однотипную операцию над всеми элементами массива (т.е. матрицы или вектора), упрощая тем самым программирование циклов. Например, иногда требуется умножить каждый элемент одного вектора на соответствующий элемент другого вектора. Непосредственно такой операции в MathCAD нет, но ее легко осуществить с помощью векторизации. Оператор векторизации можно использовать только с векторами и матрицами одинакового размера.

Для решения задач линейной алгебры в MathCAD встроены матричные функции. Их можно разделить на три основные группы:

— функции определения (генерации) матриц и операции с блоками матриц;

— функции вычисления различных числовых характеристик матриц;

— функции, реализующие численные алгоритмы решения задач линейной алгебры.

Из каждой группы приведем по несколько, наиболее часто используемых функций.

Первая группа:

1. matrix(m, n, f) – создает и заполняет матрицу размерности m x n, элемент которой, расположенный в i-ой строке и j-ом столбце равен значению f(i, j) функции f(x, y);

2. diag(v) – создает диагональную матрицу, элементы главной диагонали которой хранятся в векторе v;

3. identity(n) – создает единичную матрицу порядка n;

4. augment(A, B) –объединяет матрицы A и B; матрица B располагается справа от матрицы A, при этом матрицы должны иметь одинаковое число строк;

5. stack(A, B) – объединяет матрицы A и B, матрица В располагается внизу под матрицей А, при этом матрицы должны иметь одинаковое число столбцов;

6. submatrix(A, ir, jr, ic, jc) – формирует матрицу, которая является блоком матрицы А, расположенным в строках с ir по jr и в столбцах с ic по jc, причем ir £ jr, ic £ jc.

Вторая группа:

1. last(v) – вычисляет номер последнего элемента вектора V;

2. length(v) – вычисляет количество элементов вектора V;

3. min(v), max(v) – вычисляет минимальное и максимальное значения вектора V;

4. Re(v) – создает вектор из реальных частей комплексных элементов вектора V;

5. Im(v) — создает вектор из мнимых частей комплексных элементов вектора V;

6. sort(V) – сортировка элементов вектора V по возрастанию;

7. reverse (sort(v)) – сортировка элементов вектора V по убыванию;

8. csort (A,n) – сортировка элементов n – го столбца матрицы А по возрастанию (перестановкой строк);

9. rsort (A,n) – сортировка элементов n – ой строки матрица А по возрастанию (перестановкой столбцов);

10. rows(A) – вычисляет число строк в матрице А;

11. cols(A) – вычисляет число столбцов в матрице А;

12. max(A), min(A) – определяет максимальное и минимальное значения матрицы А;

13. tr(A) – вычисляет след квадратной матрицы А (след матрицы равен сумме ее диагональных элементов по главной диагонали);

14. mean(A) – среднее значение элементов матрица А.

Действие функций второй группы ясно из их названия, поэтому примеры для них приводить не будем.

Третья группа:

1. rref(A) – приведение матрицы к ступенчатому виду с единичным базисным минором (выполняются элементарные операции со строками матрицы: перестановка строк, умножение строки на число, сложение строк);

2. rank(A) – вычисляет ранг матрицы А (количество линейно-независимых строк или это число ненулевых строк ступенчатой матрицы rref(A));

3. eigenvals(A) – вычисление собственных значений квадратной матрицы А;

4. eigenvecs (A) – вычисление собственных векторов квадратной матрицы А, значением функции является матрица, столбцы которой есть собственные векторы матрицы А, причем порядок следования векторов отвечает порядку следования собственных значений, вычисленных с помощью функции eigenvals(A);

5. eigenvec(A,e) – вычисление собственного вектора матрицы А, отвечающего собственному значению e;

6. normi(A) – max – норма, или ¥ — норма (infinity norm). в линейной алгебре используются различные матричные нормы, которые ставят в соответствие матрице некоторую скалярную числовую характеристику;

7. lsolve (A,b) – решение системы линейных алгебраических уравнений вида .

Функции третьей группы реализуют, как правило, довольно сложные вычислительные алгоритмы. Приведем примеры на использование функций rref и функций для вычисления собственных значений и собственных векторов матрицы. Задача поиска собственных значений и собственных векторов матрицы очень часто встречается в вычислительной практике.

В самом простом виде задача на собственные значения матрицы формулируется следующим образом: требуется найти такие значения l, чтобы матричное уравнение имело решение. В таком случае число l называют собственным числом матрицы А, а n- компонентный вектор Х, приводящий уравнение с заданным l в тождество – собственным вектором. В вышеприведенном примере собственные вектора матрицы А получены в матрице MS. Проверка проведена для первого столбца матрицы MS и соответствующего ему собственного числа l0=5.439.

Решение систем линейных алгебраических уравнений. Этот вопрос является центральным в вычислительной линейной алгебре.

В математике рассматриваются системы линейных уравнений двух видов — однородные и неоднородные.

Неоднородная система уравнений в матричном виде записывается следующим образом: . Здесь А – матрица коэффициентов системы, В – вектор свободных членов, Х – вектор неизвестных системы.

Неоднородная система имеет одно единственное решение, если определитель матрицы отличен от нуля. Для нахождения точного решения неоднородных систем линейных уравнений в линейной алгебре используются три основных метода:

— метод обратной матрицы, он вам уже известен;

— метод исключений Гаусса;

Неоднородная система линейных уравнений в случае равенства ее определителя нулю имеет множество решений, если ранг матрицы системы равен рангу расширенной матрицы системы, либо не имеет решения, если это условие не выполняется. Решить такие системы в MatCADe можно методом Гаусса.

В выше приведенном примере получили систему из трех уравнений с пятью неизвестными, поэтому решение системы будет иметь два свободных параметра (x4, x5).

Однородная система линейных алгебраических уравнений может быть представлена в виде , т.е. правая часть уравнения представляет вектор из нулевых элементов. Как известно, для того чтобы однородная система линейных уравнений имела решение, определитель соответствующей матрицы должен равняться нулю. Это означает, что количество независимых уравнений в системе (т.е. ранг матрицы) меньше, чем количество неизвестных (т.е. порядок матрицы): rank(A) < n. Но вначале нужно выделить в системе эти самые независимые уравнения. Это делается с помощью функции rref, которая с помощью метода исключений Гаусса приводит матрицу к ступенчатому виду.

Дифференциальные уравнения являются основой огромного количества расчетных задач из самых различных областей науки и техники.

В MathCAD нет средств символьного (точного) решения дифференциальных уравнений, но достаточно хорошо представлены численные методы их решения. Дифференциальные уравнения – это уравнения, в которых неизвестные являются не переменные (т.е. числа), а функции одной или нескольких переменных. Эти уравнения (или системы) включают соотношения между искомыми функциями и их производными. Если в уравнения входят производные только по одной переменной, то они называются обыкновенными дифференциальными уравнениями (ОДУ). В противном случае говорят об уравнениях в частных производных. Таким образом, решить (иногда говорят проинтегрировать) дифференциальное уравнение – значит, определить неизвестную функцию на определенном интервале изменения ее переменных.

Как известно, одно обыкновенное дифференциальное уравнение или система ОДУ имеет единственное решение, если помимо уравнения определенным образом заданы начальные или граничные условия. Имеется два типа задач, для которых возможно численное решение ОДУ с помощью MathCAD:

задачи Коши, для которых определены начальные условия на искомые функции, т.е. заданы значения этих функций в начальной точке интервала интегрирования уравнения;

краевые задачи, для которых заданы определенные соотношения сразу на обеих границах интервала. Из дифференциальных уравнений в частных производных есть возможность решать только уравнения с двумя независимыми переменными: одномерные параболические и гиперболические уравнения, такие как уравнения теплопроводности, диффузии, волновые уравнения, а также двухмерные эллиптические уравнения (уравнения Пуассона и Лапласа).

В MathCAD нет универсальной функции для решения дифференциальных уравнений, а есть около двадцати функций для различных видов уравнений, дополнительных условий и методов решения. Эти функции можно найти в библиотеке Insert/Function, категория “Differential Equation Solving (решение дифференциальных уравнений).

Решение Обыкновенных Дифференциальных Уравнений (ОДУ)

ОДУ первого порядка называется уравнение

F – известная функция трех переменных;

x – независимая переменная на интервале интегрирования[a,b];

y – неизвестная функция;

y’ – ее производная.

Функция y(x) является решением дифференциального уравнения, если она при всех xÎ[a,b] удовлетворяет уравнению

График решения y(x) называется интегральной кривой дифференциального уравнения. Если не заданы начальные условия, таких решений y(x) будет множество. При известных начальных условиях y(x0)= y0 решение y(x) будет единственным. Вычислительный процессор MathCAD может работать только с нормальной формой ОДУ. Нормальная форма ОДУ – это ОДУ, разрешенное относительно производной y’=f(x,y)

ОДУ высших порядков

Обыкновенным дифференциальным уравнением n-го порядка называется уравнение вида

F – известная функция n+2 переменных;

x – независимая переменная на интервале интегрирования[a,b];

y – неизвестная функция;

n – порядок уравнения.

Функция y(x) является решением дифференциального уравнения, если она при всех xÎ[a,b] удовлетворяет уравнению

Нормальная форма ОДУ высшего порядка имеет вид

Y ( n ) =f(x, y, y’, …, y ( n -1) )

Если не заданы начальные условия, то дифференциальное уравнение n – го порядка имеет бесконечное множество решений, при задании начальных условий y(x0)= y0, y’(x0)= y0,1, y’’(x0)= y0,2, …, y ( n -1) (x0)= y0,n-1 решение становится единственным (задача Коши).

Задача Коши для дифференциального уравнения n – го порядка может быть сведена к задаче Коши для нормальной системы n дифференциальных уравнений 1 го порядка, которая в векторной форме имеет вид

Y(x0) = Y0 – вектор начальных условий;

Эта система получается в результате следующей замены:

Для численного интегрирования ОДУ в MathCAD имеется выбор – либо использовать вычислительный блок Given/Odesolve, либо встроенные функции. Оба способа обладают одинаковыми возможностями, но при использовании блока решения запись уравнений более привычна и наглядна, однако отдельная функция может быть использована в составе других функций и программ. Рассмотрим оба варианта решения.

Вычислительный блок Given/Odesolve

Ниже приведены два примера для решения дифференциальных уравнений первого и второго порядка с использованием вычислительного блока решения Given/Odesolve.

Вычислительный блок для решения одного ОДУ состоит из трех частей:

— ключевое слово given;

— ОДУ и начальные условия, записанные с помощью логического равенства;

— встроенная функция Odesolve(x, b) относительно независимой переменной x на интервале [a, b]; b – верхняя граница отрезка интегрирования. Допустимо и даже предпочтительнее задание функции Odesolve(a, b, step) с тремя параметрами, где step – внутренний параметр численного метода, определяющий количество шагов; чем больше step, тем с лучшей точностью будет получен результат, но тем больше времени будет затрачено на его поиск.

Функция Odesolve возвращает решение задачи в виде функции. Эта функция не имеет символьного представления и может только вернуть численное значение решения уравнения в любой точке интервала интегрирования.

Функция Odesolve использует для решения дифференциальных уравнений наиболее популярный алгоритм Рунге-Кутта четвертого порядка, описанный в большинстве книг по методам вычислений. Он обеспечивает малую погрешность для широкого класса систем ОДУ за исключением жестких систем. Если щелчком правой кнопки мыши на блоке формул с функцией Odesolve вызвать контекстное меню, то можно изменить метод вычисления решения, выбрав один из трех вариантов: Fixed – метод Рунге-Кутта с фиксированным шагом интегрирования (этот метод используется по умолчанию), Adaptive – также метод Рунге-Кутта, но с переменным шагом, изменяемым в зависимости от скорости изменения функции решения, Stiff – метод, адаптированный для решения жестких уравнений и систем (используется так называемый метод PADAUS).

Альтернативный метод решения ОДУ заключается в использовании одной из встроенных функций: rkfixed, Rkadapt, или Bulstoer. Все они решают задачу Коши для системы дифференциальных уравнений первого порядка, но каждая из них использует для этого свой метод. Для простых систем не играет большой роли, какой метод использовать – все равно получите решение достаточно быстро и с высокой точностью. Но для сложных или специфических систем бывает, что некоторые методы вообще не могут дать удовлетворительного решения за приемлемое время. Именно для таких сложных, но не редких случаев в MathCAD и введено несколько различных методов решения систем ДУ.

— rkfixed – метод Рунге-Кутта с фиксированным шагом интегрирования. Самый простой и быстрый метод, но далеко не всегда самый точный. Полностью аналогичен использованию функции Odesolve с выбранным в контекстном меню методом Fixed.

— Rkadapt – метод Рунге-Кутта с переменным шагом интегрирования. Величина шага адаптируется к скорости изменения функции решения. Данный метод позволяет эффективно находить решения уравнений, в случае если оно содержит как плавные, так и быстро меняющиеся участки. Там, где решение меняется слабо, шаги выбираются более редкими, а в областях его сильных изменений – частыми. В результате для достижения одинаковой точности требуется меньшее число шагов, чем для rkfixed. Полностью аналогичен использованию функции Odesolve с выбранным в контекстном меню методом Adaptive.

— Bulstoer – метод Булирша – Штера. Этот метод более эффективен, чем метод Рунге-Кутта, в случае если решение является плавной функцией.

Имена функций Rkadapt и Bulstoer начинаются с прописной буквы. В MathCAD для некоторых имен функций неважно, с какой буквы они записаны, но для перечисленных функций это принципиально, т.к. в MathCAD также существуют функции с такими же именами, только записанные с маленькой буквы – rkadap, bulstoer. Эти функции используются в тех случаях, когда важным является решение задачи в конечной точке интервала интегрирования.

Выше приведены примеры решения тех же дифференциальных уравнений первого и второго порядка, которые были решены с использованием вычислительного блока Given/Odesolve.

Применение встроенных функций в документах MathCAD выглядит сходным образом, т.е. функции Rkadapt и Bulstoer имеют тот же синтаксис, что и выше приведенная функция rkfixed. Назначение аргументов в этих встроенных функциях следующее:

— y – вектор начальных значений неизвестных функций, входящих в систему. В случае одного уравнения и одной неизвестной функции – это просто число.

— а – начало отрезка, на котором ищется решение системы (отрезка интегрирования). Именно в этой точке значения неизвестных функций принимаются равными элементам вектора y.

— b – конец отрезка интегрирования.

— n – количество частей, на которые разбивается отрезок [a, b] при решении системы. Чем больше это число, тем точнее получается решение, но расчет занимает больше времени.

— F(x,y) – векторная функция, элементы которой содержат правые части уравнений системы в нормальной форме (когда левые части – первые производные от соответствующих функций, а в правых частях производные отсутствуют). Аргументами этой функции являются вектор y, элементы которого соответствуют различным неизвестным функциям системы, и скалярный аргумент x , соответствующий независимой переменной в системе. В случае одного уравнения функция F может быть скалярной функцией, зависящей от двух скалярных переменных x и y.

Возвращаемым значением всех вышеперечисленных встроенных функций является матрица. Первый столбец этой матрицы – это точки, на которые разбивается отрезок [a, b], а остальные столбцы – это значения функций системы в этих точках. Если в аргументе функции rkfixed было указано количество частей n = 100, то матрица будет содержать 101 строку вместе с начальной.

Решение систем обыкновенных дифференциальных уравнений.

Для численного интегрирования систем ОДУ в MathCAD также имеется выбор – либо использовать вычислительный блок Given/Odesolve, либо встроенные функции rkfixed, Rkadapt и Bulstoer.

При решении систем ОДУ MathCAD требует, чтобы система ОДУ была представлена в нормальной форме (когда левые части – первые производные от соответствующих функций, а в правых частях производные отсутствуют):

где Y и Y’ – соответствующие неизвестные векторные функции переменной t, а F – вектор правых частей системы уравнений первого порядка. Именно векторное представление используется для ввода системы ОДУ в среде MathCAD.

Если в систему ОДУ входят и уравнения высших порядков, то оно тоже сводится к системе уравнений первого порядка, как было показано выше. При этом количество нулевых условий для вычислительного блока Given/Odesolve, а также размер вектора начальных условий y и размер вектора правых частей F(x,y) для встроенных функций rkfixed, Rkadapt и Bulstoer должны быть равны сумме порядков всех уравнений.

Вначале покажем решение систем ОДУ первого порядка с использованием вычислительного блока Given/Odesolve

Функция Odesolve для системы ОДУ имеет несколько иной, по сравнению с одним уравнением, синтаксис. Теперь она возвращает вектор функций, составляющих решение системы. Поэтому в качестве первого аргумента функции нужно ввести вектор, состоящий из имен функций, использованных при вводе системы. Второй и третий аргументы то же самое, что и в задаче с одним ОДУ.

Решение системы ОДУ показано на графике слева. Как известно, решения ОДУ часто удобнее изображать не в таком виде, а в фазовом пространстве, по каждой из осей которого откладываются значения каждой из найденных функций (как показано на рисунке справа). При этом аргумент входит в них лишь параметрически. В рассматриваемом случае двух ОДУ такой график – фазовый портрет системы – является кривой на фазовой плоскости. В общем случае, если система состоит из N ОДУ, то фазовое пространство является N – мерным. При N > 3 наглядность теряется, и для визуализации фазового портрета приходится строить его различные проекции.

Рассмотрим решение этой же системы ОДУ первого порядка с использованием встроенной функции rkfixed.

Полученное решение полностью соответствует вышеприведенному решению с использованием вычислительного блока Given/Odesolve. Следует отметить, что начальные условия здесь задаются в виде вектора y, а функциям x(t) и y(t) соответствуют элементы этого вектора y1 и y2. Вектор начальных условий y и вектор правых частей F имеют размер равный двум, т.к. система состоит из двух уравнений первого порядка. Для системы ОДУ, состоящей из двух уравнений второго порядка, размер этих векторов будет равен четырем

1. Поясните работу команд панели Matrix – скалярное и векторное произведение, детерминант матрицы, сумма элементов вектора, операция векторизации.

2. Перечислите три основные группы матричных функций. Расскажите о матричных функциях, возвращающих числовые характеристики. Приведите примеры.

3. Матричные функции, реализующие генерацию матриц и операции работы с блоками матриц.

4. Перечислите матричные функции, реализующие численные алгоритмы решения задач линейной алгебры. Объясните, как работают функции rref и rank.

5. Какие функции вычисляют собственные вектора и собственные числа квадратной матрицы?

6. Решение в системе MathCAD неоднородных систем линейных уравнений, когда определитель матрицы не равен нулю. Три способа.

7. Как осуществляется в системе MathCAD решение неоднородных систем линейных уравнений, когда определитель равен нулю и при условии, что ранг матрицы системы равен рангу расширенной матрицы системы?

8. Как осуществляется в системе MathCAD решение однородных систем линейных уравнений, когда определитель матрицы равен нулю (т.е. ранг матрицы должен быть меньше порядка матрицы)?

9. Какие дифференциальные уравнения называются ОДУ первого порядка? Высшего порядка? Что такое нормальная форма ОДУ первого и высшего порядка? К чему сводятся ОДУ высшего порядка при решении?

10. Можно ли решить дифференциальные уравнения в MathCADе символьно?

11. Как решаются ОДУ с помощью вычислительного блока Given/Odesolve? Какой метод решения реализует функция Odesolve? Как можно изменить метод решения для этой функции?

12. Как решаются ОДУ с помощью встроенной функции rkfixed? Чем функция rkfixed отличается от функции Rkadapt?

13. Как осуществляется решение системы ОДУ с помощью вычислительного блока Given/Odesolve? Приведите примеры.

14. Как осуществляется решение системы ОДУ с помощью функции rkfixed? Приведите примеры.

Решение дифференциальных уравнений в среде MathCAD

В последнее время широкое распространение получили пакеты математических программ (или математические системы), которые можно использовать для различных вычислений и вычерчивания графиков (Mathematica, Derive, Statistica, MathCAD, MathLAB и др.). В этих системах процесс вычислений сильно автоматизирован, что позволяет экономить время и больше внимания уделять физическому смыслу получаемого результата. Выбор системы зависит от характера решаемых задач, от вкуса, от практики.

Система MathCAD -разработка фирмы MathSoft. Примерно каждый год появляется новая версия этой системы. В настоящий момент известна версия Mathcad 12.

Назначение системы: MathCAD — это интегрированная система программирования, ориентированная на проведение математических и инженерно-технических расчетов. MathCAD содержит текстовый редактор, вычислитель, символьный процессор и графический процессор.

Вид окна системы MathCAD аналогичен окнам приложений ОС семейства Windows (Word, Exel и др.).

1 . Интерфейс пользователя в системе MathCAD . Интерфейс пользователя состоит из:

  1. строки заголовка
  2. строки главного меню
  3. из строки состояния

которая включается командой View/Status Bar , и на которой отображается следующая информация (слева направо): контекстно-зависимая подсказка о готовящемся действии, режим вычислений (AUTO (автоматический) или Calc 9 (ручной)), режим Gaps Lock (CAP), режим Num Lock (NUM,), номер страницы, на которой находится курсор (Page 1);

  1. из панелей Standard, Formatting, Math, Controls, Recources:

На каждой из панелей имеется характерная вешка перемещения в виде выпуклой вертикальной черты в начале каждой панели. С помощью нее можно переносить панели в любое место окна редактирования или «прилепить» ее к любой стороне окна.

Настройка состава панелей инструментов . Установить курсор над нужной панелью и правой кнопкой вызвать контекстное меню, из которого выбрать пункт Customize (Настроить), появится диалоговое окно. В левой панели этого окна расположены еще не добавленные пиктограммы, в правой – добавленные. По команде Add пиктограмма переходит в правое окно, а по команде Remove пиктограмма возвращается в левую панель.

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

Панель служит для вставки в документ стандартных элементов управления интерфейса пользователя (флажков, переключателей, полей ввода и т.п.).

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

Наибольший интерес для нас в системе MathCAD представляет математическая панель . Она содержит перемещаемые палитры математических знаков, которые служат для ввода практически всех известных математических символов и шаблонов операторов и функций

1. – служит для ввода арифметических операций и часто используемых простых функций. Эта палитра фактически дублирует обычный калькулятор.

2 – содержит команды для построения семи типов графиков.

3. — для создания векторов и матриц и некоторые операции для работы с ними.

4. — для вставки операторов управления вычислениями и для ыставки пользовательских операторов..

5. — эта палитра содержит операции высшей математики (производные, интегралы, пределы и др.),а также знак бесконечности .

6. — для вставки операций сравнения и логических операций Not , And , Or

7. — инструменты программирования системы MathCAD.

8. — палитра для набора греческих символов.

9. — содержит ключевые слова, управляющие символьными вычислениями.

10 эта панель вместе с панелью содержит ключевые слова, используемые при символьных вычислениях. Здесь расположены команды, задающие тип символьной переменной.

2. Документ в системе MathCAD . Состоит из блоков , т.е. отдельных частей. В документе блоки имеют точку привязки , расположенную слева

Блоки м.б. трех типов — текстовые, вычислительные, графические. Текстовые блоки играют роль неисполняемых комментариев. Они служат лишь для повышения наглядности документа. Вычислительные блоки состоят из исполняемых математических выражений, например, формул, уравнений, равенств неравенств и т.д. Графические блоки также являются исполняемыми.

Блоки можно перемещать по документу и располагать в удобной для пользователя форме, но для правильного функционирования системы имеет большое значение правильный порядок расположения блоков . Например, если в некотором блоке содержатся операции, требующие данных из другого блока, то этот другой блок обязательно должен выполняться первым и располагаться перед использующим его блоком. Иная ситуация приведет к появлению ошибки. Сигнал ошибки имеет вид надписи, от которой отходит черта, указывающая место ошибки:

.

При манипуляциях с блоками на экране могут оставаться нежелательные искажения. Для их устранения следует использовать команду Refresch (обновить) меню View .

В документе MathCad эффективно решена проблема сквозной передачи данных от одного блока к другому, например, от одного математического выражения к другому, от него к таблицам, от таблиц к графикам и т.д. Поэтому изменение в любой формуле или в задании входных данных тут же ведет к пересчету задачи по всей цепи взаимодействия блоков (это не относится, однако к символьным операциям, реализуемым с помощью команд меню).

Размеры блоков устанавливаются автоматически в зависимости от числа входящих в них знаков, либо от заданных размеров графиков . Обычно границы блоков не видны, но можно установить подсвеченный режим показа блоков (команда View Regions ) Блоки не должны налагаться друг на друга . Если такое произошло, то надо воспользоваться командой разделения перекрывающихся областей в документе ( Format t/Separate Regions ), предварительно выделив эти перекрывающиеся области.

Сразу после запуска система готова к созданию документа с необходимыми пользователю вычислениями. Соответствующее новому документу окно редактирования получает название Untitled: N , где N – порядковый номер документа. При сохранении на диск документ системы MathCad записывается в файл с расширением .mcd.

Окно редактирования содержит (даже когда очищено) два важных объекта – курсор ввода в виде красного крестика и вертикальную линию, отделяющую текущую страницу от соседней (справа) . Если документ большой, то в некотором месте будет наблюдаться и прерывистая горизонтальная линия раздела страниц . Эти линии раздела показывают, каким образом будет осуществляться разбиение на страницы при распечатке документа на принтере. Изменить параметры страницы можно с помощью команды File/Page Setup . В окне редактирования документа можно включить линейку с помощью команды View/Ruler . Масштаб документа можно изменить по команде View/Zoom .

3. Основные объекты входного языка системы MathCAD .

Фактически документы MathCad представляют собой программу , написанную на визуально-ориентированном языке программирования . Визуально- ориентированные языки программирования задают программу не в виде малопонятных кодов, а в виде визуально понятных объектов . Язык программирования MathCad ориентирован на математические вычисления и потому практически не отличается от обычного языка математических статей, отчетов и книг.

Входной язык MathCad относится к интерпретируемому типу. Это значит, что, когда система опознает какой-либо объект, она немедленно исполняет указанные в блоке операции.

Визуально-ориентированный язык общения системы MathCad надо отличать от языка реализации системы , т.е. обычного языка программирования высокого уровня, на котором написана система. Языком реализации системы MathCad является один из самых мощных языков высокого уровня – С++.

По существу входной язык системы – промежуточное звено между скрытым от пользователя языком документа и языком реализации системы. По мере того как пользователь создает (средствами текстового, формульного, символьного и графического редакторов) в окне редактирования объекты (тексты, формулы, таблицы и графики), система сама составляет программу на некотором промежуточном языке связи. Эта программа хранится в оперативной памяти до тех пор, пока не будет записана на диск в виде файла с расширением .mcd. Однако от пользователя не требуется знание языков программирования (реализации и связи), достаточно освоить приближенный к естественному математическому языку входной язык системы.

К основным объектам входного языка системы MathCAD можно отнести: алфавит, константы, переменные, операторы, функции .

Алфавит – строчные и прописные латинские буквы, цифры от 0 до 9, греческие буквы. Следует отметить, что MathCAD различает строчные и прописные буквы (X и x – разные переменные) и различает шрифт (X и X – тоже разные переменные). Также в алфавит входят символ бесконечности ∞ , штрих ′ (набирается с помощью клавиш ctrl/F7), символ подчеркивания _, символ процента, нижний индекс (набирается с помощью клавиши «.», индекс в определении имени переменных и функций, например К 2 , не надо путать с числовым индексом векторной переменной). Имя переменной или функции в системе MathCAD может быть любой длины , но:

  • имена не должны начинаться с цифры, символа подчеркивания, штриха или процента;
  • символ бесконечности может быть только первым в имени;
  • все буквы в имени должны иметь один стиль и шрифт;
  • имена не могут совпадать с именами встроенных функций, констант и размерностей, например, sin или TOL. Тем не менее, допускается их переопределение, но тогда одноименная встроенная функция не будет использоваться по первоначальному назначению;
  • MathCAD не различает имен переменных и функций: если сначала определить функцию f(x), а потом переменную f, то в оставшейся части документа будет утерян доступ к функции f(x);
  • в некоторых случаях желательно использовать имена переменных и функций, содержащие символы операторов MathCAD или другие символы, которые нельзя вставлять в имена непосредственно, для этого надо набрать комбинацию клавиш Ctrl/Shift/J, которая позволит вставить пару квадратных скобок с местозаполнителем внутри . Имя, составленное из любых символов и заключенное в эти квадратные скобки, MathCAD будет воспринимать корректно .

Константы – это числа и предварительно определенные системные константы:

.

Эти значения системных констант устанавливаются после загрузки системы .

— погрешность для условий ограничения при решении оптимизационных задач с применением функций Find, Minerr, Maximize, Minimize ;

— ширина столбца, используемая при записи файлов функцией WRITEPRN;

— число значащих цифр при записи файлов функцией WRITEPRN.

Формат вывода системных констант можно изменить. Для этого достаточно дважды щелкнуть по числу в блоке вывода результата, при этом появится диалоговое окно, в котором надо будет установить число знаков после запятой. Таким же образом можно изменить формат вывода любых других результатов вычислений. По умолчанию формат вывода имеет три знака после запятой.

Значения некоторых системных констант можно изменить с помощью команды / в диалоговом окне, либо эти значения можно переопределить через оператор присваивания .

Переменные – это объект, числовое значение которого может меняться по ходу выполнения документа. Для присваивания переменной числа или результата выражения используется знак локального присваивания , который можно набрать с клавиатуры (клавиша «двоеточие» на латинском шрифте), с палитры и с палитры . Знак присваивания в системе MathCAD означает, что действие происходит справа налево (а не слева направо). Если при оформлении документа необходимо, чтобы присваивание выглядело на экране как знак равенства без двоеточия, то правой кнопкой надо вызвать контекстное меню и в диалоговом окне вместо пункта “Default” выбрать пункт “Equal”.

Знак обычного равенства (который применяется в системе MathCAD в основном для вывода результата) можно использовать только для первого присваивания .

При локальном присваивании надо обязательно соблюдать правильное расположение блоков . Но иногда в документах возникает необходимость использовать значение некоторой переменной выше на листе, чем расположен оператор присваивания . В таких случаях вместо локального присваивания используется знак глобального присваивания , который можно набрать либо с клавиатуры (клавиша «волнистая черта»), либо с палитры . Если в документе используется глобальное присваивание, то MathCAD проводит вычисления в следующей последовательности : вычисляются сверху вниз все блоки с оператором глобального присваивания, а затем снова с самого начала документа вычисляются сверху вниз все оставшиеся блоки. Это означает, что в блоках с оператором глобального присваивания нельзя использовать результат вычислений из обычного блока .

В отличие от языков программирования система MathCAD не требует точного задания типов переменных : целочисленные, вещественные, комплексные, текстовые, логические. Тип переменной автоматически определяется присвоенным ей значением: . В нижней строке показан результат вывода соответствующей переменной. Целые переменные пояснений не требуют.

Вещественная переменная может быть набрана и как десятичное число с любым количеством десятичных цифр после точки , и в экспоненциальной форме, для чего после ввода числа надо напечатать символ умножения и ввести 10 в нужной степени .

При вводе комплексных переменных мнимая единица набирается с палитры , либо с клавиатуры как . Если просто набрать как , то она будет восприниматься как простая переменная. Форму представления мнимой единицы можно изменить . Для этого дважды щелкнуть в окне вывода с мнимой единицей и в диалоговом окне сделать соответствующий выбор

Текстовая переменная заключается в кавычки. Значением логической переменной может быть 0 (что соответствует «лжи») или 1 (что соответствует «истине»).

В MathCAD есть и специальный тип переменных, именуемых ранжированными или циклическими переменными, которые задаются следующим образом:

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

.

Верхняя граница ранжированной переменной необязательно должна быть элементом последовательности, это число просто ограничивает последовательность сверху (или снизу для убывающей последовательности).

Массивы. Большим преимуществом системы MathCAD является возможность оперировать не только скалярными величинами, но и с массивами . MathCAD поддерживает два вида массивов – одномерные (векторы) и двумерные (матрицы). Элементы массивов характеризуются числовыми индексами , которые вставляется с помощью клавиши “[”, либо командой с панели . Обычно нумерация идет с нуля. Нумерация задается значением системной переменной ORIGIN, которая по умолчанию равна нулю. V 0 — первый элемент вектора, M 0, 0 — первый элемент матрицы. Можно обратиться не только к элементу массива, но и к его колонке, например, M — первая колонка матрицы. Элементами массива могут быть числа, константы, переменные, математические выражения и даже другие массивы . Соответственно массивы могут быть численными и символьными . Основные операции для работы с векторами и матрицами собраны на панели .

Существует несколько способов создания массивов. Самый простой и наглядный способ создания матрицы с помощью команды Insert/Matrix . При вызове этой команды появляется диалоговое окно, в котором надо задать число строк и число колонок матрицы (вектор — это матрица с одной колонкой). Появится шаблон матрицы, в черные квадратики которого надо ввести значения элементов матрицы.

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

Для того, чтобы удалить строки и столбцы из матрицы, надо установить курсор на элемент матрицы, который находится в самом левом столбце из тех, которые нужно удалить и в самой верхней строке из тех, которые нужно удалить

Также матрицу можно создать через определение его элементов

Развернуть вложенные массивы можно, установив, флажок (Разворачивать вложенные массивы) в окне

Есть и другие способы создания матриц – создание матрицы с помощью таблицы ввода, создание матрицы путем импорта данных.

Функции . В системе MatCAD различают встроенные функции (функции, заранее введенные разработчиком системы) и пользовательские функции (созданные пользователем).

Встроенные функции . Вставляются с помощью команды Insert/Function или набором с

клавиатуры. При этом следует помнить, что имена встроенных функций чувствительны к регистру , их следует вводить в точности, как они приведены в системе. Параметры встроенных функций заключаются в скобки. В качестве параметра м.б. константа, переменная или математическое выражение, при этом константа, переменная, выражение должны быть определены ранее

Функции пользователя . В MathCAD, как и в языках программирования, есть возможность задания функций пользователя. Имена функций пользователя подчиняются тем же правилам, что и имена переменных. Для задания функции пользователя нужно ввести имя , а затем в круглых скобках через запятую ввести все аргументы . Для аргументов можно использовать любые имена, подчиняющиеся тем же правилам, что и имена переменных. Далее, как обычно, надо ввести оператор присваивания и после него – выражение, зависящее от введенных аргументов. Все переменные, присутствующие справа в выражении определения функции, либо должны входить в список аргументов функции, либо должны быть определены ранее. В противном случае будет выведено сообщение об ошибке, причем имя неопределенной переменной будет выделено красным цветом

Операторы . Каждый оператор в MathCAD обозначает некоторое математическое действие в виде символа . Каждый оператор действует на одно или два числа (переменную или функцию), которые называются операндами . Если в момент вставки оператора одного или обоих операндов не хватает, то недостающие операнды будут отображены в виде местозаполнителей. Математические палитры содержат сгруппированные по смыслу математические операторы:

  1. Операторы, обозначающие арифметические действия, называются арифметическими и вводятся с палитры .
  2. Операторы, которые вставляются с палитры (Вычисления), называются вычислительными операторами (дифференцирование, интегрирование, суммирование, вычисление произведения, пределы).
  3. Логические операторы – вводятся с палитры .
  4. Матричные операторы – предназначены для совершения различных действий над векторами и матрицами, вводятся с палитры .
  5. Операторы выражения – сгруппированы на панели (Evaluation – Выражения) (оператор численного вывода , оператор локального присваивания , оператор глобального присваивания , оператор символьного вывода).
  6. Операторы пользователя. Запросы взыскательного пользователя могут не исчерпываться набором встроенных операторов MathCAD. Для вставки в документы заранее созданных операторов пользователя применяется панель . Оператор пользователя может иметь абсолютно любое имя. Присваивать оператору некоторое действие следует точно так же, как функции пользователя. Создание бинарного оператора выглядит след. образом:

.

Унарный оператор пользователя создается аналогично

Вывод результатов вычислений и значений переменных осуществляется с помощью

знака обычного равенства . В различных задачах выводить результаты вычислений требуется в различном виде: как десятичную или простую дробь, десятичную дробь в обычной или экспоненциальной форме. Формат вывода задается командой Forma/Result . После вызова этой команды (двойной щелчок на нужном блоке) появляется диалоговое окно Result Format :

В списке Format слева можно выбрать один из пяти различных форматов отображения числа, а с помощью полей и флажков справа можно настроить выбранный формат.

General – это используемый по умолчанию формат результатов вычислений. Число представляется в виде десятичной дроби. Количество знаков после запятой задается в поле . Если установлен флажок , то дробь будет при необходимости дополнена нулями до количества знаков, указанных выше . Поле задает границу перехода ET (Exponential threshold) к экспоненциальной форме (такую форму числа приобретают, если их значение больше 10 ET и меньше 10 -ET) . При установленном флажке в экспоненциальной форме записи используются только порядки, кратные трем . Это является стандартной инженерной формой записи, поскольку для физических величин в системе CИ со степенями, кратными трем, связаны различные стандартные приставки: кило-, мега-, милли- и др.

Decimal – формат вывода результата в виде десятичной дроби без экспоненты.

Scientific – в этом формате результат всегда выводится в экспоненциальной форме.

Engineering – также используется только экспоненциальная форма записи дробей, но при этом используются только порядки, кратные трем.

Fraction – в этом формате результат выводится в виде простой дроби

В диалоговом окне Result Format также можно изменять представление машинного нуля для комплексных чисел CT (Complex threshold) (если Re(Z)/Im(Z) > 10 CT , то Z выводится

как реальное, если наоборот, то как мнимое) и значение машинного нуля ZT (Zero threshold)

.

Формат вывода может быть глобальным и локальным . Чтобы установить локальный формат, можно сделать двойной щелчок по блоку, при этом появится диалоговое окно Result Format . Данный блок будет иметь локальный формат, а все остальные — глобальный.

Управление процессом вычислений . После запуска MathCAD находится в режиме автоматических вычислений . Это означает, что при внесении каких-либо изменений в документ, все видимые в данный момент формульные блоки и графики пересчитываются и строятся заново . В некоторых случаях такой режим работы может быть нежелательным , например, если в документе есть сложные вычисления, требуется обработка больших объемов данных или выполняются операции, занимающие много времени. В таких случаях работать с документом оказывается очень неудобно, и возникает необходимость запретить автоматическое вычисление либо всего документа, либо для блоков, содержащих наиболее сложные вычисления.

Для того чтобы отключить/включить режим автоматического вычисления для всего документа, надо выбрать команду меню / / . При отключенном режиме автоматического вычисления, для того чтобы пересчитать все блоки в документе можно выбрать команду меню / / . Для того чтобы пересчитать не весь документ, а лишь тот блок, в котором находится курсор, следует выбрать команду меню / / (если курсор находится в свободном месте рабочей области документа, то пересчитаны будут все блоки, которые в данный момент видны на экране).

Для того чтобы временно отключить вычисление одного блока , можно воспользоваться командой контекстного меню . После выбора этой команды MathCAD при просчете документа вообще не будет «обращать внимания» на данный блок и производить вычисления так, как будто его удалили. Для того чтобы возобновить вычисление «отключенного» блока, нужно выбрать команду контекстного меню .

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

Единицы измерения физических величин . При проведении физико-технических расчетов почти всегда имеют дело не просто с абстрактными числами, а с некоторыми физическими величинами. Для того чтобы число в выражении рассматривалось как некоторая физическая величина, нужно ввести единицы измерения следующим образом: после введенного числа ввести знак умножения , выбрать команду / , в диалоговом окне в списках и выбрать нужную единицу измерения . Над размерными переменными можно производить любые корректные с физической точки зрения расчеты . Нельзя складывать переменные разной размерности, будет получено сообщение об ошибке . Но позволяется складывать, например, амперы с кило амперами .

Для любого результата вычислений есть возможность изменить его единицы измерения . Если щелкнуть на формульном блоке, содержащем результаты вычислений, то справа от единиц измерения результата появится черный квадратик – поле ввода единиц измерения, к которым необходимо привести результат. Если введенные здесь единицы измерения не будут соответствовать единицам результата, то MathCAD автоматически допишет нужный коэффициент . В MathCAD по умолчанию все результаты вычислений представлены в системе СИ. Однако систему измерений можно изменить с помощью команды / и диалогового окна .

4. Текстовый редактор служит для ввода и редактирования текстов. Именно тексты делают документы MathCad документами в общепринятом смысле этого слова.

В простейшем случае для ввода текста достаточно ввести символ » на английском регистре. Нередко пользователь начинает набор текстов, забыв установить кавычки. MathCad воспринимает такой набор как ввод математического выражения. Однако, нажав клавишу Пробел, можно тут же превратить набранный фрагмент в текстовый. Признаком текстового блока являются черные квадратики на правой и нижней границах блока, а курсор в текстовом блоке приобретает вид красной вертикальной черты .

Текст может состоять из слов, математических выражений и формул, спец. знаков. Русский текст вводится с помощью любого кириллического шрифта Courier , Times New Roman Cyr , Arial Cyr ). Также для работы с текстом предусмотрены команды меню Format/Text и Format/Paragraph . Можно создать текстовую область (текст начинается на позиции курсора), создать текстовый параграф (текст начинается первой строкой на позиции курсора), форматировать текст (панель форматирования), внедрять в текст математические формулы (команда Insert / Math Region , при этом надо находится в текстовом блоке), проверять орфографию ( Check Spelling ) для англоязычных текстов, изменять размер шрифта, начертание, цвет текста и т.д. Т.е. для текстовых блоков используются типовые средства редактирования (как в любых текстовых редакторах).

5. Графический процессор служит для создания графиков. Это очень удобно для вывода результатов математических расчетов в графической форме. Графики могут размещаться в любом логически дозволенном месте документа, т.е. после тех вычислительных блоков системы, которые готовят исходные данные для построения графиков.

После включения графического процессора для двухмерного графика на экране появляется шаблон будущего графика в виде прямоугольной рамки с маленькими прямоугольниками, расположенными вдоль осей x и y .

Крайние задают пределы изменения переменных (пределы проставляются системой автоматически, но можно их изменять — для этого в диалоговом окне Formatting флажок » autoscale » надо отключить), а в средние надо ввести имена аргумента и функции. После нажатия Enter график будет построен. Для форматирования графика достаточно сделать двойной щелчок по полю графика, при этом появится диалоговое окно Formatting .

Если строятся графики нескольких функций в одном шаблоне, то имена функций следует разделять запятыми.

6. Вычислитель(формульный редактор) обладает поистине уникальными возможностями. Он обеспечивает вычисления по сложным математическим формулам, имеет большой набор встроенных математических формул, позволяет вычислять ряды, суммы и произведения, интегралы и производные, работать с комплексными числами, производить символьные преобразования, решать линейные и нелинейные уравнения, проводить минимизацию функций, выполнять векторные и матричные операции. В вычислитель входят и такие мощные средства, как линейная и сплайн-интерполяция, прямое и обратное быстрое преобразование Фурье.

Для запуска формульного редактора достаточно установить указатель мыши в любом свободном месте окна документа, щелкнуть левой кнопкой и начинать ввод. Поместить формулу в документ можно, просто начиная вводить символы , числа или операторы . Во всех этих случаях на месте курсора ввода создается математическая область (регион) с формулой, содержащей и линии ввода. В области формульного блока курсор ввода превращается в синий уголок, указывающий направление и место ввода . Клавиша Insert меняет направление охвата курсором объекта. Для расширения охваченной уголком области (вплоть до полного охвата выражения) нужно пользоваться клавишей Пробел .

Перемещать линии ввода внутри формульного блока можно также с помощью клавиш со стрелками или щелкая в нужном месте мышью .

Большинство операций редактирования формул реализованы естественным образом, однако некоторые из них несколько отличаются от общепринятых, что связано с особенностью MathCAD как вычислительной системы, например, вставка операторов. Операторы могут быть унарными (действующими на один операнд) и бинарными (действующими на два операнда) . При вставке нового оператора в документ MathCAD определяет, сколько операндов ему требуется. Если в точке вставки оператора один или оба операнда отсутствуют, MathCAD автоматически помещает рядом с оператором один или два местозаполнителя. То выражение в формуле, которое выделено линиями ввода в момент вставки оператора, становится его первым операндом

.

Как видно, MathCAD сам расставляет, если необходимо, скобки, чтобы часть формулы, отмеченная линиями ввода, стала первым операндом. Местозаполнители (черный квадратик – для символа и прямоугольная рамка – для оператора) появляются внутри незавершенных формул . Символ в черный квадратик вводится обычным образом, а чтобы в прямоугольную рамку ввести оператор, например +, необходимо курсор расположить перед этой прямоугольной рамкой .

  1. Назначение системы MathCAD. Какие еще пакеты математических программ вы знаете?
  2. Интерфейс пользователя в системе MathCAD.
  3. Документ в системе MathCAD(заголовок, расширение при сохранении на диск, типы и расположение блоков, точка привязки блока, размеры блоков, сквозная передача данных в документе).
  4. Объясните, что такое входной язык системы MathCAD и язык реализации системы MathCAD?
  5. Перечислите основные объекты входного языка системы MathCAD. Расскажите об алфавите языка и о встроенных и пользовательских функциях системы MathCAD. Что такое определение функции и обращение к функции?
  6. Константы и переменные в системе MathCAD? Как задаются типы данных в MathCAD? Что такое глобальное и локальное присваивание переменных в документе MathCAD? Как вставляется мнимая единица для комплексных чисел? Что такое ранжированная переменная и как она задается?
  7. Как задаются массивы в MathCADе? Как можно добавлять строки и столбцы в готовые матрицы? Как удаляются строки и столбцы из матриц?
  8. Перечислите операторы входного языка системы MathCAD?
  9. Как осуществляется вывод результатов в системе MathCAD? Как можно настроить формат вывода результатов? Как осуществляется управление процессом вычислений в системе MathCAD?
  10. Как работать с единицами измерений физических величин в системе MathCAD?
  11. Подробно охарактеризуйте текстовые, графические и математические блоки.

Лекция №2. Задачи линейной алгебры и решение дифференциальных уравнений в среде MathCAD

В задачах линейной алгебры практически всегда возникает необходимость выполнять различные операции с матрицами. Панель операторов с матрицами находится на панели Math.

Операторы , вам уже знакомы. Напомним только, что оператор вычисляет только детерминант матрицы, а модуль вектора, который равен квадратному корню из суммы квадратов его элементов, вычисляется с помощью оператора , который расположен на панели Calculator. К сожалению, по внешнему виду они не отличаются.

При попытке вычислить модуль вектора с панели Matrix будет ошибочное состояние. Точно также будет ошибочное состояние при попытке вычислить детерминант матрицы с панели Calculator.

Рассмотрим неизвестные вам до сих пор операторы панели Matrix.

Скалярное произведение векторов определяется как скаляр, равный сумме попарных произведений соответствующих элементов (идентичен обычному оператору умножения). Векторы должны иметь одинаковый размер. Для обозначения скалярного произведения используется символ «точка». Векторное произведение двух векторов u и v с углом θ между ними равно вектору с модулем , направленным перпендикулярно плоскости векторов u и v. Векторное произведение векторов применимо только для трехкомпонентных векторов. Обозначают векторное произведение символом х, который можно ввести нажатием кнопки на панели Matrix/

— сумма элементов вектора.

— оператор векторизации. Он позволяет провести однотипную операцию над всеми элементами массива (т.е. матрицы или вектора), упрощая тем самым программирование циклов. Например, иногда требуется умножить каждый элемент одного вектора на соответствующий элемент другого вектора. Непосредственно такой операции в MathCAD нет, но ее легко осуществить с помощью векторизации. Оператор векторизации можно использовать только с векторами и матрицами одинакового размера.

Для решения задач линейной алгебры в MathCAD встроены матричные функции. Их можно разделить на три основные группы:

  • функции определения (генерации) матриц и операции с блоками матриц;
  • функции вычисления различных числовых характеристик матриц;
  • функции, реализующие численные алгоритмы решения задач линейной алгебры.

Из каждой группы приведем по несколько, наиболее часто используемых функций.

  1. matrix(m, n, f) – создает и заполняет матрицу размерности m x n, элемент которой, расположенный в i-ой строке и j-ом столбце равен значению f(i, j) функции f(x, y);
  2. diag(v) – создает диагональную матрицу, элементы главной диагонали которой хранятся в векторе v;
  3. identity(n) – создает единичную матрицу порядка n;
  4. augment(A, B) – объединяет матрицы A и B; матрица B располагается справа от матрицы A, при этом матрицы должны иметь одинаковое число строк;
  5. stack(A, B) – объединяет матрицы A и B, матрица В располагается внизу под матрицей А, при этом матрицы должны иметь одинаковое число столбцов;
  6. submatrix(A, ir, jr, ic, jc) – формирует матрицу, которая является блоком матрицы А, расположенным в строках с ir по jr и в столбцах с ic по jc, причем ir ≤ jr, ic ≤ jc.

  1. last(v) – вычисляет номер последнего элемента вектора V;
  2. length(v) – вычисляет количество элементов вектора V;
  3. min(v), max(v) – вычисляет минимальное и максимальное значения вектора V;
  4. Re(v) – создает вектор из реальных частей комплексных элементов вектора V;
  5. Im(v) — создает вектор из мнимых частей комплексных элементов вектора V;
  6. sort(V) – сортировка элементов вектора V по возрастанию;
  7. reverse (sort(v)) – сортировка элементов вектора V по убыванию;
  8. csort (A,n) – сортировка элементов n – го столбца матрицы А по возрастанию (перестановкой строк);
  9. rsort (A,n) – сортировка элементов n – ой строки матрица А по возрастанию (перестановкой столбцов);
  10. rows(A) – вычисляет число строк в матрице А;
  11. cols(A) – вычисляет число столбцов в матрице А;
  12. max(A), min(A) – определяет максимальное и минимальное значения матрицы А;
  13. tr(A) – вычисляет след квадратной матрицы А (след матрицы равен сумме ее диагональных элементов по главной диагонали);
  14. mean(A) – среднее значение элементов матрица А.

Действие функций второй группы ясно из их названия, поэтому примеры для них приводить не будем.

  1. rref(A) – приведение матрицы к ступенчатому виду с единичным базисным минором (выполняются элементарные операции со строками матрицы: перестановка строк, умножение строки на число, сложение строк);
  2. rank(A) – вычисляет ранг матрицы А (количество линейно-независимых строк или это число ненулевых строк ступенчатой матрицы rref(A));
  3. eigenvals(A) – вычисление собственных значений квадратной матрицы А;
  4. eigenvecs (A) – вычисление собственных векторов квадратной матрицы А, значением функции является матрица, столбцы которой есть собственные векторы матрицы А, причем порядок следования векторов отвечает порядку следования собственных значений, вычисленных с помощью функции eigenvals(A);
  5. eigenvec(A,e) – вычисление собственного вектора матрицы А, отвечающего собственному значению e;
  6. normi(A) – max – норма, или ∞ — норма (infinity norm). в линейной алгебре используются различные матричные нормы, которые ставят в соответствие матрице некоторую скалярную числовую характеристику;
  7. lsolve (A,b) – решение системы линейных алгебраических уравнений вида .

Функции третьей группы реализуют, как правило, довольно сложные вычислительные алгоритмы. Приведем примеры на использование функций rref и функций для вычисления собственных значений и собственных векторов матрицы. Задача поиска собственных значений и собственных векторов матрицы очень часто встречается в вычислительной практике.

В самом простом виде задача на собственные значения матрицы формулируется следующим образом: требуется найти такие значения λ , чтобы матричное уравнение имело решение. В таком случае число λ называют собственным числом матрицы А, а n- компонентный вектор Х, приводящий уравнение с заданным λ в тождество – собственным вектором. В вышеприведенном примере собственные вектора матрицы А получены в матрице MS. Проверка проведена для первого столбца матрицы MS и соответствующего ему собственного числа λ 0 =5.439.

Решение систем линейных алгебраических уравнений . Этот вопрос является центральным в вычислительной линейной алгебре.

В математике рассматриваются системы линейных уравнений двух видов — однородные и неоднородные .

Неоднородная система уравнений в матричном виде записывается следующим образом: . Здесь А – матрица коэффициентов системы, В – вектор свободных членов, Х – вектор неизвестных системы.

Неоднородная система имеет одно единственное решение, если определитель матрицы отличен от нуля . Для нахождения точного решения неоднородных систем линейных уравнений в линейной алгебре используются три основных метода:

  • метод обратной матрицы, он вам уже известен;
  • метод исключений Гаусса;

Неоднородная система линейных уравнений в случае равенства ее определителя нулю имеет множество решений, если ранг матрицы системы равен рангу расширенной матрицы системы, либо не имеет решения, если это условие не выполняется. Решить такие системы в MatCADe можно методом Гаусса.

В выше приведенном примере получили систему из трех уравнений с пятью неизвестными, поэтому решение системы будет иметь два свободных параметра (x4, x5).

Однородная система линейных алгебраических уравнений может быть представлена в виде , т.е. правая часть уравнения представляет вектор из нулевых элементов. Как известно, для того чтобы однородная система линейных уравнений имела решение, определитель соответствующей матрицы должен равняться нулю . Это означает, что количество независимых уравнений в системе (т.е. ранг матрицы) меньше, чем количество неизвестных (т.е. порядок матрицы): rank(A) < n. Но вначале нужно выделить в системе эти самые независимые уравнения. Это делается с помощью функции rref , которая с помощью метода исключений Гаусса приводит матрицу к ступенчатому виду.

Дифференциальные уравнения являются основой огромного количества расчетных задач из самых различных областей науки и техники.

В MathCAD нет средств символьного (точного) решения дифференциальных уравнений, но достаточно хорошо представлены численные методы их решения. Дифференциальные уравнения – это уравнения, в которых неизвестные являются не переменные (т.е. числа), а функции одной или нескольких переменных. Эти уравнения (или системы) включают соотношения между искомыми функциями и их производными. Если в уравнения входят производные только по одной переменной, то они называются обыкновенными дифференциальными уравнениями (ОДУ). В противном случае говорят об уравнениях в частных производных . Таким образом, решить (иногда говорят проинтегрировать) дифференциальное уравнение – значит, определить неизвестную функцию на определенном интервале изменения ее переменных.

Как известно, одно обыкновенное дифференциальное уравнение или система ОДУ имеет единственное решение, если помимо уравнения определенным образом заданы начальные или граничные условия. Имеется два типа задач, для которых возможно численное решение ОДУ с помощью MathCAD:

  • задачи Коши , для которых определены начальные условия на искомые функции, т.е. заданы значения этих функций в начальной точке интервала интегрирования уравнения;
  • краевые задачи , для которых заданы определенные соотношения сразу на обеих границах интервала. Из дифференциальных уравнений в частных производных есть возможность решать только уравнения с двумя независимыми переменными : одномерные параболические и гиперболические уравнения, такие как уравнения теплопроводности, диффузии, волновые уравнения, а также двухмерные эллиптические уравнения (уравнения Пуассона и Лапласа).

В MathCAD нет универсальной функции для решения дифференциальных уравнений, а есть около двадцати функций для различных видов уравнений, дополнительных условий и методов решения. Эти функции можно найти в библиотеке Insert/Function, категория “Differential Equation Solving (решение дифференциальных уравнений).

Решение Обыкновенных Дифференциальных Уравнений (ОДУ)

ОДУ первого порядка называется уравнение

F – известная функция трех переменных;

x – независимая переменная на интервале интегрирования[a,b];

y – неизвестная функция;

y ’ – ее производная.

Функция y(x) является решением дифференциального уравнения, если она при всех x ∈ [a,b] удовлетворяет уравнению

График решения y(x) называется интегральной кривой дифференциального уравнения. Если не заданы начальные условия, таких решений y(x) будет множество. При известных начальных условиях y(x 0 )= y 0 решение y(x) будет единственным. Вычислительный процессор MathCAD может работать только с нормальной формой ОДУ. Нормальная форма ОДУ – это ОДУ, разрешенное относительно производной y ’ =f(x,y)

ОДУ высших порядков

Обыкновенным дифференциальным уравнением n-го порядка называется уравнение вида

F(x,y,y ’ ,y ’’ , …,y (n) )=0

F – известная функция n+2 переменных;

x – независимая переменная на интервале интегрирования[a,b];

y – неизвестная функция;

n – порядок уравнения.

Функция y(x) является решением дифференциального уравнения, если она при всех x ∈ [a,b] удовлетворяет уравнению

F(x, y(x), y ’ (x), y ’’ (x),…, y (n) (x))=0

Нормальная форма ОДУ высшего порядка имеет вид

Y (n) =f(x, y, y ’ , …, y (n-1) )

Если не заданы начальные условия, то дифференциальное уравнение n – го порядка имеет бесконечное множество решений, при задании начальных условий y(x 0 )= y 0 , y ’ (x 0 )= y 0,1 , y ’’ (x 0 )= y 0,2 , …, y (n-1) (x 0 )= y 0,n-1 решение становится единственным (задача Коши).

Задача Коши для дифференциального уравнения n – го порядка может быть сведена к задаче Коши для нормальной системы n дифференциальных уравнений 1 го порядка, которая в векторной форме имеет вид

Y ’ = F(x, Y), Y(x 0 ) = Y 0

Y(x 0 ) = Y 0 – вектор начальных условий;

Y ’ =(y ’ 1 , y ’ 2 , …, y ’ n ) – вектор первых производных;

F(x, Y) = (y 2 , y 3 , …, y n , f(x,y 1 , … , y n ) – вектор правых частей;

Y = (y 2 , y 3 , …, y n ) – вектор искомого решения.

Эта система получается в результате следующей замены:

,где

Для численного интегрирования ОДУ в MathCAD имеется выбор – либо использовать вычислительный блок Given/Odesolve, либо встроенные функции. Оба способа обладают одинаковыми возможностями, но при использовании блока решения запись уравнений более привычна и наглядна, однако отдельная функция может быть использована в составе других функций и программ. Рассмотрим оба варианта решения.

Вычислительный блок Given/Odesolve

Ниже приведены два примера для решения дифференциальных уравнений первого и второго порядка с использованием вычислительного блока решения Given/Odesolve.

Вычислительный блок для решения одного ОДУ состоит из трех частей:

  • ключевое слово given;
  • ОДУ и начальные условия, записанные с помощью логического равенства;
  • встроенная функция Odesolve(x, b) относительно независимой переменной x на интервале [a, b]; b – верхняя граница отрезка интегрирования. Допустимо и даже предпочтительнее задание функции Odesolve(a, b, step) с тремя параметрами, где step – внутренний параметр численного метода, определяющий количество шагов; чем больше step, тем с лучшей точностью будет получен результат, но тем больше времени будет затрачено на его поиск.

Функция Odesolve возвращает решение задачи в виде функции. Эта функция не имеет символьного представления и может только вернуть численное значение решения уравнения в любой точке интервала интегрирования.

Функция Odesolve использует для решения дифференциальных уравнений наиболее популярный алгоритм Рунге-Кутта четвертого порядка, описанный в большинстве книг по методам вычислений. Он обеспечивает малую погрешность для широкого класса систем ОДУ за исключением жестких систем. Если щелчком правой кнопки мыши на блоке формул с функцией Odesolve вызвать контекстное меню, то можно изменить метод вычисления решения, выбрав один из трех вариантов: Fixed – метод Рунге-Кутта с фиксированным шагом интегрирования (этот метод используется по умолчанию), Adaptive – также метод Рунге-Кутта, но с переменным шагом, изменяемым в зависимости от скорости изменения функции решения, Stiff – метод, адаптированный для решения жестких уравнений и систем (используется так называемый метод PADAUS).

Альтернативный метод решения ОДУ заключается в использовании одной из встроенных функций: rkfixed, Rkadapt, или Bulstoer. Все они решают задачу Коши для системы дифференциальных уравнений первого порядка , но каждая из них использует для этого свой метод. Для простых систем не играет большой роли, какой метод использовать – все равно получите решение достаточно быстро и с высокой точностью. Но для сложных или специфических систем бывает, что некоторые методы вообще не могут дать удовлетворительного решения за приемлемое время. Именно для таких сложных, но не редких случаев в MathCAD и введено несколько различных методов решения систем ДУ.

  • rkfixed – метод Рунге-Кутта с фиксированным шагом интегрирования. Самый простой и быстрый метод, но далеко не всегда самый точный. Полностью аналогичен использованию функции Odesolve с выбранным в контекстном меню методом Fixed.
  • Rkadapt – метод Рунге-Кутта с переменным шагом интегрирования. Величина шага адаптируется к скорости изменения функции решения. Данный метод позволяет эффективно находить решения уравнений, в случае если оно содержит как плавные, так и быстро меняющиеся участки. Там, где решение меняется слабо, шаги выбираются более редкими, а в областях его сильных изменений – частыми. В результате для достижения одинаковой точности требуется меньшее число шагов, чем для rkfixed. Полностью аналогичен использованию функции Odesolve с выбранным в контекстном меню методом Adaptive.
  • Bulstoer – метод Булирша – Штера. Этот метод более эффективен, чем метод Рунге-Кутта, в случае если решение является плавной функцией.

Имена функций Rkadapt и Bulstoer начинаются с прописной буквы. В MathCAD для некоторых имен функций неважно, с какой буквы они записаны, но для перечисленных функций это принципиально, т.к. в MathCAD также существуют функции с такими же именами, только записанные с маленькой буквы – rkadap, bulstoer. Эти функции используются в тех случаях, когда важным является решение задачи в конечной точке интервала интегрирования.

Выше приведены примеры решения тех же дифференциальных уравнений первого и второго порядка, которые были решены с использованием вычислительного блока Given/Odesolve.

Применение встроенных функций в документах MathCAD выглядит сходным образом, т.е. функции Rkadapt и Bulstoer имеют тот же синтаксис, что и выше приведенная функция rkfixed. Назначение аргументов в этих встроенных функциях следующее:

  • y – вектор начальных значений неизвестных функций, входящих в систему. В случае одного уравнения и одной неизвестной функции – это просто число.
  • а – начало отрезка, на котором ищется решение системы (отрезка интегрирования). Именно в этой точке значения неизвестных функций принимаются равными элементам вектора y.
  • b – конец отрезка интегрирования.
  • n – количество частей, на которые разбивается отрезок [a, b] при решении системы. Чем больше это число, тем точнее получается решение, но расчет занимает больше времени.
  • F(x,y) – векторная функция, элементы которой содержат правые части уравнений системы в нормальной форме (когда левые части – первые производные от соответствующих функций, а в правых частях производные отсутствуют). Аргументами этой функции являются вектор y, элементы которого соответствуют различным неизвестным функциям системы, и скалярный аргумент x , соответствующий независимой переменной в системе. В случае одного уравнения функция F может быть скалярной функцией, зависящей от двух скалярных переменных x и y.

Возвращаемым значением всех вышеперечисленных встроенных функций является матрица. Первый столбец этой матрицы – это точки, на которые разбивается отрезок [a, b], а остальные столбцы – это значения функций системы в этих точках. Если в аргументе функции rkfixed было указано количество частей n = 100, то матрица будет содержать 101 строку вместе с начальной.

Решение систем обыкновенных дифференциальных уравнений.

Для численного интегрирования систем ОДУ в MathCAD также имеется выбор – либо использовать вычислительный блок Given/Odesolve, либо встроенные функции rkfixed, Rkadapt и Bulstoer.

При решении систем ОДУ MathCAD требует, чтобы система ОДУ была представлена в нормальной форме (когда левые части – первые производные от соответствующих функций, а в правых частях производные отсутствуют):

где Y и Y ’ – соответствующие неизвестные векторные функции переменной t, а F – вектор правых частей системы уравнений первого порядка. Именно векторное представление используется для ввода системы ОДУ в среде MathCAD.

Если в систему ОДУ входят и уравнения высших порядков , то оно тоже сводится к системе уравнений первого порядка, как было показано выше. При этом количество нулевых условий для вычислительного блока Given/Odesolve, а также размер вектора начальных условий y и размер вектора правых частей F(x,y) для встроенных функций rkfixed, Rkadapt и Bulstoer должны быть равны сумме порядков всех уравнений .

Вначале покажем решение систем ОДУ первого порядка с использованием вычислительного блока Given/Odesolve

Функция Odesolve для системы ОДУ имеет несколько иной, по сравнению с одним уравнением, синтаксис. Теперь она возвращает вектор функций, составляющих решение системы. Поэтому в качестве первого аргумента функции нужно ввести вектор, состоящий из имен функций, использованных при вводе системы. Второй и третий аргументы то же самое, что и в задаче с одним ОДУ.

Решение системы ОДУ показано на графике слева. Как известно, решения ОДУ часто удобнее изображать не в таком виде, а в фазовом пространстве, по каждой из осей которого откладываются значения каждой из найденных функций (как показано на рисунке справа). При этом аргумент входит в них лишь параметрически. В рассматриваемом случае двух ОДУ такой график – фазовый портрет системы – является кривой на фазовой плоскости. В общем случае, если система состоит из N ОДУ, то фазовое пространство является N – мерным. При N > 3 наглядность теряется, и для визуализации фазового портрета приходится строить его различные проекции.

Рассмотрим решение этой же системы ОДУ первого порядка с использованием встроенной функции rkfixed.

Полученное решение полностью соответствует вышеприведенному решению с использованием вычислительного блока Given/Odesolve. Следует отметить, что начальные условия здесь задаются в виде вектора y, а функциям x(t) и y(t) соответствуют элементы этого вектора y 1 и y 2 . Вектор начальных условий y и вектор правых частей F имеют размер равный двум, т.к. система состоит из двух уравнений первого порядка. Для системы ОДУ, состоящей из двух уравнений второго порядка, размер этих векторов будет равен четырем

Open Library — открытая библиотека учебной информации

Открытая библиотека для школьников и студентов. Лекции, конспекты и учебные материалы по всем научным направлениям.

Категории

Дом Решение дифференциальных уравнений в MathCad

Для решения дифференциального уравнения или системы дифференциальных уравнений n-го порядка в MathCad их крайне важно привести к системе n дифференциальных уравнений первого порядка вида

с начальными условиями

К примеру, дифференциальное уравнение второго порядка , можно свести к двум уравнениям первого порядка, обозначив, , а . Тогда получим систему

Для решения такой системы дифференциальных уравнений используется встроенная функция rkfixed(y, x0, xk, n, F), которая возвращает полученную методом Рунге-Кутта таблицу решения системы на интервале от x0 до xk с начальными условиями, заданными вектором y. При этом правые части системы уравнений записаны в векторе F.

К примеру, пусть дана система дифференциальных уравнений

с начальными условиями

а параметр =0,1. Требуется найти решение данной системы дифференциальных уравнений на интервале .

Решение данной задачи в MathCad приведено на рис. 8.3.

При вводе матрицы F правых частей следует учитывать, что нумерация элементов вектора начинается с нуля, а не с единицы. Т.о. y0 соответствует y1 в условии задачи, а y1 — y2.

Приближенное решение системы, получаемое данным методом, представляется табличной функцией, заданной в 100 точках (n=0, 1, …, 99). При этом первый столбец матрицы решения Y соответствует x, второй — переменной y1, а третий — y2.

Рис. 8.3 Решение системы дифференциальных уравнений

В версии MathCad 2000 имеется ряд дополнительных функций для решения систем дифференциальных уравнений. Приведем некоторые из них [1].

· Rkadapt (y, x0, xk, n, F) — возвращает матрицу решения, полученного методом Рунге-Кутта с переменным шагом.

· Bulstoer (y, x0, xk, n, F) — реализует метод Булирша-Штера.

· odesolve (x, b, steps) — решение системы при заданных начальных условиях, конце интервала интегрирования b и числе шагов steps. При этом сами дифференциальные уравнения с начальными условиями задаются в блоке, начинающемся с директивы Given.

Читайте также

MathCAD интерпретирует все значения, начинающееся цифрой, как числа. В MathCAD можно работать со следующими классами чисел: · обычные вещественные (целые)числа; · комплексные числа, для ввода мнимого числа нужно за его модулем ввести символ мнимой единицы i или j;однако, нельзя. [читать подробенее]

Метод Эйлера для дифференциальных уравнений первого порядка Решим задачу Коши для ДУ первого порядка методом Эйлера. Пусть правая часть уравнения равна Зададим границы изменения x: Зададим число точек и величину шага: Зададим начальные условия: Вычислим x и y по. [читать подробенее]

Можливі використання умовного оператора IF Умовний оператор if може використовуватися для реалізації досить складних алгоритмів, що розгалужуються, у тілі операторів циклу. Тому розглянемо різне заповнення полю 1 і полю 3 цього оператора. Варіант 1. У полі 1. [читать подробенее]

Для решения дифференциального уравнения или системы дифференциальных уравнений n-го порядка в MathCad их необходимо привести к системе n дифференциальных уравнений первого порядка вида с начальными условиями Например, дифференциальное уравнение второго порядка . [читать подробенее]

Сравнение методов решения нелинейных уравнений Метод половинного деления очень прост и имеет одно явное преимущество по сравнению со всеми рассмотренными выше методами – он всегда сходится. Однако, скорость сходимости очень мала, поэтому его часто используют для. [читать подробенее]

Mathcad 2000 предлагает новый способ для решения обыкновенных дифференциальных уравнений, разрешенных относительно старшей производной. Для этих целей служит уже известный нам блок given совместно с функцией odesolve. Дифференциальное уравнение совместно с начальными или. [читать подробенее]

В качестве примера решим задачу о гармоническом осцилляторе, для которого известно аналитическое решение, и легко может быть оценена точность вычислений. Дифференциальное уравнение второго порядка преобразуем к системе из двух дифференциальных уравнений первого. [читать подробенее]

Пример 6.1.2-3. Определить значащие цифры числа. Значащими цифрами числа называют все цифры в его записи, начиная с первой ненулевой слева. Значащую цифру числа называют верной, если абсолютная погрешность числа не превосходит единицы разряда, соответствующего этой. [читать подробенее]

Mathcad 2000 представляет ряд дополнительных возможностей для поиска корней уравнений. Функция root(f(var1, var2, . ),var1, [a, b]) имеет теперь два необязательных аргумента a и b, которые определяют границы интервала, на котором следует искать корень. На концах интервала [a,b] функция f должна. [читать подробенее]

Краткий обзор универсального математического процессора Mathсad Для решения задач моделирования процессов и объектов ОМД Стандартные пакеты прикладных программ Загрузка программы производится через основное меню Windows.Отличительной особенностью программы. [читать подробенее]

Похожие публикации:

  1. Почему windows movie maker не поддерживает mp4
  2. Сколько панелей инструментов в mathcad две или три
  3. Что включает в себя интерфейс windows movie maker
  4. Что нельзя делать с помощью telegram

Как решать уравнения в mathcad prime

Символьное решение системы уравнений в mathcad prime 3.0 предусмотрены?

Mathcad 14 Решение системы уравнений
Как решить вот такую систему уравнений? решать упрямо не хочет. Пишет что есть проблема с.

Решение системы уравнений в MathCAD
Здравствуйте! Хотел бы узнать, как решать подобные системы уравнений и построить Декартов график.

Решение системы диф. уравнений в Mathcad
Необходимо с погрешностью 0.001 и шагом h найти решение дифференциальной системы уравнений первого.

Решение системы линейных уравнений в MathCAD
Решить систему линейных уравнений методом Крамера, матричным и блочным методами. Сравнить.

Exponenta.ru

Как решать квадратные уравнения? в MathCaD Prime 2.0

Модератор: Admin

Как решать квадратные уравнения? в MathCaD Prime 2.0

Сообщение kugen » Пт май 25, 2012 2:15 pm

Сообщение Vladimir__ » Пт май 25, 2012 2:35 pm

Посмотрите в справочном центре Mathcad Prime 2.0 (клавиша » F1 «). Там можно найти и описание функций для решения уравнений и сами примеры (можно, также, скопировать их в свой рабочий документ):

Решение разностных уравнений теплопроводности с использованием системы Mathcad

Вводная часть. В настоящее время при решении математических задач широко используется программирование в средах Fortran, Turbo Pascal, Delphi и др. При этом для выполнения даже небольших математических расчётов требуется знание основ программирования. При написании формул теряется их наглядность. Например, на языке Pascal 4x записывается

как sqrt(x), степень yx как exp(x * ln(y)) и т. п. Каждый раз при выводе на печать результатов расчёта по какоё-либо формуле требуется давать специальное сообщение, а для выдачи графиков требуется написание самим пользователем специальных программ. Этих недостатков лишена новая математическая система Mathcad.

Mathcad — это интегрированная математическая система, позволяющая наглядно вводить исходные данные, проводить традиционное математическое описание решения задачи и получать результаты вычислений как в аналитическом, так и в численном виде с использованием при необходимости их графического представления. Запись математических выражений производится в традиционном виде с применением общепринятых знаков, таких как квадратный корень, знак деления в виде горизонтальной черты, знак интеграла, дифференциала, суммы и т. д.

Эта система имеет хорошо продуманные встроенные текстовый, формульный и графический редакторы. Они снабжены удобным пользовательским интерфейсом, обладают разнообразными математическими возможностями и ориентированы на нужды большинства пользователей — школьников, студентов, инженеров, экономистов, менеджеров, научных работников.

В Mathcad предусмотрен импорт любых графических изображений — от простых и специальных графиков функций до многокрасочных репродукций художественных произведений. Введены средства анимации рисунков и проигрывания видео файлов со звуковым стереофоническим сопровождением.

Mathcad — настолько мощные и гибкие системы, что вполне заслуживают описания во многих книгах. За рубежом им посвящены уже сотни книг. Наименования некоторых книг на русском языке даны в конце статьи [1 — 5]. Однако до настоящего времени эта система не нашла повсеместного

применения в учебной практике вузов при выполнении различных расчётов. Это обусловлено отсутствием как опыта работы преподавателей в системе Mathcad, так и соответствующих примеров расчёта в этой системе. В качестве некоторых примеров применения системы Mathcad в учебном процессе ПГУ им. С. Торайгырова можно привести работы [6 — 9].

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

В данной статье в качестве примера научного использования программы Mathcad приводится решение дифференциальных уравнений нестационарной теплопроводности конечно-разностным методом с использованием графической интерпретации получаемых температурных зависимостей для различных моментов времени. Цель данной работы — привлечь внимание преподавателей и аспирантов к использованию системы Mathcad при выполнении научных и исследовательских работ.

Суть метода конечных разностей. Аналитическое решение задач теплопроводности получено лишь для тел простой геометрической формы. Для тел сложной формы или при сложных краевых условиях уравнение теплопроводности не всегда возможно решить аналитически.

В связи с развитием вычислительной техники большое распространение получил конечно-разностный метод решения задач нестационарной теплопроводности, или метод сеток. В основе этого метода лежит допущение о возможности замены бесконечно малых изменений температуры во времени и в пространстве малыми, но конечными её изменениями. Тем самым непрерывный процесс изменения температуры в теле при его нагревании или охлаждении заменяется скачкообразным процессом.

В качестве примера рассмотрим одномерное уравнение теплопроводности Фурье [10]

Суть метода сеток заключается в покрытии расчётной области (x, t) сеткой из M х N точек. Тем самым определяются узлы, в которых будет осуществляться поиск решения. Конфигурацию узлов, используемую для разностной записи уравнений в частных производных на сетке, называют шаблоном, а полученную систему разностных уравнений — разностной схемой. На рисунке 1 изображены шаблоны аппроксимации явной схемы (а) и неявной схемы (б) для уравнения теплопроводности.

Рисунок 1 — Шаблоны аппроксимации явной схемы (а) и неявной схемы (б) для уравнения теплопроводности

Затем дифференциальное уравнение теплопроводности для одномерного нестационарного температурного поля (1) заменяется уравнением в конечных разностях для каждого (т&п) -го узла сетки

где Аt е Ах — шаги соответственно по времени и по координате; а — температуропроводность вещества, > 2 /п.

В соответствии с шаблоном для явной схемы (см. рисунок 1, а) частная производная по времени определится выражением

а частные производные по координатам соответственно справа (плюс) и слева (минус)

Для второй производной в конечных разностях получим следующее выражение:

После подстановки соответствующих выражений в уравнение (2) получим

Приведём в разностной схеме (3) подобные слагаемые, перенеся в правую часть значения сеточной функции с индексом п (как часто говорят, с предыдущего слоя по времени), а в левую — с индексом п + 1 (т. е. со следующего временного слоя). Кроме того, введём так называемый коэффициент (число) Куранта к для шагов сетки

С учётом этих замечаний, разностная схема (3) запишется в виде

Множители для каждого из значений сеточной функции (температуры Т) в узлах шаблона, соответствующие разностному уравнению (5), приведены рядом с каждой точкой шаблона на рисунке 1.

Для получения замкнутой системы разностных алгебраических уравнений систему (5) необходимо дополнить дискретным представлением начального условия

и граничных условий

Т (0, г )=о (г), Т (А г )=/! (г).

В соответствии с соотношением (5) каждое неизвестное значение сеточной функции со следующего временного слоя, т. е. левая часть этого соотношения явно выражается через три её значения с предыдущего слоя (правая часть), которые уже известны. Из-за того, что разностная схема сводится к такой явной подстановке, её и называют явной.

В отличие от явной разностной схемы в неявной разностной схеме (см. шаблон на рисунке 1, б) для дискретизации пространственной производной берутся значения сеточной функции с верхнего (неизвестного)

слоя по времени. Таким образом, разностное уравнение для (т&п) -го узла будет отличаться от уравнения для явной схемы (3) только индексами по временной координате в правой части:

Тт,п+1 -Тт,п — а т 2Т Т )

ТГ — 2(Тт-1,п +1 — 2Тт,п +1 + Тт+1,п+1) Аг Ах2

Теперь надо выразить искомые Tm,n+1 (на следующем шаге, или слое, по времени) через Tm,n . В отличие от явной схемы Эйлера, неизвестные на новом слое связаны между собой в линейное уравнение Поэтому для нахождения массива Т для каждого нового временного слоя требуется решить систему уравнений. Выпишем её для неявной схемы в привычном виде (приводя подобные члены)

Множители при неизвестных значениях сеточной функции в узлах шаблона показаны на рисунке 1, б в виде подписей, подобно тому, как это было сделано для явной схемы (см. рисунок 1, а).

Пример расчёта в системе Mathcad. В качестве примера применения метода конечных разностей рассмотрим случай остывания неравномерно нагретого стержня, на концах (границах) которого поддерживается постоянная температура T^=const Для упрощения математических выкладок (для установления интервала изменения величин по оси ординат и абсцисс от нуля до единицы и использования стандартных программ) принимаем длину стержня Ь=1м, а в качестве искомой величины возьмём относительную избыточную температуру

где Т() — начальная температура в центральных областях стержня.

Подставляя выражение для температуры ^ &

ч ^ ^ ч- в (5) и приводя подобные члены, получим явную разностную схему в таком виде:

Явная схема Эйлера. Ниже приведено решение разностного уравнения (7) в системе Mathcad. Заметим, что всё ниже написанное, включая и комментарии, может составлять содержание программы расчёта — программа сама определяет, где текст, а где математические выражения (последние для наглядности будем выделять жирным шрифтом).

Задаём одинаковые граничные условия постоянства температуры на краях стержня (условие Дирихле) Border(t):=0.

Задаём начальное распределение температуры в виде прямоугольника (нагретая центральная часть стержня, см. рисунок 2) с помощью функции

Температуропроводность стержня а:=0.01 м 2/с.

Длина стержня м.

Число точек по оси х М:=20 .

Пространственный шаг А: = М = 0.05 м.

Дискретизация начального условия на сетке — переход от непрерывной функции ©0(х) к дискретной функции ©0т, т. е. создание массива (рисунок 3)

Шаг по времени определяем из условия, что явная разностная схема является устойчивой, если число Куранта (4) меньше единицы. Принимаем, например, К:=0.4 , тогда шаг по времени в:=0.05 с.

Рисунок 2 — Начальное распределение температуры по длине стержня Рисунок 3 — Дискретизация начального условия на сетке

Возможное программное решение разностной схемы приводится ниже в виде программного модуля, причём функция пользователя 0(п) задаёт вектор распределения искомой относительной температуры в каждый момент времени (иными словами, на каждом временном слое), задаваемом целым числом п.

Основными инструментами работы в Mathcad являются математические выражения и функции, записываемые в одну строку, что позволяет создавать лишь линейные программы, то есть осуществляющие последовательные вычисления от начала к концу программы. Для осуществления циклов, а также задания переменных и функций, записываемых в несколько строк (например, возвращение различных значений в за80

висимости от условий), используются специальные программные блоки (модули). Программный модуль в тексте документа выделяется жирной вертикальной линией. Программные элементы, входящие в программный блок, выбираются с помощью панели инструментов Программирование (Programming). В качестве основных программных элементов можно отметить следующие (имена программных операторов не следует вводить с клавиатуры):

Add Line (добавить линию), — создаёт и при необходимости расширяет жирную вертикальную линию, справа от которой в шаблонах (местоза-полнителях) задаётся запись программного блока;

^ — символ локального присваивания (значение величины задаётся и определяется только в теле модуля);

if (если) — оператор условного выражения (если условие выполняется, то выполняется выражение, стоящее перед if );

otherwise (иначе) — оператор иного выбора (обычно применяется с if); for (для) — оператор задания цикла с фиксированным числом повторений (с шагом +1 от указанного начального значения до конечного значения).

Программный модуль решения может быть записан в таком виде:

v0 ^ Border(r) vM ^ Border(r) for m ё 1..M -1

F (e( n-l)) otherwise

Начальное распределение температуры ©0m вдоль расчётной области и решение для трёх моментов времени (для трёх временных слоёв n = 1, 3 и 30) показаны на рисунке 4. Физически такое поведение вполне естественно — с течением времени тепло (хаотическое движение) из более нагретой области перетекает в менее нагретую, а зона изначально высокой температуры остывает и размывается.

Рисунок 4 — Начальное распределение относительной избыточной температуры и решение для трёх моментов времени

Как уже отмечалось, явная разностная схема Эйлера для задачи теплопроводности является устойчивой, если соотношение Куранта меньше 1. Если же оно превышает 1, то разностная схема неустойчива, и её ответ неверен. Так, если в начале расчёта принять число Куранта К:=1.6, то решение на первых шагах по времени имеет вид, приведённый на рисунке 5.

Из физических соображений очевидно, что это решение неверно. О неустойчивости схемы говорит характерная «разболтка» сеточного решения.

Н М И О Ш VI Ы 1

Рисунок 5 — «Разболтка» сеточного решения при соотношении Куранта больше 1 (К = 1,6)

Неявная схема Эйлера. В отличие от явной схемы Эйлера, неявная схема является безусловно-устойчивой (т. е. не выдающей «разболтки» ни при каких значениях числа Куранта). Однако ценой устойчивости является необходимость решения на каждом шаге по времени системы алгебраических уравнений (6), которая для относительной избыточной температуры 0 имеет вид

Неявная схема (8) приводит к системе линейных уравнений A©n+1 = b с матрицей А и вектором правых частей b = -©n . Для реализации неявной схемы, таким образом, можно использовать комбинацию средств программирования Mathcad и встроенной функции решения системы линейных уравнений lsolve(A,b). Ниже приводится один из возможных способов решения:

a:=0.01 м 2/с; L=1 м; M:=20 . А: = M = 0 05 м;

m:=1..M-1; Am m := -K -1; А^.! := 0.5 • K .

Am,m+1 := 0.5&K ; A0,0 := 1; AM,M := 1 .

lsolve(A,-©(n -1) otherwise

В первой строке вводятся начальные и граничные условия; во второй строке — температуропроводность, длина стержня, число точек по оси х, шаг по координате; в третьей строке — число Куранта и шаг по времени; в четвёртой строке — дискретизация начального условия на сетке (задание значений температуры в узлах сетки в начальный момент времени); в пятой и шестой строках — формируется матрица системы уравнений А, которая записывается в подходящем для Mathcad виде. В последней строке определяется функция пользователя, вычисляющая сеточную функцию на каждом временном слое (при помощи встроенной функции решения линейных уравнений Ьо1уе(А,Ь)). Как несложно убедиться, столбец правых частей разностных уравнений выражается вычисленными значениями сеточной функции с предыдущего слоя.

Результаты расчётов по неявной схеме для числа Куранта больше единицы (К = 1,6) показаны на рисунке 6.

ü ] и üi 0 3 iJ-ч

Рисунок 6 — Результаты расчёта по неявной схеме для соотношения Куранта больше единицы (К = 1,6)

Как видим, неявная схема устойчива и при K > 1. Сравнение результатов расчёта по явной и неявной расчётным схемам показывает, что при одинаковых числах Куранта имеется некоторое несовпадение для первых временных слоёв, достигающее 5 % при K = 0,4 и до 30 % при K = 0,8 . С уменьшением числа Куранта K несовпадение уменьшается.

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

и школьников «V Сатпаевские чтения». Павлодар: НИЦ ПГУ им. С.Торайгырова, 2005.

Павлодарский государственный университет им. С. Торайгырова, г.Павлодар. Материал поступил в редакцию 27.02.2012.

MATHCAD ЖYЙЕСШ К;ОЛДАНЫ1СПЕН ЖЫ1ЛУ 0ТК1ЗГ1ШТ1КТЩ АЙЫРЫШДЫЩ ТЕНДЕУЛЕРДЩ ШЕШ1М1

THE DECISION OF DIFFERENTIAL EQUATIONS OF HEAT CONDUCTIVITY WITH USE OF THE SYSTEM OF MATHCAD

MathCAD жуйесш цолданыспен ацырлы айырымдъщ жуыктама odiciMeH стационар емес жылу вткiзгiштiктiц дифференциалдыц тецдеулгрдщ шешiмi 6epinsdi.

The decision of the differential equations of non-stationary heat conductivity by a method of finite-difference approximation with use of the system of Mathcad is given.

Решение обыкновенного дифференциального уравнения

При решении дифференциального уравнения искомой величиной является функция. Для ОДУ неизвестная функция — функция одной переменной. Дифференциальные уравнения в частных производных — это дифференциальные уравнения, в которых неизвестной является функция двух или большего числа переменных. Mathcad имеет ряд встроенных функций, предназначенных для решения ОДУ. Каждая из этих функций предназначена для численного решения дифференциального уравнения. В результате решения получается матрица, содержащая значения функции, вычисленные на некотором множестве точек (на некоторой сетке значений). Для каждого алгоритма, который используется при решении дифференциальных уравнений, Mathcad имеет различные встроенные функции. Несмотря на различные методы поиска решения, каждая из этих функций требует, чтобы были заданы, по крайней мере, следующие величины, необходимые для поиска решения:

Набор точек, в которых нужно найти решение

Само дифференциальное уравнение, записанное в некотором специальном виде, который будет детально описан в этой главе.

В этом разделе описано, как решить ОДУ, используя функцию rkfixed, Раздел начинается с примера того, как решить простейшее дифференциальное уравнение первого порядка. Затем будет показано, как можно решать дифференциальные уравнения более высокого порядка.

Дифференциальные уравнения первого порядка

Дифференциальное уравнение первого порядка — это уравнение, которое не содержит производных выше первого порядка от неизвестной функции. На рис. 26 показан пример того, как решить относительно простое дифференциальное уравнение:

с начальными условиями: у(0) = 4

Функция rkfixed на рис. 26 использует для поиска решения метод Рунге-Кутты четвертого порядка. В результате решения получается матрица, имеющая два следующих столбца:

Первый столбец содержит точки, в которых ищется решение дифференциального уравнения. Второй столбец содержит значения найденного решения в соответствующих точках.

Решение дифференциального уравнения первого порядка

Рис. 26. Решение дифференциального уравнения первого порядка

Функция rkfixed имеет следующие аргументы: (у, xl, х2, npoints, D)

у = Вектор начальных условий размерности п, где п — порядок дифференциального уравнения или число уравнений в системе (если решается система уравнений). Для дифференциального уравнения первого порядка, как, например, для уравнения, приведенного на рис. 1, вектор начальных значений вырождается, в одну точку уо = у(х1).

x1, х2 = Граничные точки интервала, на котором ищется решение дифференциальных уравнений. Начальные условия, заданные в векторе у, — это значение решения в точке х1.

npoints число точек (не считая начальной точки), в которых ищется = приближенное решение. При помощи этого аргумента определяется число строк (1 + npoints) в матрице, возвращаемой функцией rkfixed.

D (х, у) Функция, возвращающая значение в виде вектора из п элементов, = содержащих первые производные неизвестных функций.

Наиболее трудная часть решения дифференциального уравнения состоит в определении функции D(x, у), которая содержит вектор первых производных от неизвестных функций.

В примере, приведенном на рис. 26, было достаточно просто разрешить уравнение относительно первой производной, и определить функцию D(x, у). Иногда, особенно в случае нелинейных дифференциальных уравнений, это может быть трудно. В таких случаях иногда удаётся разрешить уравнение относительно в символьном виде и подставить это решение в определение для функции D(х, у).

Используйте для этого команду Решить относительно переменной из меню Символика.

Более сложный пример, содержащий нелинейное дифференциальное уравнение

Рисунок 27. Более сложный пример, содержащий нелинейное дифференциальное уравнение

Дифференциальные уравнении второго порядка

Как только Вы научились решать дифференциальное уравнение первого порядка, можно приступать к решению дифференциальных уравнений более высокого порядка. Мы начнем с дифференциального уравнения второго порядка. Основные отличия от уравнения первого порядка состоят в следующем:

  • * Вектор начальных условий у теперь состоит из двух элементов: значений функции и её первой производной в начальной точке интервала xl,
  • * Функция D(r, у) является теперь вектором с двумя элементами:

* Матрица, полученная в результате решения, содержит теперь три столбца: первый столбец содержит значения t, в которых ищется решение; второй столбец содержит(t); и третий —y’ ). Пример, приведенный на рис. 28, показывает, как решить следующее дифференциальное уравнение второго порядка:

дифференциального уравнения второго порядка

Рис.28.Решение дифференциального уравнения второго порядка

Похожие публикации:

  1. Как работать с archicad
  2. Как редактировать mp4 в windows movie maker
  3. Как решить систему уравнений в mathcad 15
  4. Как сделать буктрейлер в windows movie maker

Решение инженерных задач в среде Mathcad

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

Общие сведения о среде Mathcad

Среда Mathcad – это программный продукт компьютерной алгебры, который может считаться системой автоматизированного проектирования и был разработан для формирования интерактивных документов, включающих вычислительные процессы с визуальным отображением. Mathcad проста в освоении и может быть использована для коллективной работы. Эту программу спроектировал и реализовал известный специалист Аллен Раздов, который является сотрудником Массачусетского технологического института. Эта программа обладает очень удобным и несложным интерфейсом пользователя. Для того чтобы ввести формулы или другую информацию, можно воспользоваться клавиатурой или специальной инструментальной панелью.

Статья: Решение инженерных задач в среде Mathcad

Поможем написать реферат за 48 часов

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

Помимо этого, Mathcad может использоваться при обучении, а также при выполнении вычислительных и инженерных расчётов. Он обладает открытой архитектурой, что позволяет обеспечить его простое внедрение фактически во все известные системы информационных технологий и специализированные проектные программные продукты. При помощи Mathcad возможно даже создавать электронные книги. Этим программным продуктом во всём мире пользуются около двух миллионов пользователей.

«Решение инженерных задач в среде Mathcad» ��
Готовые курсовые работы и рефераты
Решение задач по учебе за 24 часа
Реферат по этой теме за 48 часов

Решение инженерных задач в среде Mathcad

В составе Mathcad имеется большое количество операторов и специальных функций, которые позволяют решать самые разные инженерные задачи. Программа предоставляет возможность проведения числовых и символьных вычислительных операций, а также выполнения действий над скалярными и векторными величинами, и, помимо этого, даже в матричном формате. А ещё имеется функция перевода из одних единиц измерения в другие, реализуемая в автоматическом режиме. Основными достоинствами программного приложения Mathcad считаются следующие аспекты:

  • Наличие возможности решения дифференциальных уравнений, включая и численные методы.
  • Имеется возможность построения двумерных и трёхмерных графиков функций в различных системах координат.
  • Присутствует возможность применения символов греческого алфавита, причём и текстовых записях, и в уравнениях.
  • Существует возможность вычислений в символьном формате.
  • Наличие возможности выполнения разных операций над матрицами и векторами.
  • Возможность решения системы уравнений в символьном формате.
  • Присутствует возможность выполнения аппроксимации разных кривых.
  • Можно использовать подпрограммы.
  • Имеется возможность вычисления корней многочленов или функций.
  • Есть возможность осуществления расчётов в области статистики и теории вероятностей.
  • Присутствует возможность определения собственных чисел и векторов.
  • Можно осуществлять вычисления с единицами измерения.
  • Наличие возможности объединения программы Mathcad с системой автоматизированного проектирования и использования результатов расчётов в качестве управляемых параметров.
  • Наличие возможности использования Mathcad для документирования любой вычислительной процедуры при её выполнении.

Программу Mathcad относится к системам компьютерной алгебры, а точнее, к категории систем, которые предназначены для автоматизации математических вычислений. В этой категории программных продуктов существует много аналогичных программ разной направленности и структуры. Чаще всего Mathcad сравнивают с программами Maple, Mathematica, MATLAB, а также с их аналогами, например, MuPAD, Scilab, Maxima и так далее.

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

Имеется набор встроенных функций в Maple, обладающих аргументами, задающими методы решения задач. Аналогичные аргументы могут быть отнесены и к программе Mathematica, считающейся одной из самых мощных средств, которое имеет очень большую совокупность специальных функций, в том числе и синтез звука. Эта программа имеет достаточно большую скорость вычислений, но при этом обладает и необычным форматом языка программирования.

Разработчики Mathcad сосредоточили основное внимание на модификации системы в соответствии с потребностями пользователей. Они сформировали дополнительные библиотеки и пакетные расширения, которые могут быть приобретены по отдельности и имеют дополнительные функции, встраиваемые при инсталляции программы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *