mas.exponenta.ru mas.exponenta.ru mas.exponenta.ru
он-лайн расчеты в Mathcad
Перейти на главную страницу
новости | о проекте | сотрудничество совместный проект Exponenta.ru и СПбГПУ
Рубрикатор


Ссылки

Прислать работу

Инструкции


МАТЕРИАЛЫ ПРОШЛЫХ ЛЕТ

В начало 

Построение в Mathcad математических моделей процессов и явлений

В практике научных и инженерных изысканий часто возникают задачи математического описания данных натурных наблюдений за состоянием исследуемых процессов, измерений изучаемых объектов и проч. Сознавая, что множество задач этого класса практически необозримо, попытаемся для некоторых из них коснуться этих проблем с точки зрения возможностей программных систем MathCad Pro. Рассмотрим несколько задач построения математических моделей, следуя принципу “от простого к сложному”.

Многообразие задач создания математических моделей объединяет наличие массивов данных, полученных в результате регистрации исследуемых переменных. Предположим, что предметом наблюдений (измерений) в исследуемой системе служит переменная у, значения которой меняются в зависимости от некоторого аргумента х. Таким аргументом в задачах, например, исследования динамических процессов, выходных характеристик динамических объектов и систем может выступать время. В задачах исследования экономических, социологических, биологических систем аргументами могут служить объем инвестиций, возраст людей, род занятий, характеристика лекарственного препарата и проч. В любом случае для рассматриваемых задач исходными данными служит массив значений у и соответствующий ему массив значений аргумента х, которые объединим в векторы значений функции Y и аргументов X. Термин “соответствующий” означает однозначную связь i-го элемента Y с i-ым элементом X. Рассмотрим возможности MathCad Pro для построения математических моделей при таком табличном задании массивов исходных данных.

В программных системах MathCad Pro, начиная с 7-ой версии, предусмотрено множество встроенных функций для получения математического описания данных Y = f(X). Так, в категории встроенных функций Curve Fitting (можно перевести как “Подбор формул по кривым”, “аппроксимация данных”, “математическое описание данных”) имеются функции, приведенные в табл. 1.

 

Встроенные функции категории Curve Fitting. Таблица 1.

 

expfit(X,Y,vg) Вычисляет коэффициенты экспоненциальной кривой a*e^(b*x) + c, наилучшим образом описывающей данные в X,Y. Вектор vg содержит начальные приближения искомых коэффициентов
genfit(X,Y, vg, F) Вычисляет параметры заданной функции f , определенной в F и наилучшим образом описывающей данные в X,Y. Вектор vg содержит начальные приближения параметров. F - вектор-функция, первая компонента которой есть функция f, а остальные - частные производные f по искомым параметрам.
lgsfit(X,Y, vg) Вычисляет коэффициенты логистической кривой a/(1+b*e^(-c*x)), наилучшим образом описывающей данные в X,Y. Вектор vg содержит начальные приближения искомых коэффициентов
line(X,Y) Вычисляет коэффициенты прямой ax + b, наилучшим образом описывающей данные в X,Y.
linfit(X,Y, F) Вычисляет весовые коэффициенты линейной комбинации функций, заданных в F, наилучшим образом описывающей данные в X,Y. Значения в X должны быть отсортированы в возрастающем порядке.
lnfit(X,Y) Вычисляет значения параметров для логарифмической кривой, наилучшим образом описывающей данные в X,Y. Вектор начальных приближений не нужен.
logfit(X,Y, vg) Вычисляет коэффициенты логарифмической кривой a*ln(x + b) + c, наилучшим образом описывающей данные в ax + b. Вектор vg содержит начальные приближения искомых коэффициентов
medfit(X,Y) Вычисляет коэффициенты прямой вида ax + b, наилучшим образом описывающей данные в X,Y, методом медиан.
pwrfit(X,Y, vg) Вычисляет коэффициенты степенной кривой вида a*x^b + c, наилучшим образом описывающей данные в X,Y. Вектор vg содержит начальные приближения искомых коэффициентов
sinfit(X,Y, vg) Вычисляет коэффициенты синусоидальной кривой a*sin(x + b) + c, наилучшим образом описывающей данные в X,Y. Вектор vg содержит начальные приближения искомых коэффициентов

 

 

Из табл. 1 следует, что класс функций, которые можно применить для подбора наилучшего математического описания Y = f(X), весьма широк. Он варьируется от простейших линейных (line(vx, vy)) до произвольных функций (genfit(vx, vy, vg, F)) и линейной комбинации произвольных функций (linfit(vx, vy, F)).

В ряде задач, когда требуется полиномиальное описание данных может успешно использоваться часть встроенных функций категории Regression and Smoothing (регрессия и сглаживание) и функция interp(v,X,Y,x) из категории Interpolation and Prediction (интерполяция и прогноз), приведенные в табл. 2.

 

Встроенные функции категории Regression and Smoothing. Таблица 2.

 

slope (X,Y) Вычисляет параметр a линии регрессии ax + b по данным X и Y
intercept(X,Y) Вычисляет параметр b линии регрессии ax + b по данным X и Y
loess(X,Y,s) Вычисляет вектор v, используемый функцией interp для нахождения совокупности полиномов второго порядка, наилучшим образом описывающих окрестности значений данных в массивах X и Y. Параметр s регулирует размер окрестности для локальной регрессии. Рекомендуемое значение s = 0.7-0.8
regress(X, Y, n) Вычисляет вектор v для функции interp для нахождения коэффициентов полинома степени n, который наилучшим (в смысле наименьших квадратов) образом приближает данные Y в точках, определяемых X.
interp(v, X,Y, x) Вычисляет интерполированные значения функции в точках x на основании предварительно найденного вектора коэффициентов v. Вектор v может быть получен одной из функций loess или regress на основе данных X и Y.

 

 

Другой, также весьма широкий класс задач построения математических моделей, относится к описанию динамических звеньев и систем в виде дифференциальных или разностных уравнений по исходным данным, заданным в табличной форме. Для этих задач векторы X и Y объединяют значения входных и выходных сигналов динамического звена или системы. Задачи этого класса, которые иногда называют “задачами черного ящика”, могут быть успешно решены с использованием поисковых и беспоисковых алгоритмов. Этот класс задач будет рассмотрен и проиллюстрирован нами позже.

Здесь не обсуждается то, что исходные данные X и Y могут иметь различный формат (текстовый с расширениями txt, prn, csv, Excel, Matlab и др.), предусмотренный позицией Insert/Component главного меню MathCad Pro. Эти данные без проблем трансформируются в формат чисел MathCad Pro с расширением mcd при вводе с последующими преобразованиями в среде MathCad Pro и, если это необходимо, выводом результатов в исходном формате.

Приведем несколько простых примеров использования встроенных функций (см. табл. 1 и 2) для математического описания совокупности данных Y = f(X) в среде MathCad 2001Pro. Для лучшей оценки качества получаемых результатов будем формировать массивы исходных данных по известным математическим выражениям.

 

 

 

Рис. 1

 

 

На рис. 1 приведен пример использования функции regress для получения коэффициентов полинома третьей степени (выделен желтым фоном). Значения полинома размещены в векторе у для значений аргумента, которые содержатся в векторе х. Вектор случайных нормально распределенных чисел z имитирует наличие помех в измерениях. Результирующий вектор, по которому находится решение, обозначен через Y. Функция regress формирует вектор параметров D, первые два элемента которого имеют характер служебной информации, третий параметр - порядок полинома, а остальные параметры - коэффициенты полинома в порядке возрастания степеней, начиная со свободного члена. Функция interp восстанавливает значения полинома по полученным коэффициентам. Исходный и восстановленный векторы значений полинома объединены в матрицу S. Приведены также вектор ошибок и норма этого вектора в качестве критерия точности полученных результатов. На графиках представлены исходные и восстановленные значения полинома, а также значения абсолютных ошибок. Полученные данные свидетельствуют о значительном влиянии помех на результирующие значения коэффициентов. Так, уже при среднеквадратическом отклонении помехи, принятом равным 0.1, имеем заметные искажения значений коэффициентов полинома (свободный член 0.986 вместо 1.0, коэффициент при старшой степени 0.108 вместо 0.1 и т.д.). Программа рис.1 может быть использована для анализа степени влияния случайных помех в измеренных данных на конечный результат (см. файл model1 Скачать).

Задача, аналогичная рассмотренной может быть решена традиционным методом наименьших квадратов (см. файл model2 Скачать), причем результаты при тех же исходных данных будут, естественно, практически совпадать .

Исходные данные могут быть представлены полиномами различных порядков. Файл model3 (Скачать) иллюстрирует процедуру аппроксимации полинома третьего порядка полиномом второго порядка.

В файле model4 (Скачать) показан пример применения функции linfit для представления данных с помощью комбинации некоторых функций. Вид и параметры этих функций задаются заранее, а функция linfit позволяет получить весовые коэффициенты результирующего выражения, которое в примере model4 соответствует функции f и a.

Использование остальных функций, перечисленных в табл. 1 и 2 аналогично.

 

В начало




новости | форум | о проекте | сотрудничество | Exponenta.ru

Copyright © 2000-2016. Exponenta.ru