Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MathCad = с моего сайта - 19 страниц

.pdf
Скачиваний:
30
Добавлен:
16.03.2015
Размер:
539.46 Кб
Скачать

Информационные технологии управления - 16

26.05.09

Сначала записываем уравнение в виде F(x) := левая часть уравнения. Затем задаем начальное приближение корня x := 0 (если уравнение имеет один корень, то начальное приближение может быть любым). Далее вычисляем корень уравнения, используя функцию root и, наконец, выводим значение корня, набрав Y =.

Для ввода степени вводим символ ^ и не забываем ставить знак умножения (символ *) между 12 и x.

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

Решение квадратного уравнения

Пример. Решить уравнение 10x2 - 3x - 17 = 0 .

Вводим уравнение:

Устанавливаем курсор на переменную x:

Верхнее меню Symbolics (Символика) à Variable (Переменная)

à Solve (Решить). После выполнения этой команды появятся формулы для нахождения корней:

Чтобы получить решение просто введите знак равенства =:

Графическое решение уравнения

Пример. Решить уравнение 10x2 - 3x - 17 = 0 графически. Сначала определяем функцию F(x) и строим ее график:

11

Информационные технологии управления - 16

26.05.09

Решением уравнения являются точки пересечения графика функции с осью OX, поэтому чтобы получить более точный результат изменим границы интервала изменения аргумента x:

Теперь щелкнем правой кнопкой мыши в любом месте графика и выберем из контекстного меню команду Trace… (Трассировка…):

Галочка в пункте Track Data Points (Трасс. Точек данных)

должна быть установлена. В этом случае будут выбираться только точки с текущего графика.

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

12

Информационные технологии управления - 16

26.05.09

В окне трассировки должно быть при этом наиболее близкое к нулю значение Y-Value:

Значение X-Value и будет первым корнем уравнения. Это значение можно скопировать в буфер обмена нажав кнопку Copy X и затем вставить, например, в текстовую область на рабочем листе Insert (Вставка) à Text Region (Текстовая область):

Аналогично можно решить уравнение вида f1(x) = f2(x). Для этого надо

построить графики обеих функций в одной области построения и найти координаты точки (точек) пересечения:

Пример:

13

Информационные технологии управления - 16

26.05.09

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

Векторные и матричные операторы и функции MathCad позволяют решать широкий круг задач линейной алгебры. Если задана матрица коэффициентов A и вектор свободных членов B, то в матричной форме система линейных уравнений выглядит так:

A ž X = B

Тогда вектор корней системы можно вычислить как:

X = A-1 ž B

Пример. Решить систему линейных уравнений:

ì

4x1 + 0,24x2 - 0,08x3 = 8

ï

0,09x1 + 3x2 - 0,15x3 = 9

í

ï

0,04x - 0,08x

2

- 4x

3

= 20

î

1

 

 

Решение:

Также решение системы можно получить, используя функцию lsolve;

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

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

Пример. Решить систему нелинейных уравнений:

14

Информационные технологии управления - 16

2

 

 

y

 

26.05.09

ì

 

+

 

= 3

ï

 

 

 

 

 

 

x

3

í x

+

 

3

 

=

3

ï

 

 

 

 

 

 

 

 

2

 

 

y

2

î

 

 

 

 

 

Решение:

Примечание. Для записи уравнений используйте “жирный” знак равенства между левой и правой частью. Для его ввода надо одновременно

нажать клавишу Ctrl и = или же воспользоваться панелью Boolean

(Двоичный).

Программирование в среде MathCad

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

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

Программный блок представляет собой группу операторов присваивания и управляющих операторов. Необходимо обратить особое внимание, что все ключевые слова (например, if) в этих операторах обязательно вводятся с помощью панели Programming (Программирование). Их ввод с клавиатуры - ошибка!

В целом правила работы с операторами те же, что и в языке Pascal, отличия касаются только способа записи операторов.

Программный блок обозначается вертикальной чертой, справа от которой последовательно записываются операторы языка программирования. Чтобы начать создание программного модуля, следует нажать на панели Programming (Программирование) кнопку Add Line (Добавить строку программы). Затем, если приблизительно известно, сколько строк кода будет содержать программа, можно создать нужное количество линий повторными нажатиями кнопки Add Line (Добавить строку программы):

15

Информационные технологии управления - 16

26.05.09

Ниже приведены примеры программных блоков некоторых распространенных алгоритмов вычислений.

Вычисление выражения с условием

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

16

Информационные технологии управления - 16

26.05.09

Вычисление суммы бесконечного ряда с заданной точностью с использованием цикла While

Функции линейной и сплайновой аппроксимации

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

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

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

Одномерная линейная аппроксимация

При линейной (кусочно-линейной) интерполяции узловые точки данных соединяются отрезками прямых линий, образуя ломаную линию.

Интерполируемое значение для конкретного значения х есть ордината у соответствующей точки ломаной.

Для этого в MathCad используется функция linterp(X, Y, x),

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

17

Информационные технологии управления - 16

26.05.09

Пример:

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

Одномерная сплайн-аппроксимация

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

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

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

18

Информационные технологии управления - 16

26.05.09

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

cspline(VX, VY) - возвращает вектор VS вторых производных при приближении в опорных точках к кубическому полиному;

pspline(VX, VY) - возвращает вектор VS вторых производных при приближении к опорным точкам параболической кривой;

lspline(VX, VY) - возвращает вектор VS вторых производных при

приближении к опорным точкам прямой. Наконец, четвертая функция:

interp(VS, VX, VY, x)- возвращает значение у(х) для заданных векторов VS, VX, VY и заданного значения x.

Пример (продолжение предыдущего примера):

19

Соседние файлы в предмете MathCad/MatLab/Maple