Автоматизация труда учителя на примере решения систем алгебраических уравнений
с использованием программного пакета
MatCAD
Учитель математикиГБОУ СОШ № 000
Краткое содержание. Данная работа ориентирована на школьных учителей математики, в т. ч. проводящих факультативные занятия и математические кружки. В работе рассматривается тематика, связанная с решением систем алгебраических уравнений с применением популярного инженерного программного продукта MathCAD, затронуты вопросы автоматизации работы учителей, проверочных работ. Работа разделена на две части: первая предоставляет базовые знания работы с программой MathCAD, вторая – как они могут быть применены для решения СЛАУ и других типовых математических задач, часто встречаемых в ходе преподавания школьных дисциплин.
Введение в MathCAD
Сегодня не часто вспоминают о том, что компьютеры были созданы в первую очередь для проведения научных расчетов. До сих пор научные и инженерные расчеты остаются одной из важнейших, хотя, пожалуй, и не самой бросающейся в глаза сфер приложения компьютеров. За многие годы накоплены обширные библиотеки научных подпрограмм, в первую очередь, на языке FORTRAN, предназначенных для решения типовых задач (задачи линейной алгебры, интегрирование, решение дифференциальных уравнений и т. д.). Кроме того, имеется целый ряд различных математических пакетов, реализующих разнообразные численные методы, а так же способных производить аналитические математические преобразования. Пожалуй, наиболее известными сегодня являются следующие пакеты: Mathematica (Wolfram Research), Maple (Waterloo Maple Inc), Matlab (MathWorks), Mathcad (MathSoft Inc). Первые два фактически являются языками для проведения символических математических преобразований.
Пакета Mathematica, по-видимому, является сегодня наиболее популярным в научных кругах, особенно среди теоретиков. Пакет предоставляет широкие возможности в проведении символических (аналитических) преобразований, однако требует значительных ресурсов компьютера. Система команд пакета во многом напоминает язык программирования.
Пакет Maple также весьма популярен в научных кругах. Кроме аналитических преобразований пакет в состоянии решать задачи численно. Характерной особенностью пакета является то, что он позволяет конвертировать документы в формат LaTeX – стандартный формат подавляющего большинства научных издательств мирового класса. Кроме того, ряд других программных продуктов используют интегрированный символический процессор Maple. Например, пакет подготовки научных публикаций Scientific WorkPlace (TCI Software Research) позволяет обращаться к символическому процессору Maple, производить аналитические преобразования и встраивать полученные результаты в документ.
Подобно упомянутым выше пакетам, пакет Matlab фактически представляет из себя своеобразный язык программирования высокого уровня, ориентированный на решение научных задач. Характерной особенностью пакета является то, что он позволяет сохранять документы в формате языка программирования С.
Пакет MathCAD популярен, пожалуй, более в инженерной, чем в научной среде. Характерной особенностью пакета является использование привычных стандартных математических обозначений, то есть документ на экране выглядит точно так же обычный математический расчет. Для использования пакета не требуется изучать какую-либо систему команд, как, например, в случае пакетов Mathematica или Maple. Пакет ориентирован в первую очередь на проведение численных расчетов, но имеет встроенный символический процессор Maple, что позволяет выполнять аналитические преобразования. В последних версиях предусмотрена возможность создавать связки документов MathCAD с документами Mathlab. В отличие от упомянутых выше пакетов, MathCAD является средой визуального программирования, то есть не требует знания специфического набора команд. Простота освоения пакета, дружественный интерфейс, относительная непритязательность к возможностям компьютера явились главными причинами того, что именно этот пакет был выбран для обучения учеников, студентов и преподавателей современному средству решения математических задач.

В настоящей работе мы рассмотрим на многочисленных примерах, каким образом решаются на MathCAD разнообразные математические задачи (решение систем линейных уравнений).
Предполагается, что читатель имеет представление об основных методах и умеет пользоваться пакетом MathCAD хотя бы на самом примитивном уровне.
К задачам, решаемым в системе MathCAD, можно отнести:
- подготовку научно-технических документов, содержащих текст, и формулы, записанные в привычной для специалистов форме; вычисление результатов математических операций, в которых участвуют числовые константы, переменные и размерные физические величины; операции с векторами и матрицами; решение уравнений и систем уравнений (неравенств); статистические расчеты и анализ данных; построение двумерных и трехмерных графиков; тождественные преобразования (в том числе упрощение), аналитическое решение уравнений и систем; дифференцирование и интегрирование, аналитическое и численное; решение дифференциальных уравнений; проведение серий расчетов с различными значениями начальных условий и других параметров.
На момент написания данного пособия последней версией MathCAD является версия MathCAD 14.
Знакомство с интерфейсом программы MathCAD
Пользовательский интерфейс системы создан так, что пользователь, имеющий элементарные навыки работы с Windows-приложениями, может сразу начать работать с MathCAD. Под интерфейсом понимается не только легкое управление системой, как с клавиатуры, так и с помощью мыши, но и просто набор необходимых символов, формул, текстовых комментариев с последующим запуском документов (Worksheets) в реальном времени.
Откроем программу MathCAD с помощью иконки или с помощью стартового меню. Фрагмент основного окна программы показан на рисунке. Теперь напишем простое выражение:
5^2= |
на экране это будет выглядеть как
. Напишем теперь знак равенства – получим ответ:
. Написание знака равенства равносильно заданию вопроса: ”Чему равно?” Можете поэкспериментировать сами, для этого два раза щелкните мышью на следующей области:
|
Следует отметить, что если у вас не получается ничего отредактировать, то это значит, что компонент MathCAD не установлен в вашей операционной системе. Настоятельно рекомендуется перед просмотром данного документа установить MathCAD. Тогда программа автоматически зарегистрирует компонент MathCAD Document в вашей системе.
Разберем подробно процесс написания математического выражения. В процессе написания MathCAD выделяет с помощью красного уголка «
» последний написанный символ или то место, где должен быть написан следующий символ. По мере написания выражения область выделения перемещается. Например, написав символ «^», мы тем самым переместим область выделения в показатель степени; при этом появляется указатель (placeholder) того места, куда нужно вписать следующее число или выражение. После того, как мы закончили писать показатель степени, для того, чтобы продолжить написание выражения, мы должны выделить все написанное. Это делается с помощью клавиш-стрелок или с помощью клавиши SPACE. Эти клавиши позволяют перемещать область выделения и изменять ее размер. Отметим, что подобная “технология” написания формул позволяет сократить количество используемых скобок.
Для ввода комментариев нужно вызвать команду меню Insert -> Text Region или просто нажать клавишу - “ (кавычки). Для окончания ввода достаточно отвести курсор от вводимого текста. Комментарии могут содержать математические выражения. Для ввода формулы нужно поместить курсор в нужное место текста и выбрать команду меню: Insert –> Math Region.
Каждое написанное выражение занимает на экране прямоугольную область. Границы этой области можно увидеть, если подвести курсор к данному выражению и щелкнуть левой кнопкой мыши.
Если двигать мышь при нажатой левой кнопке мыши, MathCAD рисует пунктирный прямоугольник. Для того чтобы выделить формулу или группу формул, нужно расширить этот прямоугольник так, чтобы он охватывал нужные формулы. Выделенные формулы можно перемещать с помощью мышки. Выделенные формулы можно переносить в буфер и копировать, используя обычные команды системы MS Windows:
· Ctrl+X (Вырезать)
· Ctrl+C (Копировать)
· Ctrl+V (Вставить)
В языке программы MathCAD обозначения математических операций могут быть либо непосредственно написаны с помощью клавиатуры, либо перенесены с инструментальных панелей. При этом соблюдаются следующие правила.
· Малые и большие буквы различаются.
· Аргументы функций пишутся в круглых скобках; например, ![]()
· Круглые скобки используются также для группирования элементов формул (при этом MathCAD по мере необходимости автоматически меняет размеры скобок)
· Знак умножения (
) опускать нельзя
· Служебные слова, включенные в инструментальные панели Programming и Symbolic, нельзя писать вручную – их необходимо переносить с панелей.
· Написать любую греческую букву можно, написав сначала латинскую букву, а затем нажав на клавиши Ctrl+G.
· Чтобы записать число в двоичной системе, нужно приписать к числу букву b (без пробела). Примеры: 10.01b=2.25, 10b10b=4.
Проиллюстрируем последний пример:
|
Вернемся к фрагменту основного окна программы MathCAD, показанному ранее на рисунке. Обратим внимание на наличие панели инструментов форматирования, очень похожей на панель форматирования редактора Microsoft WORD.

С помощью инструментов этой панели можно легко менять шрифт и размер букв. Например, обращение к функции синус можно написать разным шрифтом.
Кроме панелей инструментов, приведенных на рисунке, MathCAD включает специализированные панели–окна – для вызова математических операций и одновременного вывода на экран обозначений этих операций. Полный список этих панелей можно видеть в приведенном на рисунке разделе меню View -> Toolbars. Нужную панель можно вызвать на экран, отметив ее в списке.


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

Эта панель содержит ссылки на другие специализированные панели. Если к какому-либо элементу панели подвести курсор, появляется поясняющая подсказка. Если щелкнуть мышкой на этом элементе, откроется соответствующее окно. Например, если мы щелкнем на значке «Vector and Matrix Toolbar», то откроется окно, содержащее значки вызова векторных и матричных операций «Matrix». При подведении курсора к элементам этого окна также появляются подсказки, причем эти подсказки содержат клавишные эквиваленты команд. Для вызова нужной команды достаточно щелкнуть мышкой на соответствующем значке или набрать клавишный эквивалент команды. Например, чтобы вызвать программу расчета определителя, достаточно нажать на клавишу «|».
Во многих случаях клавишные команды обеспечивают более быстрый вызов нужного математического символа. Список некоторых часто используемых команд дан в приведенной ниже таблице
Подчеркнем следующие моменты:
· многоточие в определении диапазона значений вызывается клавишей «;»,
· чтобы написать мнимое число, нужно написать действительное число и букву «I» (без пробела),
· чтобы написать знак присваивания, нужно нажать на клавишу «:» – двоеточие.
Примеры простых определений:
|
Отметим, что по умолчанию MathCAD представляет в таблице не более 15 чисел. Например, если мы введем определение:
n:=2..25 |
то в ответ на вопрос:
n= |
получим таблицу, включающую числа от 2 до 17. Для того чтобы увидеть остальные числа, нужно выделить таблицу и воспользоваться появившейся полосой прокрутки, либо увеличить размер таблицы с помощью мышки:
|
Область действия простого определения: справа в той же строчке и во всех строчках ниже – до возможного следующего переопределения. Попытка узнать, чему равно f(x) в строчке, находящейся выше определения, приведет к ошибке. Далее приведем таблицу правил написания:
Название операции и или символа | Правило написания | Вид на экране |
Операция присваивания (определения) | : | := |
Операция глобального присваивания | ~ |
|
Возведение в степень | Y^X |
|
Квадратный корень | \X |
|
Абсолютная величина скалярной величины, либо евклидова длина вектора, либо определитель матрицы | |X |
|
Пара скобок | ‘ | ( ) |
Суммирование с переносом второго слагаемого в следующую строку | A <CTRL + ENTER> B | a… +b |
Определение диапазона значений для целой величины | I:N;M | I:=N..M |
Определение диапазона изменения для произвольной величины X от a до b с шагом c-a | X:a, c;b | X:=a, c..b |
Бесконечность | CTRL+SHIFT+Z |
|
Число ¶ | CTRL+SHIFT+P |
|
Коэффициент перевода градусов в радианы ¶/180 | deg | deg |
Мнимая единица | 1i | i |
Решение типовых задач с помощью MathCAD
Теперь рассмотрим решение некоторых типовых математических задач с помощью MathCAD. Примечание. Решение завершаем щелчком левой кнопки мыши, предварительно уводя указатель мыши за пределы выделенной области набора примера.
Пример 1: Упростить выражение: ![]()
Последовательность действий:
Указатель мыши подводим к опции “Символы” в главном меню и щелкаем левой кнопкой мыши один раз (далее входим в “Символы”). В выпадающем меню указатель мыши подводим к опции “Упростить” и щелкаем на указанном пункте. На экране отображается наше выражение, но уже в выделенном виде. Повторяем наши действия: входим в “Символы” (подводим указатель мыши и щелкаем левой кнопкой мыши) и активизируем “Упростить”. На экране появляется ответ:
|
Пример 2: Упростить выражение: ![]()
Последовательность действий:
На экране набираем следующие выражения
X= 1.5 Y=-1.6 10x^2-5y^2= |
Получим ответ:
|
Пример 3: Преобразуйте в многочлен: ![]()
Последовательность действий:
На экране набираем исходное выражение:
(a+2*b)*(a-2*b)*(a^2+4*b^2) |
Входим в меню “Символы”, активизируем “Расширить”. На экране читаем ответ:
|
Пример 4: Разложите на множители: ![]()
Последовательность действий:
На экране набираем
4*z^4-25*k^2 |
Входим в меню “Символы” (Symbolics), щелкаем на пункте “Фактор”(Factor). На экране читаем ответ:
|
Пример 5: Разложите на множители:
.
Последовательность действий:
На экране набираем:
12*x^3-3*x^2*y-18*x*y^2 |
Входим в меню “Символы”, активизируем “Фактор”. На экране читаем ответ:
|
Пример 6: Сократите дробь: ![]()
Последовательность действий:
На экране набираем исходное выражение:
/x^2-2*m*x+3*x-6*m (клавиша TAB) x^2+2*m*x+3*x+6m |
Входим в меню “Символы”, активизируем “Упростить”. На экране читаем ответ:
|
Пример 7: Вычислите: 
Последовательность действий:
На экране набираем искомый пример. Ставим знак равенства и читаем ответ:
|
Пример 8: Решите уравнение: 
Последовательность действий:
Аналитическое решение.
Набираем ключевое слово given (дано). Вводим уравнение:
2*(5*x-1)^2+35*x-11 (сочетание CTRL+=) find(x) (сочетание CTRL+.) |
Здесь при вводе знака =, мы вводим знак - логическое равно из палитры, а не с клавиатуры. Набираем find(x), рядом читаем решение:
|
Пример 9: Решите уравнение: ![]()
Последовательность действий:
Численный поиск корней уравнения.
Для поиска корней искомой переменной, надо присвоить начальное значение, а затем при помощи вызова функции root(f(x),x) находим корень.
Набираем на экране:
Y=1 Root(y^3+6*y^2+16*y)= |
На экране читаем ответ:
|
Пример 10: Решите систему уравнений: 
Последовательность действий:
Набираем ключевое слово given и систему уравнений. Между левыми и правыми частями уравнений ставим знак логическое равно =. Набираем вызов функции find(x,y)à, читаем на экране ответ:
|
Пример 11: Решите неравенство: ![]()
Последовательность действий:
На экране набираем неравенство и входим в палитру “Символические операторы”, активизируем “solve”, набираем x и читаем ответ:
|
Решение систем линейных алгебраических уравнений
В практике современного учителя математики наиболее важным является как можно более полная автоматизация проверочных действий при решении трудоемких задач. К таким задачам можно отнести решение СЛАУ с применением различных методов. Иногда на разрешение одной системы тратится более 10 минут, а вероятность проявления ошибки в расчетах (допустим по методу Гаусса) остается высокой даже при высоком уровне тренировки в использовании данного метода. Чтобы упростить решение сложных систем и их проверку, можно использовать прикладной пакет MathCAD.
Выбор подходящего метода для решения уравнений зависит от характера рассматриваемой задачи. Задачи, сводящиеся к решению алгебраических и трансцендентных уравнений, можно классифицировать по числу уравнений и в зависимости от предлагаемого характера и числа решений.

Классификация уравнений
Способы решения систем линейных уравнений делятся на две группы:
1) точные методы, представляющие собой конечные алгоритмы для вычисления корней системы (решение систем с помощью обратной матрицы, правило Крамера, метод Гаусса и др.),
2) итерационные методы, позволяющие получить решение системы с заданной точностью путем сходящихся итерационных процессов (метод итерации, метод Зейделя и др.).
Вследствие неизбежных округлений результаты даже точных методов являются приближенными. При использовании итерационных методов, сверх того, добавляется погрешность метода. Эффективное применение итерационных методов существенно зависит от удачного выбора начального приближения и быстроты сходимости процесса.
Формально задача поиска решения системы уравнений

может быть записана точно так же, как и задача поиска корня одного уравнения
, где
. Вблизи точки
каждая из функций
может быть разложена в ряд Тейлора
![]()
или в векторной форме
, где J – матрица Якоби с элементами
![]()
Ограничиваясь только первыми двумя членами разложения и полагая, что
, получаем уравнение
. Таким образом, мы получаем схему для уточнения решения системы уравнений, аналогичную методу Ньютона для случая одного уравнения
![]()
Поскольку вычислять матрицу Якоби на каждом шаге достаточно трудоемко, то обычно ее элементы вычисляют приближенно или используют одни и те же значения на нескольких шагах. Одну из разновидностей метода Ньютона – метод Левенберга-Маркардта – использует Mathcad.
Решение СЛАУ с помощью блока Given и функции Find
MathCAD дает возможность решать также и системы уравнений. Максимальное число уравнений и переменных равно 50. Результатом решения системы будет численное значение искомого корня.
Системы линейных и нелинейных уравнений и неравенств позволяет решать блок given в сочетании с функцией Find. В блоке given записывается система уравнений и/или неравенств, подлежащих решению.
Система уравнений и/или неравенств должна быть записана после или правее слова given. При записи уравнений вместо знака = следует набирать Ctrl+=. Перед словом given необходимо указывать начальные приближения для всех переменных. Блок given не пригоден для поиска индексированных переменных. Если мы хотим найти комплексный корень, следует задавать комплексное начальное приближение. Признаком окончания системы служит функция Find, если мы хотим найти точное решение системы, либо функция Minerr, если система не может быть решена точно, и мы хотим найти наилучшее приближение, обеспечивающее минимальную погрешность.
Функции Minerr и Find должны иметь столько же или меньше аргументов, сколько уравнений и неравенств содержит блок given. Если окажется, что блок содержит слишком мало уравнений или неравенств, то его можно дополнить тождествами или повторяющимися выражениями. В том случае, если решение не может быть найдено при заданном выборе начального приближения, появится сообщение в красной рамке Did not find solution – решение не найдено. Зададим начальные приближения и решим систему уравнений.
Пример 12: 
Воспользуемся MathCAD и запишем систему в терминах блока «given - find»:
|
Решение СЛАУ матричным способом
Матричным уравнением называется уравнение, коэффициенты и неизвестные которого – прямоугольные матрицы соответствующей размерности.
Рассмотрим систему n линейных алгебраических уравнений относительно n неизвестных х1, х2, …, хn:

В соответствии с правилом умножения матриц рассмотренная систе-ма линейных уравнений может быть записана в матричном виде
Ах = b

Матрица А, столбцами которой являются коэффициенты при соответствующих неизвестных, а строками – коэффициенты при неизвестных в соответствующем уравнении, называется матрицей системы; матрица-столбец b, элементами которой являются правые части уравнений системы, называется матрицей правой части или просто правой частью системы. Матрица-столбец х, элементы которой - искомые неизвестные, называется решением системы.
Если матрица А - неособенная, то есть det A ¹ 0 то система (13), или эквивалентное ей матричное уравнение (14), имеет единственное решение.
В самом деле, при условии det A ¹ 0 существует обратная матрица А-1. Умножая обе части уравнения (14) на матрицу А-1 получим:
![]()
Матричные уравнения можно разрешать только, если система не вырождена, то есть ее определитель отличен от нуля. Матричный способ более изящен (хотя и не самый эффективный с точки зрения вычислительной математики).
Пример 13. Решение СЛАУ матричным способом
Последовательность действий:
1. Установите режим автоматических вычислений.
2. Введите матрицу системы и матрицу-столбец правых частей.
3. Вычислите решение системы по формуле x=A-1b.
4. Проверьте правильность решения умножением матрицы системы на вектор-столбец решения.
5. Найдите решение системы с помощью функции lsolve и сравните результаты.
Напишем код решения СЛАУ матричным способ на MathCAD. Также Решим систему с помощью функции lsolve и сравним результат с решением x=A-1b. С функцией lsolve мы сталкиваемся впервые, опишем ее:
Lsolve(A, b) – возвращает вектор решения такой, что Ax=b.
Аргументы:
А - квадратная, не сингулярная матрица.
b - вектор, имеющий столько же рядов, сколько рядов в матрице А.
|
Решение СЛАУ методом Гаусса
Метод Гаусса, его еще называют методом Гауссовых исключений, состоит в том, что систему приводят последовательным исключением неизвестных к эквивалентной системе с треугольной матрицей:

Решение которой находят по рекуррентным формулам:
![]()
В матричной записи это означает, что сначала (прямой ход метода Гаусса) элементарными операциями[1] над строками приводят расширенную матрицу системы к ступенчатому виду:

а затем (обратный ход метода Гаусса) эту ступенчатую матрицу преобразуют так, чтобы в первых n столбцах получилась единичная матрица:
.
Последний, (n + 1) столбец этой матрицы содержит решение системы.
В MathCAD прямой и обратный ходы метода Гаусса выполняет функция rref(A).
Далее показано решение системы линейных уравнений методом Гаусса, в котором используются следующие функции:
Пример 14. Решение СЛАУ методом Гаусса
Последовательность действий:
Функция augment(A, b) формирует расширенную матрицу системы добавлением к матрице системы справа столбца правых частей. Функция rref приводит расширенную матрицу системы к ступенчатому виду, выполняя прямой и обратный ходы гауссова исключения. Последний столбец содержит решение системы.
|
Очень часто метод Гаусса рассматривается вместе с методом Крамера, рассмотрим последний.
Пример 15. Решение СЛАУ методом Крамера.
Последовательность действий:
1. Вычисляем D определитель матрицы А.
2. Зададим матрицу DX1, заменой первого столбца матрицы А, матрицей b. Вычисляем определитель матрицы DX1.
3. Зададим матрицу DX2, заменой второго столбца матрицы А, матрицей b. Вычисляем определитель матрицы DX2.
4. Зададим матрицу DX3, заменой третьего столбца матрицы А, матрицей b. Вычисляем определитель матрицы DX3.
5. Определяем решение системы линейных уравнений x1, x2, x3.
|
Заключение
Данная работа призвана помочь школьным учителям математики автоматизировать процесс проверки решений сложных систем алгебраических уравнений. Примеры, показанные в данной работе, могут быть использованы учителями на факультативных занятиях для демонстрации ученикам современных программных средств решения математических заданий.
Пакет MathCAD чрезвычайно интуитивен, т. к. все формулы в его документах записываются в традиционной форме, и как таковой язык программирования не применяется, а богатый пакет встроенных функций позволяет решать многочисленные задачи: разрешать уравнения и системы, раскладывать многочлены и решать неравенства, строить графики и т. д.
Данная работа позволит ученикам и учителям быстро освоить основные навыки работы с пакетом MathCAD, а последовательные примеры и методы решения помогут их закрепить для решения новых задач.
[1] Элементарными операциями над строками матрицы называются: перестановка строк, умножение или умножение строки на число (кроме 0), сложение одной строки матрицы с другой строкой. Доказано, что после элементарных операций над строками расширенной матрицы системы получается расширенная матрица эквивалентной системы.











