Upload
others
View
55
Download
0
Embed Size (px)
Citation preview
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
ЗАДАНИЯ ДЛЯ ЛАБОРАТОРНЫХ РАБОТ
ПО ППП С ПРИМЕРАМИ Часть 1
Учебно-методическое пособие
Составитель О.И. Иванищева
Издательско-полиграфический центр Воронежского государственного университета
2008
2
Утверждено научно-методическим советом факультета прикладной мате-матики, информатики и механики 19 октября 2007 г., протокол № 2 Рецензент канд. физ.-мат. наук, доцент каф. технической кибернетики и автоматического регулирования Т.А. Радченко Учебно-методическое пособие подготовлено на кафедре теоретической и прикладной механики факультета ПММ Воронежского государственного университета. Рекомендуется для студентов 3 курса и магистров. Для специальности: 010500 – Механика
3
Содержание
1. Обработка экспериментальных данных в среде MathCAD................. 4 1.1 Интерполяция ................................................................................... 4
1.1.1 Линейная интерполяция Лабораторная работа № 1................................................................. 4 1.1.2 Интерполяция кубическими сплайнами Лабораторная работа № 2................................................................. 5 1.1.3 Интерполяция В-сплайнами Лабораторная работа № 3................................................................. 5 1.1.4 Двухмерная сплайн-интерполяция Лабораторная работа № 4................................................................. 7
1.2 Экстраполяция Лабораторная работа № 5 ...................................................................... 9 1.3 Регрессия ......................................................................................... 10
1.3.1 Линейная регрессия Лабораторная работа № 6............................................................... 10 1.3.2 Полиномиальная регрессия Лабораторная работа № 7............................................................... 11 1.3.3 Многомерная полиномиальная регрессия Лабораторная работа № 8............................................................... 14
1.4 Аппроксимация элементарными функциями Лабораторная работа № 9 .................................................................... 15 1.5 Аппроксимация функциями, заданными пользователем. Лабораторная работа № 10 .................................................................. 17 1.6 Оценка точности аппроксимирующей функции Лабораторная работа № 11 .................................................................. 19
2. Вопросы для самопроверки .................................................................. 21 Литература .................................................................................................. 23
4
Методическое пособие предназначено для проведения лабораторных работ по обработке экспериментальных данных с использованием возмож-ностей системы математических расчетов MathCAD. В первой части со-держатся задания по лабораторным работам с подробным указанием по-рядка выполнения, а также методические рекомендации и замечания. Из-ложение сопровождается примерами выполнения. Во второй части дается краткое описание методов и используемых функций. В третьей части представлен перечень вопросов, позволяющих проводить самоконтроль при освоении методов обработки результатов измерений.
1. Обработка экспериментальных данных в среде MathCAD Результаты измерений представляют собой дискретный набор точек
на плоскости или в пространстве. Для анализа таких результатов необхо-димо построить непрерывную кривую (или поверхность для двухмерных данных), которая отражала бы закономерности поведения реальной физи-ческой зависимости.
Для анализа экспериментальных зависимостей и приведения их к на-глядному виду часто используют такие средства, как интерполяция, сгла-живание и аппроксимация. Иногда для анализа зависимости необходимо найти ее Фурье-компоненту.
1.1. Интерполяция Система MathCAD позволяет проводить линейную интерполяцию и
сплайн-интерполяцию экспериментальных данных с помощью функций в категории Interpolation and Prediction. Вызвать эти функции можно с по-мощью команды меню Insert=>Function.
1.1.1. Линейная интерполяция Лабораторная работа № 1 Задание и порядок выполнения • Создать векторы vx и vy, содержащие координаты эксперимен-
тальных точек x и y. • Пересортировать массивы vx и vy так, чтобы значения элементов
вектора vx расположились в порядке возрастания. Для этого ис-пользовать функцию W csort V 0,( ):= . Пример сортировки пред-ставлен на рис. 1.
• Провести линейную интерполяцию набора экспериментальных точек, используя функцию linterp vx vy, x,( ).
5
Рис. 1. Сортировка набора точек Пример линейной интерполяции представлен на рис. 2. 1.1.2. Интерполяция кубическими сплайнами Лабораторная работа № 2 Задание и порядок выполнения • Провести сортировку элементов массивов экспериментальных
данных. • Построить кубические сплайны, используя функции
o lspline(vx,vy), o plspline(vx,vy), o cspline(vx,vy).
• Сравнить результаты интерполяции. Пример построения кубического сплайна представлен на рис. 3. 1.1.3. Интерполяция В-сплайнами Лабораторная работа № 3 Задание. 1) Построить интерполяционную кривую для выбранных
массивов экспериментальных данных, иcпользуя функцию bspline (vx,vy,u,n). Ее аргументы vx,vy – векторы, содержащие координаты экспе-риментальных точек, u – вектор с координатами точек сшивки, n – порядок интерполирующих полиномов.
2) Сравнить результаты интерполяции В-сплайнами и кубическими сплайнами.
6
Порядок выполнения: • Провести сортировку элементов массивов экспериментальных
данных. • Выбрать порядок интерполирующего полинома n (1,2,3). • Определить точки сшивки и создать вектор u. • Обратится к функции В-сплайн и получить первый аргумент v1
функции interp(v1,vx,vy,x),x). • Обратиться к функуции lspline(vx,vy) и получить первый аргу-
мент функции interp(v2,vx,vy,x). • Построить интерполяционные кривые на одной сетке. • Сравнить результаты. Пример представлен на рис. 4.
Рис. 2. Линейная интерполяция
7
Замечание. Пользоваться В-сплайнами следует в тех случаях, когда не удается получить удовлетворительный результат с помощью кубиче-ского сплайна, так как подбор точек сшивки может потребовать боль-ших затрат времени и не привести к хорошему результату.
1.1.4. Двухмерная сплайн-интерполяция Лабораторная работа № 4 Задание. Построить интерполяционную поверхность для экспери-
ментальных зависимостей, представленных в виде функции двух перемен-ных. Использовать функции lspline, plspline, cspline и interp.
Рис. 3. Пример построения кубического сплайна
Порядок выполнения. Так как интерполяционная поверхность мо-
жет быть построена только в случае, когда значения заданы в узлах прямо-угольной сетки, то следует:
8
• Представить экспериментальные данные в виде квадратной мат-рицы В размерности n.
Создать матрицу А из двух столбцов и n строк. Каждый столбец мат-рицы А задает положение линий сетки по одной из координат.
Рис. 4. Результаты интерполяции с помощью кубического и В-сплайна
• Воспользоваться одной из функций lspline(А,В), plspline(А,В),
cspline(А,В) и получить вектор v – первый аргумент функции in-
terp(v,А,В,w). Здесь ⎟⎟⎠
⎞⎜⎜⎝
⎛=
yx
w и x, y – значения координат узлов сетки.
9
• Воспользоваться функцией interp ),,,( ⎟⎟⎠
⎞⎜⎜⎝
⎛yx
BAv для вычисления значе-
ний интерполяционной поверхности в точках с координатами (x,y).
Замечание. Элементы матрицы А не обязательно задавать с оди-наковым интервалом. Но они обязательно должны располагаться в по-рядке возрастания.
1.2. Экстраполяция Лабораторная работа № 5 Задание. Провести экстраполяцию одномерной экспериментальной
зависимости. Порядок выполнения. • Создать вектор v экспериментальных значений функции, распре-
деляя точки равномерно. • Выбрать величину m, указывающую количество элементов векто-
ра v, ближайших к правой границе. • Указать величину n – количество точек на промежутке экстрапо-
ляции. • Получить вектор, задающий значения функции справа от границы
экспериментальных данных в n точках. Для этого обратиться к встроенной функции predict(v,m,n).
• Сравнить результаты экстраполяции с помощью функции pre-dict(v,m,n) и кубического сплайна.
Пример выполнения представлен на рис. 6. Замечание. 1) Проводить экстраполяцию можно и с помощью куби-
ческих сплайнов, но на очень малом расстоянии от границы экспериме-тальных данных.
2) Для непериодических зависимостей удовлетворительный резуль-тат при использовании функции predict(v,m,n) получается редко и только на небольшом расстоянии [1].
10
Рис. 5. Пример двухмерной интерполяции кубическим сплайном
Рис. 6. Пример экстраполяции с помощью функции predict
1.3. Регрессия
1.3.1. Линейная регрессия Лабораторная работа № 6 Задание. Провести линейную регрессию экспериментальных данных по методу наименьших квадратов и методу медиан. То есть опреде-лить значения параметров a и b, чтобы прямая y a b x= + ⋅ наилучшим образом аппроксимировала заданный набор точек. Порядок выполнения. • Создать массивы vx и vy, содержащие значения координат экспе-
риментальных данных. • Провести сортировку.
11
• Использовать функцию line(vx,vy), результатом которой является вектор, содержащий последовательные значения параметров a и b.
• Построить регрессионную прямую на одной координатной пла-скости с экспериментальными точками (см. рис. 6).
• Оценить визуально качество регрессионной модели. • Использовать функции intercert(vx,vy) и slope(vx,vy). Первую –
для определения коэффициента a, вторую – для нахождения ко-эффициента b.
• Использовать функцию medfit(vx,vy), основанную на методе ме-диан. Сравнить результаты работы функций line(vx,vy) и inter-cert(vx,vy), slope(vx,vy), medfit(vx,vy).
Рис. 7. Пример линейной регрессии с помощью функции line Замечание. Метод наименьших квадратов является наиболее уни-
версальным, и функция line(vx,vy) считается в MathCAD основной функци-ей для проведения линейной регрессии.
1.3.2. Полиномиальная регрессия Лабораторная работа № 7
Задание. Провести регрессию экспериментальных данных, описы-вающих функцию одной переменной, с помощью полинома третьей степе-ни. Использовать функции loess(vx,vy,span), regress.
Порядок выполнения.
12
• Создать массивы vx и vy, содержащие значения координат экспе-риментальных данных.
• Провести сортировку. • Выбрать значение n = 3. • Обратиться к функции regress(vx,vy,n) и получить первый аргу-
мент функции interp(v,vx,vy,x). • Построить на одной координатной сетке экспериментальные точ-
ки и регрессионную кривую. • Сравнить результаты. Пример см. на рис. 8. • Использовать функцию loess (vx,vy,span). • Использовать результат этой функции в качестве первого аргу-
мента функции interp и построить регрессионную кривую, со-стоящую из отрезков полиномов второй степени. Пример см. на рис. 8.
Рис. 8. Результат использования полиномиальной регрессии На рис. 8 построена псевдоэкспериментальная последовательность
точек. В качестве теоретической функции выбран полином третьей степе-ни с коэффициентами 0,1–2,1.
Как видно, коэффициенты, рассчитанные с помощью функции regress, значительно отличаются от коэффициентов исходного полинома. Однако в области экспериментальных точек обе кривые достаточно близ-
13
ки. За пределами этой области кривые резко расходятся. Результат такой регрессии не стоит использовать для определения параметров теоретиче-ской зависимости или экстраполяции.
Рис. 9. Пример аппроксимации набора точек функциями loess и plspline На рис. 9 приведен результат сплайн-интерполяции с помощью
функции loess. Как видно, интерполяционная кривая значительно отлича-ется от теоретической, а регрессионная кривая дает более приемлемый ре-зультат.
Замечание. Выбирать значение параметра span можно по-разному.
Если выбрано значение span больше двух, то кривая не будет отличаться от результата функции regress со значением параметра n = 2. Если вы-брано маленькое значение, то результат может мало отличаться от интерполяционной кривой, а при очень маленьких значениях span будет выдано сообщение об ошибке. В реальных задачах для достижения наи-лучшего результата значение span приходится подбирать.
14
1.3.3 Многомерная полиномиальная регрессия Лабораторная работа № 8 Задание. Построить аппроксимирующую поверхность для двухмер-
ных экспериментальных зависимостей на основе двухмерной полиноми-альной регрессии. Использовать функции regress и loess в комбинации с функцией interp.
Порядок выполнения. • Чтобы воспользоваться функцией regress, массивы координат то-
чек vx и vy надо объединить в один массив Мxy. Первый столбец этого массива содержит координаты x, а второй – соответствую-щие значения координаты y.
• Выбрать порядок n регрессионной полиномиальной поверхности. • Получить первый аргумент функции interp. Для этого воспользо-
ваться функцией regress(Мxy,vz,n). Здесь vz – массив значений исследуемой функции.
• Построить поверхность, описывающую двухмерную эксперимен-тальную зависимость.
• Построить поверхность, являющуюся результатом двухмерной полиномиальной регрессии.
• Сравнить полученные результаты. • Чтобы воспользоваться функцией loess(Мxy,vz, span), выбрать
значение параметра span, контролирующего сложность аппрок-симирующей поверхности.
• Использовать результат функции loess в качестве первого аргу-мента функции interp.
• Построить поверхность, являющуюся результатом двухмерной полиномиальной регрессии.
• Сравнить результаты применения функций regress и loess. Пример выполнения представлен на рис. 10. Замечание. Необходимо соблюдать связь между максимально воз-
можным порядком полиномиальной поверхности и количеством точек в выборке. Количество точек должно быть не меньше, чем количество па-раметров в уравнении поверхности. Для полиномиальной поверхности по-рядка n количество параметров равно ( )1 ( 2) / 2n n+ ⋅ + .
Проводить регрессию с помощью функции loess можно не выше, чем для четырехмерных зависимостей. При этом использование функции re-gress не имеет ограничений. Нужно помнить только, что количество то-чек в выборке должно превышать количество коэффициентов в полиноме.
15
1.4. Аппроксимация элементарными функциями Лабораторная работа № 9
Задание. Провести регрессию экспериментальных данных с помощью o экспоненциальной функции, o логистической функции, o синусоидальной функции, o логарифмической функции, o упрощенной двухпараметрической логарифмической функции, o степенной функции.
Рис. 10. Полиномиальная регрессия двухмерной экспериментальной зависимости
Порядок выполнения. • Создать массивы данных vx и vy. • Выбрать регрессионную функцию. • Задать трехкомпонентный вектор vg, содержащий приблизитель-
ные значения параметров a, b, c, входящих в аппроксимирующую функцию.
16
• Обратиться к регрессионной функции и получить вектор опти-мальных коэффициентов аппроксимирующей функции.
• Построить в одной системе координат набор экспериментальных точек и регрессионную кривую.
• Сравнить результаты регессии при различных вариантах вектора vg. На рис. 11 приведен пример проведения экспоненциальной регрес-
сии с помощью функции expfit(vx,vy,vg)). Регрессия проведена при двух различных значениях параметра vg. Как видно, выбор вектора vg2 приво-дит к неудовлетворительному результату, а vg1 дает правильный ответ.
Рис. 11. Проведение экспоненциальной регрессии
17
Рис. 12. Аппроксимация с помощью функции linfit На рис. 12 представлен пример аппроксимации с помощью функции
linfit. Обрабатывалась псевдоэкспериментальная последовательность точек с логарифмической зависимостью. Полученная регрессионная кривая дос-таточно хорошо аппроксимирует заданную последовательность точек.
1.5. Аппроксимация функциями, заданными пользователем Лабораторная работа № 10 Задание. Провести аппроксимацию одномерной экспериментальной
функции элементарными функциями. Рассмотреть два случая. В первом случае регрессионная функция представляет линейную
комбинацию заданных функций. То есть регрессионная функция является линейной по всем параметрам. Использовать встроенную функцию lin-fit(vx,vy,F). (Описание см. в 2).
18
Во втором случае провести регрессию общего вида. Т.е. с использо-ванием произвольной функции, зависящей от любого числа параметров. Использовать функцию genfit(vx,vy,vg,F). (Описание см. в 2).
Порядок выполнения. • Создать векторы vx и vy.
Определить третий аргумент функции linfit(vx,vy,F). Это вектор-ная функция, из элементов которой должна быть построена ли-нейная комбинация, наилучшим образом аппроксимирующая за-данную последовательность точек.
• Обратившись к функции linfit, получить вектор линейных коэф-фициентов F. Каждый элемент этого вектора – коэффициент при функции, стоящей на соответствующем месте в векторе F.
• Получить регрессионную функцию. Для этого скалярно перемно-жить векторы F и F.
• Построить на одной координатной плоскости множество экспе-риментальных точек и аппроксимирующую кривую.
• Провести регрессию общего вида и построить регессионную кри-вую (см. 2).
• Сравнить результаты аппроксимации с помощиью функций linfit и genfit.
Примеры выполнения представлены на рис. 12, 13.
19
0 2 4 6 8 100
1
2
3
4
vy
q x( )
y x( )
vx x, Рис. 13. Регрессия общего вида
1.6. Оценка точности аппроксимирующей функции Лабораторная работа № 11 Задание. Сравнить точность логарифмической и линейной аппрок-
симации экспериментальных данных. Порядок выполнения. • Произвести оценку среднеквадратического отклонения экспери-
ментальных данных от аппроксимирующих функций. Для этого использовать встроенную функцию stderr(vr,vy). Здесь перемен-ная vy содержит экспериментальные данные, переменная vr – значения регрессионной функции.
• Сравнить результаты для логарифмической и линейной функций. Произвести оценку коэффициента корреляции между массивом экспериментальных данных и значениями регрессионной функ-ции. Для вычисления этого коэффициента можно воспользоваться встроенной функцией corr(vr,vy). Чем ближе данный коэфициент к единице, тем лучше выбранная функция аппроксимирует экспе-риментальные данные.
Пример использования функций stderr(vr,vy) и corr(vr,vy) представ-
лен на рис. 14.
20
0 2 4 6 8 100
1
2
3
4
vy
q x( )
y x( )
vx x, Рис. 14. Использование функции genfit
21
Рис. 15. Сравнение точности линейной и логарифмической функций 2. Вопросы для самопроверки
1) Что называется интерполяцией? 2) Какие виды интерполяции представлены в MathCAD? 3) Зачем нужна функция interp? 4) Какая функция используется для проведения линейной интер-
поляции? 5) Какую роль играет порядок координат вектора vx значений пе-
ременной x при построении интерполяционной кривой? 6) Какая функция служит для сортировки массива значений пе-
ременной x? 7) Какие условия накладываются на сплайн при кубической ин-
терполяции? 8) Какие функции существуют в MathCAD для кубической ин-
терполяции?
22
9) В чем различие между функциями, предназначенными для интерполяции с помощью кубических сплайнов?
10) Можно ли использовать кубические сплайны для построения интерполяционной поверхности для двумерных эксперимен-тальных данных?
11) Как зависит поведение кривой внутри интервала эксперимен-тальных значений от выбора функций lspline (vx,vy), pspline(vx,vy), cspline(vx, vy) при построении сплайна?
12) При каких условиях использование кубического сплайна мо-жет привести к несоответствию построенной кривой экспе-риментальным данным?
13) В чем основное отличие В-сплайна от интерполяции кубиче-скими сплайнами?
14) Является ли произвольным количество точек сшивки при ис-пользовании В-сплайна? Как оно связано с количеством экс-периментальных точек?
15) Какие условия накладываются на координаты точек сшивки при использовании В-сплайна?
16) Какие методы используют функции MathCAD для проведе-ния линейной регресии?
17) Как связан порядок полинома при проведении полиномиаль-ной регрессии с числом точек в выборке?
18) В чем отличие процедуры построения полиномиальной рег-рессии от двухмерной сплайн-интерполяции?
19) В каких случаях удобно использование В-сплайна? 20) Какие методы реализуются при проведении линейной регрес-
сии? 21) Выбрать правильное утверждение:
полиномиальная регрессия в MathCAD может проводиться а) одним полиномом; б) отрезками полиномов.
22) Можно или нет проводить полиномиальную регрессию с по-мощью функций regress и loess для многомерных экспери-ментальных зависимостей?
23) Какие функции MathCAD позволяют провести регрессию с ис-пользованием любой заданной функции?
24) Какие величины нужно рассмотреть для оценки качества рег-рессионной модели?
23
Литература 1. Бахвалов Н. С. Численные методы / Н. С. Бахвалов, Н. П. Жидков,
Г. М. Кобельков. – М. ; СПб. : Лаб. базовых знаний, 2001. – 630 с. 2. Бидасюк Ю. М. Mathsoft MathCAD 11 : самоучитель / Ю. М. Бида-
сюк. – М. ; СПб. ; Киев : Диалектика, 2004. – 208 с.
24
Учебное издание
ЗАДАНИЯ ДЛЯ ЛАБОРАТОРНЫХ РАБОТ ПО ППП С ПРИМЕРАМИ
Часть 1
Учебно-методическое пособие
Составитель Иванищева Ольга Ивановна
Редактор И.Г. Валынкина
Подписано в печать 21.04.08. Формат 60×84/16. Усл. печ. л. 1,4. Тираж 28 экз. Заказ 386.
Издательско-полиграфический центр
Воронежского государственного университета. 394000, г. Воронеж, пл. им. Ленина, 10. Тел. 208-298, 598-026 (факс)
http://www.ppc.vsu.ru; e-mail: [email protected]
Отпечатано в типографии Издательско-полиграфического центра Воронежского государственного университета.
394000, г. Воронеж, ул. Пушкинская, 3. Тел. 204-133.