
1.3 Пакет MathCad. Аппроксимация. Функции аппроксимации. Решение дифференциальных уравнений
Для автоматизации математических расчетов используются разнообразные вычислительные средства - от программируемых микрокалькуляторов до сверхмощных суперЭВМ. И тем не менее такие расчеты остаются сложным делом. Более того, применение компьютеров внесло новые трудности: прежде чем начать расчеты, пользователь должен освоить основы программирования, изучить один или несколько языков программирования и численные методы расчетов.[8]
Положение стало меняться после специализированных программных комплексов для автоматизации математических и инженерно-технических расчетов. К таким комплексам относятся пакеты программ MathCAD, Mat LAB, Eureka. MathCAD - один из наиболее мощных и универсальных из них.
MathCAD является интегрированной системой программирования, ориентированной на проведение математических и инженерно-технических расчетов.
Система MathCAD содержит текстовый редактор, вычислитель и графический процессор.
Текстовый редактор - служит для ввода и редактирования текстов. Тексты являются комментариями, и входящие в них математические выражения не выполняются. Текст может состоять из слов, математических выражений и формул, спецзнаков. Отличительная черта системы - использование общепринятой в математике символики (деление, умножение, квадратный корень).
Вычислитель - обеспечивает вычисление по сложным математическим формулам, имеет большой набор встроенных математических функций, позволяет вычислять ряды, суммы, произведения, определенный интеграл, производные, работать с комплексными числами, решать линейные и нелинейные уравнения, проводить минимизацию функции, выполнять векторные и матричные операции и т.д. Легко можно менять разрядность чисел и погрешность интеграционных методов.
Графический процессор - служит для создания графиков. Он сочетает простоту общения с пользователем с большими возможностями графических средств. Графика ориентирована на решение типичных математических задач. Возможно быстрое изменение размеров графиков, наложение их на текстовые надписи и перемещение их в любое место документа.
MathCAD ориентирован на IBM-совместимые ПК, работает с PC-DOS и MS-DOS с версиями 2.0 и выше. Поддерживаются основные типы адаптеров и дисплеев. Минимальная память - 512 Кб. MathCAD автоматически поддерживает работу с математическим процессором. Последний заметно повышает скорость расчетов и вывода графиков, что существенно в связи с тем, что MathCAD всегда работает в графическом режиме. Это связано с тем, что только в этом режиме можно формировать на экране специальные математи ческие символы и одновременно применять их вместе с графиками и текстом. MathCAD поддерживает работу со многими типами принтеров, а так же с плоттерами.[3]
MathCAD - система универсальная, т.е. она может использоваться в любой области науки и техники, везде, где применяются математические методы. Запись команд в системе MathCAD на языке, очень близком к стандартному языку математических расчетов, упрощает постановку и решение задач.
Сегодня различные версии MathCAD являются математическими ориентированными универсальными системами. Помимо собственно вычислений, как численных, так и аналитических, они позволяют с блеском решать сложные оформительские задачи, которые с трудом даются популярным текстовым редакторам или электронным таблицам.
Для представления физических закономерностей и при проведении научно-технических расчетов часто используются зависимости вида у(x), причем число точек этих зависимостей ограничено. Неизбежно возникает задача приближенного вычисления значений функций в промежутках между узловыми точками (интерполяция) и за их пределами (экстраполяция). Эта задача решается аппроксимацией исходной зависимости. Аппроксимация заключается в том, что, используя имеющуюся информацию по у(x), можно рассмотреть другую функцию φ(x) (аппроксимирующую), близкую в некотором смысле к у(x). Что позволит выполнить над ней соответствующие операции и получить оценку погрешности такой замены. Система MathCAD предоставляет возможность аппроксимации несколькими типами функций.
При кусочно-линейной интерполяции вычисления дополнительных точек выполняются по линейной зависимости, то есть узловые точки соединяются прямой. Линейная интерполяция осуществляется с помощью встроенной функции linterp(VX, VY, x), где VX, VY – вектора узловых точек; x – рассчитываемая точка.
При линейной интерполяции уже первая производная аппроксимирующей функции терпит разрывы в узловых точках. В тех случаях, когда есть основания полагать, что не только аппроксимирующая функция, но и ряд ее производных непрерывны, существенно лучшие результаты дает сплайн-аппроксимация. При ней исходная функция заменяется отрезками кубических полиномов, проходящих через три смежные узловые точки. Коэффициенты полиномов рассчитываются так, чтобы непрерывными были первая и вторая производные. Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закрепленную в узловых точках( откуда и название аппроксимации: splain – «гибкая линейка»).
Для осуществления сплайновой аппроксимации MathCAD предлагает три встроенные функции(VX, VY – вектора узловых точек):
Cspline(VX, VY) - возвращает вектор VK вторых производных при приближении в опорных точках к кубическому полиному;
pspline(VX, VY) - возвращает вектор VK вторых производных при приближении в опорных точках к параболической кривой;
Ispline(VX, VY) - возвращает вектор VK вторых производных при
приближении в опорным точках к прямой.
Аппроксимирующая функция строится с помощью встроенной функции Interp(VK, VX, VY, x) - возвращающей значение у(х) для заданных векторов VK, VХ, VY и заданного значения х.
Таким образом, сплайн-аппроксимация проводится в два этапа. На первом с помощью одной из функций cspline, pspline или ispline отыскивается вектор вторых производных функции у(х), заданной векторами VХ и VY ее значений (абсцисс и ординат). Затем на втором этапе для каждой искомой точки вычисляется значение у(х) с помощью функции interp.
Линейная регрессия общего вида реализуется с помощью функции linfit(VX, VY,F) – возвращающей вектор коэффициентов К, при котором среднеквадратичная погрешность приближения "облака" исходных точек с координатами VX, VY, минимальна.
Для
выполнения нелинейной регрессии общего
вида используется функция genfit(VX,VY,VS,F)
– которая возвращает вектор K
параметров функции
.
Вектор VS
– задает начальные приближения элементов
вектора K
рассчитываемых итерационным способом,
вектор F
содержит искомую функцию и ее частные
производные по параметрам Ki.
Для решения дифференциальных уравнений в MathCAD введен ряд функций. Остановимся на функциях, дающих решения для систем обыкновенных дифференциальных уравнений, представленных в обычной форме Коши:
rkadapt (y, x1, x2, acc, n, F, k, s) – возвращает матрицу, содержащую таблицу значений решения задачи Коши на интервале от х1 до х2 для системы обыкновенных дифференциальных уравнений, вычисленную методом Рунге-Кутта с переменным шагом и начальными условиями в векторе у (правые части системы записаны в векторе F, n – число шагов, k – максимальное число промежуточных точек решения, s – минимально допустимый интервал между точками);
Rkadapt (y, x1, x2, n, F) – возвращает матрицу решений методом Рунге-Кутта с переменным шагом для системы обыкновенных дифференциальных уравнений с начальным условием в векторе у, правые части которых записаны в символьном векторе F на интервале от х1 до х2 при фиксированном числе шагов n;
rkfixed (y, x1, x2, n, F) – возвращает матрицу решений методом Рунге-Кутта системы обыкновенных дифференциальных уравнений с начальным условием в векторе у, правые части которых записаны в символьном векторе F на интервале от х1 до х2 при фиксированном числе шагов n.
В данной курсовой работе для решения дифференциального уравнения применена функция rkfixed (см. приложение), которая использует для поиска решения метод Рунге-Кутта четвертого порядка. В результате решения дифференциального уравнения первого порядка получается матрица, имеющая два столбца:
- первый столбец содержит значение точек, в которых ищется решение дифференциального уравнения;
- второй столбец содержит значения найденного решения в соответствующих точках.
Функция rkfixed(y,x1,x2,npoints,D) имеет следующие аргументы:
у – вектор начальных условий размерности n, где n – порядок дифференциального уравнения или число уравнений в системе дифференциальных уравнений; для уравнения первого порядка вектор начальных условий вырождается в одну точку;
х1, х2 – граничные точки интервала, на котором ищется решение дифференциальных уравнений;
npoints – число точек, в которых ищется приближенное решение;
D(x, y) – функция, возвращающая значение в виде вектора из n элементов, содержащих первые производные неизвестных функций.
Решение дифференциального уравнения второго порядка
Основные отличия решения уравнений второго порядка в MathCAD от решения уравнения первого порядка состоят в следующем:
- вектор начальных условий состоит из двух элементов: значений функции и ее первой производной в начальной точке интервала;
- функция D(x, y) является вектором с двумя элементами:
- матрица, полученная в результате решения, содержит три столбца: первый столбец содержит значения х, второй – у(х), третий – у’(х).