Читайте также:
|
|
Сглаживание экспериментальных (полученных с погрешностями) данных можно проводить в MathCad несколькими специально разработанными способами, которые используются в основном для проведения плавных линий около экспериментальных точек. Практика показывает, что использование этих строенных функций встречает определенные трудности. К ним можно отнести:
· отсутствие статистических характеристик полученных аппроксимаций, поэтому нет достаточных оснований для отбора того или иного способа аппроксимации;
· может наблюдаться множественность решения в зависимости от начальных данных;
· иногда найти подходящие начальные условия для получения решения очень сложно.
В качестве критерия выбора метода сглаживания можно использовать “невязки” – отклонения между рассчитанными по регрессии значениями функции или сумму их квадратов, как это сделано в двух последующих программах.
Перечислим способы сглаживания данных в MathCad и дадим характеристику параметрам, которые входят в их синтаксис. Во всех случаях х, у – векторы данных.
1. Регрессия отрезками полиномов. Используется функция s:=loess(x,y,span), где span – параметр, задающий степень сглаживания данных. При больших span дает результаты, не отличающиеся от полиноминальной регрессии. Лучше использовать значение span от 0.5 до 1. Используется в сочетании с функцией A(t):=interp(s,x,y,t).
2. Регрессии специального вида. Каждая из функций выдает вектор параметров a,b,c. Причем надо задавать начальные значения параметров, как это сделано на примере экспоненциальной регрессии в программе 6. Вектор начальных условий g является параметром соответствующих функций.
· еxpfit(x,y,g) – регрессия экспонентой f(x) = a×ebx + c;
· lgsfit(x,y,g) – регрессия логистической функцией f(x) = a/(1+b×e-cx);
· sinfit(x,y,g) – регрессия синусоидой f(x) = a×sin(x+b) + c;
· pwfit(x,y,g) – регрессия степенной функцией f(x) = a×xb + c;
Программа 5
3. Регрессия общего вида. MathCad может осуществлять регрессию в виде линейной комбинации любых трех функций пользователя:
Y(x) = c0 y0(x) + c1y1(x) + c2y2(x)
Линейную комбинацию функций задают в векторной функции скалярного аргумента F(x), а вектор параметров получают с помощью функции linfit(x,y,F), как показано в программе 6.
Программа 6
4. Сглаживание и фильтрация. При анализе экспериментальных данных, полученных с помощью физических методов исследования (их называют сигналами) часто возникает задача разделение полученного сигнала на высокочастотную и низкочастотную составляющие. Одина из этих составляющих, как правило, является «шумом» – систематической погрешностью, изменяющейся во времени и независимой от основного сигнала. В связи с этим возникают две противоположные задачи – сглаживание и фильтрация. Устранение высокочастотных шумов, когда экспериментальные данные быстро осциллируют около истинной плавной кривой, например при измерении оптической плотности раствора, в котором протекает медленная химическая реакция, называется сглаживанием. Фильтрация – устранение медленно меняющегося фона с целью исследования высокочастотной составляющей. Примером фильтрации данных является обработка экспериментальные данных в электронографии, когда плавно изменяющуюся линию фона вычитают из основной линии и получают так называемую молекулярную составляющую рассеяния электронов.
Для сглаживания в MathCad имеется несколько встроенных функций:
· medsmooth (x,y,b) – сглаживание алгоритмом “бегущих медиан”;
· ksmooth (x,y,b) – сглаживание на основе функции Гаусса;
· supsmooth (x,y) – локальное сглаживание адаптивным алгоритмом;
здесь b – ширина окна сглаживания, x,y – матрица экспериментальных данных.
Сглаживание часто применяют перед интерполяцией или перед дифференцированием экспериментальных данных. В программе 7 используется сглаживание данных двумя из этих функций.
Для решения задачи фильтрации поступают следующим образом. Сначала выясняют природу низкочастотной составляющей и задают функцию. Проводят регрессионный анализ и получают сглаженную кривую. Затем для каждого значения первоначальной экспериментальной функции вычитают сглаженную функцию.
Программа 7
Контрольные вопросы к главе 2
1. Перечислите способы сглаживания экспериментальных данных, предусмотренных в MathCad?
2. Какая функция используется для получения регрессии отрезками полинома? Как меняется вид зависимости от параметра span?
3. В каком случае надо менять начальные условия для регрессий специального вида?
4. Можно ли в регрессии общего вида использовать больше 3 функций?
5. Если заменить в программе 5 expfit на lgsfit, то какие еще надо сделать изменения в программе?
6. Чем отличается задача сглаживания от задачи фильтрации?
7. Назовите три функции, используемые для решения задачи сглаживания в MathCad?
8. Как решают задачу фильтрации в MathCad?
Расчетная многовариантная задача № 2
По данным таблицы 2 [X,Y] многовариантной задачи № 1:
а) проведите регрессию отрезками полинома, подобрав оптимальный параметр span.
б) рассчитайте параметры аппроксимирующей нелинейной функции из «регрессий специального вида» MathCad и линейную комбинацию трех функций для регрессии общего вида. Расчетные данные занесите в таблицу:
Регрессия | span | |
Отрезками полинома | 0.5 0.7 0.9 | |
Экспонентой | ||
Логистической функцией | ||
Синусоидой | ||
Степенной функцией | ||
Общая регрессия F(x)= |
За критерий оптимальности принять минимум суммы квадратов отклонений расчетных и опытных значений функции;
г) проведите сглаживание табличных данных с помощью трех алгоритмов: “бегущих медиан”, функции Гаусса и адаптивным алгоритмом; проанализировать результаты расчета.
Варианты творческих заданий
1. Дополните программу 5 расчетом погрешностей искомых параметров а, b, c. Проведите расчет со своим вариантом данных.
2. Дополните программу 6 расчетом погрешностей искомых параметров с0, с1, с2. Проведите расчет со своим вариантом данных.
3. Проведите регрессию общего вида для своего варианта данных, предварительно сглаженных функциями supsmooth и ksmooth.
Дата добавления: 2015-07-19; просмотров: 727 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Программа 1 | | | Глава 3. ИНТЕРПОЛЯЦИЯ И ЭКСТРАПОЛЯЦИЯ |