
- •ПРЕДИСЛОВИЕ
- •ВВЕДЕНИЕ
- •ЧАСТЬ 1. ПЕРВОЕ ЗНАКОМСТВО С MATHCAD
- •Введение. Общие правила работы в среде Mathcad
- •§1. Ваши первые примеры
- •1.1. Ввод данных, формул, вывод решения
- •1.3. Построение графика функции одной переменной
- •1.4. Построение графика функции двух переменных
- •1.5. Освоение функции CreateMesh для форматирования графика
- •§2. Решение уравнений
- •2.2. Нахождение корня уравнения. Операторная скобка Given – Find
- •§3. Учебная задача
- •3.1. Постановка задачи
- •§4. Индивидуальные задания по части 1
- •ЧАСТЬ 2. МАТРИЦЫ И ВЕКТОРЫ В MATHCAD
- •Введение. Общие сведения о матричной алгебре в Mathcad
- •§5. Осваиваем технику работы с матрицами и векторами
- •5.1. Ввод матрицы и вектора
- •5.3. Обращение к столбцу матрицы
- •5.6. Запись массивов данных на диск
- •5.7 Соединение (композиция) матриц и векторов
- •§6. Алгебра матриц
- •6.1. Транспонирование матриц
- •6.2. Умножение матрицы на скаляр
- •6.3. Операции умножения матриц
- •6.4. Сложение матриц
- •6.5. Операции с квадратными матрицами
- •6.6. Решение примеров с действиями алгебры матриц
- •6.7. Специальные приемы работы с матрицами
- •6.8. Ранг матрицы
- •§7. Некоторые применения матриц и векторов
- •7.1. Нахождение всех корней уравнения n-й степени
- •7.2. Применение матриц и векторов для решения систем линейных уравнений
- •7.3. Применение матриц и векторов в задаче интерполяции
- •§8. Учебная задача
- •8.1. Постановка задачи
- •8.2. Решение
- •§9. Индивидуальные задания по части 2
- •ЧАСТЬ 3. ПРОГРАММИРОВАНИЕ В MATHCAD
- •Введение. О программировании в среде Mathcad
- •§10. Осваиваем технику программирования в Mathcad. Ваша первая программа
- •10.2. Выполнение этапа 2 «Разбор способа получения результата. Расчет примеров»
- •10.4. Выполнение этапа 4 «Расчет контрольных примеров применительно к алгоритму»
- •10.5. Выполнение этапа 5 «Составление программы, отладка на контрольных примерах»
- •§11. Задания для самостоятельной разработки программы
- •§12. Учебная задача
- •12.1. Введение
- •12.2. Общие положения
- •12.3. Выполнение фазы 1 решения задачи «Понять существо задачи»
- •12.4. Выполнение фазы 2 решения задачи «Предложить идею алгоритма»
- •12.6. Выполнение фазы 4 «Оценить точность программы, а также ее потенциал в качестве средства для решения других задач»
- •§13. Индивидуальные задания по части 3
- •ЧАСТЬ 4. СИМВОЛЬНЫЕ ПРЕОБРАЗОВАНИЯ В MATHCAD
- •Введение. Сведения о символьных преобразованиях в Mathcad
- •14.1. Опция Evaluate – Symbolically
- •14.3. Опция Symbolics – Expand
- •14.4. Опция Symbolics – Variable
- •§15. Учебная задача
- •15.1. Постановка задачи
- •15.2. Этапы решения
- •15.6. Выполнение этапа 4 «Решение» (на компьютере)
- •§16. Создание анимационных клипов
- •16.1. Общие сведения
- •16.2. Фазы создания анимационного клипа
- •Список использованной литературы
- •2. Арифметические, алгебраические и логические операторы
- •6. Часто употребляющиеся функции
- •8. Графики
- •Общие замечания
- •1. Плоскости
- •2. Прямая линия в пространстве
- •3. Цилиндр
- •4. Конус

Изучение квадратичных форм закончено.
F1 |
F2 |
F3 |
а) Положительно опреде- |
б) Отрицательно опре- |
в) Неопределенная квадратич- |
ленная квадратичная форма |
деленная квадратичная |
ная форма – график в форме |
– график «дном вниз» |
форма – график «дном |
… (догадайтесь сами, как на- |
|
вверх» |
зывается фигура) |
Рис. 2.35. Графические образы различных квадратичных форм.
6.8. Ранг матрицы
Как известно, рангом прямоугольной матрицы называется наибольший порядок неравного нулю определителя (из всех возможных вырезок определителей из данной матрицы. Для вычисления ранга используется функция rank (идентификатор_матрицы)
Рассмотрите пример вычисления ранга матриц:
|
0 |
0 |
0 |
1 |
0 |
|
0 |
4 |
0 |
1 |
0 |
|
|
R1 := |
|
|
|
|
|
|
|||||
R := |
0 |
0 |
1 |
0 |
0 , |
0 |
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
0 |
2 |
0 |
3 |
0 |
. |
§7. Некоторые применения матриц и векторов 
7.1. Нахождение всех корней уравнения n-й степени
Согласно Основной теореме алгебры (Нильс Хенрик Абель) уравнение n-й степени имеет n корней. Среди них могут быть действительные и комплексные. Каждый комплексный корень обязательно имеет свою пару – сопряженный корень, у которого такая же вещественная часть, а мнимая имеет противоположный знак. Для нахождения всех корней используется встроенная Mathcad-функция polyroots( ) (переводится «много корней»). Научимся пользоваться этой очень полезной функцией.
ДАНО: уравнение n-й степени:
a0 y n + a1 y n−1 + a2 yn−2 +... + an−1 y + an = 0 , (n+1) его коэффициентов ai, i = 0, …, n–1 заданы.
ПОЛУЧИТЬ: все корни yi, i = 1, …, n, удовлетворяющие заданному уравнению.
54

Способ решения: Сформируем (n+1)-мерный вектор, элементами которого являются коэффициенты уравнения. Важное замечание: если в уравнении отсутствуют некоторые промежуточные степени переменной, в соответствующий слот вектора следует вставить 0. Порядок ввода коэффициентов – с «конца» уравнения к началу, так что нулевому элементу вектора нужно присвоить значение an, а n-му – значение a0. Идентификатор этого вектора и будет аргументом функции polyroots( ).
Пример показан на рис. 2.36. Выполните его по шагам и обязательно сделайте про-
верку. Вы увидите небольшие вычислительные неточности (это и не удивительно: выразить корни через коэффициенты уравнения можно точно только в том случае, когда его порядок
– не выше четвертого: этот результат получил юный гений Эварист Галуа в 21 год, за сутки до дуэли, на которой он был убит).
Уравнение, корни которого нужно найти:
7 y7 + 3 y4 − 5y + 17 0
Шаг 1. Формируем 8-ми |
|
|
|
|
|
|
|
|
|
|
|
Жирный знак равенства |
|
|||||||
мерный вектор D |
|
|
|
|
|
17 |
|
|
|
|
|
исключает вычисления |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||
Элементы вектора, соот- |
|
|
|
|
|
|
−5 |
|
|
|
|
<Ctrl>+<=> |
|
|
||||||
ветствующие несущест- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
вующим в уравнении сте- |
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
||||||
пеням переменной y, счита- |
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|||||
ем равными нулю |
|
|
|
|
D := |
3 |
|
|
|
|
|
|
|
|
|
|
||||
Шаг 2. Используем функ- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
0 |
|
|
|
|
−1.231 |
|
|
|
|
|
||||||
цию polyroots(…), которая |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
возвращает вектор корней |
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|||||||
уравнения: |
|
|
|
|
|
|
|
|
|
−0.688 − 0.895i |
|
|
|
|
|
|||||
z := polyroots(D) |
|
|
|
|
|
7 |
|
−0.688 + 0.895i |
|
|
|
|
||||||||
Шаг 3. Выводим значения корней на экран: |
|
z = |
|
|
0.348 + 1.11i |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|||||||||||||
Шаг 4. Делаем проверку. Для этого: |
|
|
|
|
|
|
|
|
0.348 − 1.11i |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
0.955 + 0.48i |
|
|
|
|
|
|||||||
а) Вводим счетчик индексов корней j := 0 .. 6 |
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.955 − 0.48i |
|
|
|
|
|
|
б) Рассчитываем, чему |
|
равна |
левая |
часть |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
− 6 |
|
|
||||||||
уравнения при подстановке |
каждого |
j-го |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
4.742× 10 |
|
|
||||||||||||
корня (должна быть равна правой части, т.е. |
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
− 9 |
|
|
− 8 |
|
||||||||||
нулю) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
7 |
|
|
4 |
|
|
|
|
|
|
|
|
|
9.646× 10 |
|
+ 8.726i× 10 |
|
||||
verifyj := 7 (zj) |
+ 3 (zj) |
− 5zj + 17 |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
1.899× 10− 8 + 2.191i× 10− 8 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
−1.736× 10− |
8 + 5.121i× 10− 9 |
|
|||
в) Выводим на экран вектор значений левой |
verify = |
|
||||||||||||||||||
части уравнения, в которое подставлены най- |
|
|
|
|
|
|
6.856× 10− 6 − 1.1i× 10− 6 |
|
||||||||||||
денные корни: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
− 6 |
|
|
− 7 |
|
|
|
Имеют место незначительные |
|
|
4.549× 10 |
|
− 1.159i× 10 |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||
|
вычислительные погрешности |
|
− 8 |
|
− 8 |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
−4.996× 10 |
|
|
+ 6.16i |
× 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 2.36. Использование функции polyroots(…) для нахождения корней уравнения.
55
7.2. Применение матриц и векторов для решения систем линейных уравнений
7.2.1. Теоретические сведения. Традиционно решение систем линейных уравнений рассматривается в терминах матричной алгебры. Пусть задана система из n линейных уравнений. Коэффициенты этих уравнений – не обязательно постоянные, они могут зависеть от какоголибо внешнего параметра (на практике чаще всего – от времени), но не должны зависеть от искомых переменных (в этом случае уравнения были бы нелинейными).
Система уравнений, записанная в обычной форме, имеет вид: a11(t) x1+a12 (t) x2+L+ a1n (t) xn = b1(t)
a21(t) x1+a22 (t) x2 +L+ a2n (t) xn = b2 (t)
LLLLLLLLLLLLLLL
an1(t) x1+an2 (t) x2 +L+ ann (t) xn = bn (t)
Здесь t – некоторый параметр, от которого зависят коэффициенты уравнения.
Сформируем квадратную n×n матрицу из коэффициентов левой части и n-мерный вектор из значений bi(t), i = 1, … , n, входящих в правую часть. Эти матрицы будут иметь вид:
|
a11(t) |
a12 (t) L a1n (t) |
|
b1(t) |
A(t) = |
a21(t) a22 (t) L a2n (t) |
, B(t) = |
b2 (t) |
|
|
L |
L L L |
|
L |
|
an1(t) an2 (t) L ann (t) |
|
bn (t) |
Согласно правилам матричной алгебры решение системы линейных уравнений для случая, когда правая часть – не нулевой вектор, возможно тогда и только тогда, когда определитель матрицы не равен 0 ни для одного значения параметра t из диапазона, на котором он задан. В этом случае решение будет n-мерным вектором, зависящим от параметра t:
x(t) =[A(t)]−1 B(t). Как видим, для получения решения используются следующие матричные операции:
Обращение квадратной матрицы;
Умножение матрицы на вектор;
Диагностика отличия определителя матрицы от 0 (для установления существования решения).
7.2.2.Пример. Найдем значения двумерного вектора x(t) при изменении параметра t в диапазоне 0,…,5 с шагом 0.01. Пусть каждый элемент матрицы A(t) – экспонента с заданным показателем степени, а каж-
56
дый элемент вектора B(t) – синусоидальная функция. Решение показано на рис. 2.37, 2.38. Воспроизведите его. Попутно Вы научитесь делать массовые операции над всеми элементами матриц (рис. 2.37).
7.2.2.1. Векторизация. Термин «векторизация» означает применение
одной и той же функции тотально ко всем элементам матрицы. Этот прием часто экономит время и при вводе, и при вычислениях за счет параллельных действий над всеми элементами матрицы сразу. Освоим технику векторизации на примере, показанном на рис. 2.37, 2.38 Для того чтобы над всеми элементами матрицы выполнялась одна и та же операция, нужно:
1.Ввести матрицу с постоянными элементами, которые будут использоваться как коэффициенты в формулах для операций с матрицей;
2.Ввести идентификатор матрицы с указанием ее зависимости от параметра (можно – тот же, что и для матрицы коэффициентов), присвоить ему значение функции, которую мы хотим применить ко всем элементам матрицы.
3.Результат охватить синим контуром и нажать клавиши <Ctrl>+<(минус)>. Над функцией появится горизонтальная стрелка – символ векторизации.
Изучение операции векторизации закончено.
Шаг 1. Задаем матрицу и вектор коэффициентов. |
A := |
1 |
1.5 |
|
|
B := |
5 |
|||
2 4 |
|
|
7 |
|||||||
|
|
|
|
|
|
|
|
|||
Шаг 2. Проводим векторизацию матрицы А. Каждый |
→ |
|
|
|
||||||
|
|
Для осуществления |
||||||||
элемент ее превратится в экспоненту. Показателем |
A(t) := (eA t) |
|
|
векторизации нажмите |
||||||
будет соответствующий элемент матрицы А |
|
|
|
|
|
|
<Ctrl>+<(минус)> |
|||
Шаг 3. Для контроля проведем вычисление экспонент |
|
|
1 t |
e |
1.5 t |
|
||||
непосредственно (должен быть получен тот же |
A1(t) := |
e |
|
|
|
|
||||
2 t |
|
|
4 t |
|
||||||
|
|
|
|
|
|
|
|
|||
результат, что и при векторизации): |
|
|
|
|
e |
|
e |
|
|
|
Шаг 4. Проводим векторизацию вектора В. Каждый |
|
→ |
|
|
|
|
||||
его элемент должен превратиться в синус с |
|
|
|
|
|
|
||||
|
B(t) := sin(B t) |
|
|
|
|
|||||
сомножителем-элементом вектора В: |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
||
Шаг 5. Для контроля вводим функцию синуса |
B1(t) := |
sin(5 t) |
|
|||||||
непосредственно: |
|
|
sin(7 t) |
|
||||||
Шаг 6. Проверяем, действительно |
A(t) = |
1.649 |
2.117 |
A1(t) = |
1.649 |
2.117 |
||||
ли выполнилась векторизация, |
2.718 |
7.389 |
2.718 |
7.389 |
||||||
например, при t := 0.5 |
|
|
|
|
||||||
|
0.598 |
|
|
|
|
0.598 |
||||
|
B(t) = |
B1(t) = |
||||||||
|
−0.351 |
|
−0.351 |
|||||||
|
|
|
|
|
Рис. 2.37. Векторизация матриц и векторов.
57