Функция mod в маткаде

Функция mod в маткаде

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

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, вектор-столбец решений системы можно искать в виде

Этот прием используется в Mathcad так:

  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 Зависимость).

Читайте также:  Принтер hp laserjet 2605 драйвер

Снизу по оси абсцисс наберем 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 в нужном порядке их выполнения, т.е. «слева-направо – сверху-вниз».

Пример 1. Составить программу для вычисления корней квадратного уравнения: ax 2 + bx + c = 0 по известной формуле:

(1)

Алгоритм (1) является линейным и фрагмент документа MathCAD содержит конструкции, приведенные на рис 1.

П рограммирование разветвляющихся алгоритмов

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

Пример 2. Значение переменной y зависит от значений переменной x и определяется выражением:

Для реализации разветвляющегося алгоритма необходимо использовать:

· конструкции, проверяющие выполнение заданных условий;

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

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

Выражением отношений (или просто отношением) называется конструкция вида:

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

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

Палитра инструментов БУЛЕВО

Внимание! Не следует путать знак операции сравнения = с похожим знаком вывода значений переменных. Знак операции = имеет больший размер и более жирное начертание.

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

Для визуализации панели програм-

мирования необходимо нажать на кнопку из панели математических инструментов или по-

дать команду View Toolbars Programming . На данной панели имеется десять команд. Щелчок по одной из этих команд создает в текущей

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

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

Приведем значение «горячих клавиш», использующих при программировании на Mathcadе.

Предполагается, что читатель уже знаком с основными идеями программирования, изучив один из стандартных языков про-

Читайте также:  Неизвестный тип объекта метаданных

граммирования: QBasic, Visual Basic, Fortran, Pascal, C++, Java, Ruby или любой другой язык программирования. Данный практикум адресован пользователям, решающим инженерные и научные задачи, для которых программирование не является основным видом деятельности. Для таких пользователей языки программирования C++ и Java противопоказаны, так как ориентированы на профессиональных специалистов. Инженерам, использующим программирование не ежедневно, для решения большинства задач достаточно и одиннадцати команд из панели программирования Mathcad.

Сразу же отметим недостатки программирования в среде Mathcad. Одним из главных недостатков является неразвитость отладчика программ. Ошибки, возникающие при выполнении программ, отображаются, но подробной информации о типе ошибки, значении локальных и глобальных переменных в момент останова программы оперативно получить нельзя. Отлаживать программы уже средней сложности в Mathcad не доставляет особой радости. Поэтому сложные инженерные, научные и экономические задачи удобнее и быстрее, с точки зрения автора, выполнять в рамках визуального алгоритмического языка Visual Basic [3] или последних версий языка Fortran.

Рассмотрим все команды из панели программирования Math-

1. Add Line – добавить строку в текущую позицию программы. При вводе данной команды появляется или расширяется на одну строку вертикальная линия, объединяющая отдельные операторы в блок с одним входом и одним выходом, который выполняется как один оператор.

Позиция, куда вставится строка, определяется положением курсора. Чтоб вставить новую строку в середину программы, нужно выделить (пробелами) строку перед позицией, куда будет вставлена пустая строка. Удалить лишнюю строку можно с помощью кнопки backspace на клавиатуре.

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

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

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

В Mathcad имеются два оператора присваивания: для глобальных переменных (обозначается двумя символами «:=») и для локальных переменных « ← ». Глобальные переменные доступны в любом месте программы после объявления данной переменной, а локальные – только в текущем блоке.

Для пояснения действия локального и глобального оператора присваивания рассмотрим пример простейшей программы на

Напишем программу для решения квадратного уравнения ax 2 +bx+c=0 . В программе при помощи операторов глобального присваивания задаются значения глобальных переменных a, b и c . Для сравнения введем еще локальную переменную k и присвоим ей значение 4. Далее вычисляем значение корней квадратного уравнения при помощи программы, состоящей из одного блока операторов. В программе применяются три оператора локального присваивания и возвращается значения вектора x , состоящего из двух чисел. После выполнения программы выводим значение всех переменных, используемых в программе. При этом значение всех локальных переменных D, x и k , заданных вне блока, программа не видит, поэтому вместо знака = выводится оператор глобального присваивания « :=» . В этом случае значение переменной не выводится, а вместо него отображается красный прямоугольный маркер.

a : = 1 b : = − 4 c : = 3 k ← 4 ORIGIN : = 1

Ссылка на основную публикацию
Файл с расширением dav чем открыть
Файл формата DAV открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ. Чем открыть файл в формате...
У вас сломался холодильник
Поломка холодильника всегда застает в врасплох. И определить причину моментально практически невозможно. Нужно как можно быстрее «спасти» продукты. Обычно надолго...
У каких марок телефонов хорошая камера
Производители будто бы соревнуются - кто сколько датчиков встроит в девайс. Есть уже с четырьмя и даже пятью камерами! Как...
Файл подкачки windows 7 на флешку
В прошлой статье рассказано, как определиться с оптимальным размером файла подкачки, что делать с SSD-дисками и как установить размер файла...
Adblock detector