на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Система Mathcad
p align="left">Рис.6 Интерполяция кубическим сплайном

В приведенном примере использована функция pspline. В большинстве случаев от того, какую функцию вы используете, слабо зависит поведение кривой внутри интервала экспериментальных значений. Заметное отличие появляется лишь за границами этого интервала.

Кубический сплайн является эффективным средством построения интерполяционной кривой в подавляющем большинстве случаев. Но иногда использование кубического сплайна может привести к нежелательным результатам. Чаще всего это происходит в тех случаях, когда данные очень неравномерно распределены вдоль оси x. В таких случаях на кривой кубического сплайна могут появляться острые экстремумы в промежутках между экспериментальными точками. В некоторых подобных случаях получить лучщую интерполяционную кривую помогает использование другого вида интерполяции - В-сплайна. Основное отличие В-сплайна от всех описанных выше методов - сшивка отрезков кривых происходит не в экспериментальных точках, а между ними, в специально заданных точках. В MathCad для реализации интерполяции В-сплайном служит функция bspline(vx.vy,u,n), где vx,vy - векторы, содержащие координаты экспериментальных точек, u - вектор, содержащий координаты точек сшивки, n - порядок полинома. Результатом функции bspline является вектор, который далее следует использовать как аргумент функции interp. В-сплайн в MathCad можно построить из отрезков прямых, парабол или кубических парабол, т.е. допустимые значения параметра n - 1,2 или 3. Количество точек сшивки не является произвольной величиной и должно быть всегда на n-1 меньше, чем количество экспериментальных точек. Также на координаты точек сшивки накладываются следующее условие: первая точка сшивки должна быть не правее первой экспериментальной точки, а последняя не левее последней экспериментальной точки. Остальные точки сшивки могут произвольным образом располагаться внутри отрезка. Пример использования В-сплайна приведен на рис.7.

Экстраполяция.

Интерполяция дает возможность вычислять значения неизвестной функции в промежутках между экспериментальными точками, но иногда возникает необходимость вычислять значения функции вне области, ограниченной этими точками. Для этого используют так называемые методы экстраполяции.

При построении кубического сплайна, значение интерполяционной кривой может быть вычислено также и в любой точке за пределами «пограничной» области. Конечно, данный способ экстраполяции можно использовать только на очень небольшом расстоянии от «пограничных» точек, поскольку кривая является кубической параболой и быстро уходит в область очень больших значений, не имеющих ничего общего с реальной зависимостью.

Рис.7 Сравнение эффективности кубического сплайна и В-сплайна

Также в MathCad есть одна встроенная функция для проведения экстраполяции - predict(v,m,n), где v - вектор значений функции на том отрезке, где она известна (значения аргумента в данной функции не задаются, и считается, что точки распределены равномерно), m - количество элементов вектора v, на основании которых проводится экстраполяция ( естественно, выбираются точки, ближайшие к правой границе), n - количество точек в рассчитываемом векторе. Пример экстраполяции от осциллирующей функции приведен на рис.8

k,101+i

Рис.8 Экстраполяция с помощью функции predict

Результатом функции predict является вектор, состоящий из n элементов и задающий значения функции справа от границы выборки, т.е. в области, где она была не известна. Алгоритм, используемый в функции predict, наилучшим образом подходит для экстраполяции различного рода осциллирующих зависимостей. В некоторых случаях можно получить удовлетворительный результат экстраполяции даже для негладких зависимостей, таких как пилообразный или прямоугольный сигнал. Зато для непериодических зависимостей приемлемый результат можно получить очень редко и только на очень небольшом расстоянии.

Регрессия

Результаты экспериментов всегда содержат некоторую случайную погрешность. Причем часто погрешность оказывается величиной одного порядка с измеряемой величиной. В таких случаях интерполяционная кривая будет весьма далека от истинной зависимости. Поскольку подобные ситуации возникают довольно часто, то интерполяция редко используется при анализе результатов экспериментов. Гораздо шире здесь применяется регрессионный анализ. Регрессией называется подгон параметров той или иной простой функции для наилучшей аппроксимации экспериментальных данных (от латинского approximo - приближаюсь). Если аппроксимирующая функция выбрана удачно, то значения ее параметров могут быть источником разнообразной информации об измеряемой величине.

Система MathCad содержит большое количество встроенных функций для проведения регрессионного анализа с использованием любых аппроксимирующих функций и их комбинаций. Все функции MathCad для поиска оптимальных значений параметров функций используют метод наименьших квадратов, можно еще применить метод медиан.

Линейная регрессия

Линейная регрессия является наиболее простой, но, тем не менее, используется чаще любого другого вида регрессии. Она заключается в нахождении таких значений параметров a и b, чтобы прямая y = a+bx наилучшим образом аппроксимировала заданной набор точек. Для проведения линейной регрессии по методу наименьших квадратов в MathCad существует функция line(vx,vy). Результатом функции line будет вектор, содержащий значения параметров a и b для построения регрессионной прямой. Пример линейной регрессии представлен на рис.9

Рис.9 Линейная регрессия с помощью функции line

На рис.9 для анализа эффективности линейной регрессии построена псевдоэкспериментальная последовательность точек. Для этого к точным значениям линейной функции прибавлены случайные числа, сгенерированные с помощью функции rnorm.Затем проведена линейная регрессия полученного набора точек. Ее результат можно сравнить с исходной прямой. Как видно из рис., параметры регрессионной прямой заметно отличаются от исходных, но на графике обе прямые проходят достаточно близко.

Для линейной регрессии в MathCad реализован также метод медиан с помощью функции medfit(vx,vy). Результатом этой функции является вектор, аналогичный результату line. Нельзя утверждать, что один из двух методов регрессии более точен. Метод наименьших квадратов является наиболее универсальным, поэтому функция line считается в MathCad основной функцией для проведения линейной регрессии.

Полиномиальная регрессия.

Кроме аппроксимации неизвестной функции с помощью прямой, широкое применение находит и аппроксимация с помощью полиномов различной степени. Для этой цели в MathCad существует функция regress(vx,vy,n). Последний аргумент данной функции задает степень полинома. Можно использовать полином любой степени, но не большей, чем число точек в выборке минус один. При n = 1 получится линейная регрессия. На практике наибольшее применение находит полиномиальная регрессия от второй до пятой степени.

Результатом функции regress является вектор, содержащий коэффициенты аппроксимирующего полинома. Эти коэффициенты располагаются в векторе, начиная с четвертого элемента в порядке возрастания степеней. Первые три элемента данного вектора являются служебными и используются для того, чтобы результат функции regress можно было использовать как первый аргумент функции interp по аналогии со сплайн-интерполяцией. Пример полиномиальной регрессии представлен на рис.10.

Рис.10 Полиномиальная регрессия

На рис.10 для иллюстрации полиномиальной регрессии построена псевдоэкспериментальная последовательность точек. В качестве теоретической функции был использован полином третьей степени с коэффициентами 0,1,-2,1. Как видно из примера, коэффициенты, рассчитанные функцией regress, значительно отличаются от коэффициентов исходного полинома. Тем не менее в области экспериментальных точек обе кривые достаточно близки, но за пределами этой области резко расходятся.

Аппроксимация набора точек различными элементарными функциями

Физические величины зачастую подчиняются зависимостям отличным от линейных или полиномиальных. Поэтому в MathCad существует несколько функций, позволяющих выполнить регрессию с использованием зависимостей, наиболее часто встречающихся на практике. Таких функций в MathCad всего шесть. Вот некоторые из них:

· expfit(vx,vy,vg) - регрессия экспоненциальной функцией y = a*eb*x+c.

· sinfit(vx,vy,vg) - регрессия синусоидальной функцией y = a*sin(x+b)+c.

· pwrfit(vx,vy,vg) - регрессия степенной функцией e = a*xb +c.

Перечисленные функции используют трехпараметрическую аппроксимирующую функцию, нелинейную по параметрам. При вычислении оптимальных значений трех параметров регрессионной функции по методу наименьших квадратов возникает необходимость в решении сложной системы из трех нелинейных уравнений. Такая система часто может иметь несколько решений. Поэтому в функциях MathCad, которые проводят регрессию трехпараметрическими зависимостями, введен дополнительный аргумент vg. Данный аргумент - это трехкомпонентный вектор, содержащий приблизительные значения параметров a,b и c, входящих в аппроксимирующую функцию. Неправильный выбор элементов вектора vg может привести к неудовлетворительному результату регрессии. На рис.11 приведен пример проведения экспоненциальной регрессии с помощью функции expfit, регрессия проведена для двух различных значений вектора vg.

Рис.11 Экспоненциальная регрессия

Аппроксимация набора точек функциями, заданными пользователем.

В MathCad существуют средства для проведения регрессии самого общего вида. Это означает, что можно использовать любые функции в качестве аппроксимирующих и находить оптимальные значения любых их параметров, как линейных, так и нелинейных. В том случае, если регрессионная функция является линейной по всем параметрам, т.е. представляет линейную комбинацию жестко заданных функций, провести регрессию можно с помощью встроенной функции linfit(vx,vy,F). Аргумегт F - это векторная функция, из элементов которой должна быть построена линейная комбинация, наилучшим образом аппроксимирующая заданную последовательность точек. Результатом работы функции linfit является вектор линейных коэффициентов. Каждый элемент этого вектора - коэффициент при функции, стоящей на соответствующем месте в векторе F. Таким образом, для того чтобы получить регрессионную функцию, достаточно скалярно перемножить эти два вектора. Пример такой аппроксимации представлен на рис.12.

Рис.12 Использование функции linfit

Сглаживание

Система MathCad применяется для обработки различного рода сигналов. При этом очень важной процедурой является очистка сигнала от шумов. Один из вариантов решения данной задачи - это использование алгоритмов сглаживания (smoothig). Существует множество алгоритмов сглаживания данных, причем не всегда можно заранее сказать, какой из них будет наиболее эффективен для той или иной задачи. В MathCad реализовано три алгоритма сглаживания и соответственно существует три функции для их выполнения.

· medsmooth(vy,n) - реализует алгоритм «бегущих» медиан. Параметр n определяет ширину «окна» сглаживания, т.е. количество точек, которые используются при вычислении сглаженного значения в каждой точке. Параметр n должен быть целым нечетным числом. Данный алгоритм лучше всего подходит для сглаживания наборов точек, в которых лишь некоторые точки резко выбиваются из общей гладкой последовательности (см.рис.13).

· ksmooth(vx,vy,b) - алгоритм Гауссового ядра. В данном алгоритме сглаженное значение в каждой точке вычисляется как весовое среднее от всего набора данных с ядром в виде функции Гаусса. Параметр b - это параметр ширины функции ядра. Данный метод наилучшим образом подходит для фильтрации зашумленного сигнала (см.рис.14).

· supsmooth(vx,vy) - в данном алгоритме значение в каждой точке заменятся на значение регрессионной прямой, построенной с использованием некоторого количества близлежащих точек, причем данное количество выбирается по-разному для каждой точки с помощью адаптивного алгоритма.

Рис.13 Сглаживание сигнала с узкими нерегулярностями

Рис.14 Сглаживание зашумленного сигнала

Дискретное преобразование Фурье

Еще одна операция, широко применяемая при обработке сигналов , - вычисление Фурье-спектра. Для проведения данной операции с сигналами, заданными в виде массивов данных, система MathCad содержит численный алгоритм, называемый быстрым преобразованием Фурье (Fast Fourier Transform FFT). Для реализации данного алгоритма в MathCad существует несколько различных функций.

· В том случае, если набор данных v состоит из 2m элементов, а также все числа в наборе данных действительны, то для проведения Фурье-преобразования следует пользоваться функциями fft(v) или FFT(v). Обе эти функции выполняют Фурье-преобразование, а различие между ними заключается лишь в нормировке результата. Результатом функций fft и FFT будет массив из 2m -1+1 комплексных чисел.

· Если какое-либо из условий, перечисленных выше, не выполняется, т.е. массив содержит комплексные числа или не может быть расширен до размерности 2m, то следует пользоваться функциями cfft(v) и CFFT(v). Результатом функций cfft и CFFT будет массив комплексных чисел той же размерности, что и исходный.

Результатом каждой из перечисленных функций будет массив комплексных чисел. Исходя из этого массива, можно построить амплитудно-частотную (АЧХ) или фазово-частотную (ФЧХ) характеристику сигнала. Для построения АЧХ следует вычислить абсолютное значение каждого элемента в массиве. Пример такого построения приведен на рис.15.

Рис.15 Использование функции fft для построения АЧХ - сигнала

На рис 16 проведена фильтрация сигнала, построенного на рис.15. Конечно, такой метод фильтрации можно использовать, только если уровень шума ощутимо ниже уровня сигнала.

Рис.16 Амплитудная фильтрация сигнала

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.