Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Методы и компьютерные технологии интерполяции. Интерполяция, приближенная в узлах
Цель работы: научиться применять аппроксимацию
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Напомним, что аппроксимация применяется в случаях, когда исходные данные функции, полученные экспериментально, содержат ошибки, поэтому аппроксимация позволяет получить более точную математическую модель путем сглаживания неточностей исходных данных, чем интерполяция (точная в узлах). Одной из функций, позволяющих осуществить сглаживание неточностей исходных данных в системе Matlab, является функция coef = lsqcurvefit (f, x 0, a, b), где а, b-векторы узлов интерполяции и значений функции, х0 – стартовое значение параметров функции, f- функция аппроксимации, задаваемая пользователем. Представим на примере технологию решения задачи аппроксимации. Пусть некоторый процесс определен функцией у=f(x), исходные данные которого определены в таблице 17.1. Таблица 17.1 – Задание функции у=f(x)
Требуется найти математическую модель поведения данной функции методом аппроксимации. График узлов интерполяции представлен на рисунке 17.1, с.128.
Рисунок 17.1 – График узлов интерполяции функции, представленной в таблице 17.1
Обосновано можно предположить, что функцией аппроксимации будет полином. Система Matlab позволяет выбрать степень полинома, путем вычисления табличных разностей с помощью функции diff (y, n), где у – значения функции в узлах интерполяции, n - порядок табличных разностей. >> y=[6.36,6.85,7.34,7.84,8.08,8.32]; >> diff(y,1) ans = 0.4900 0.4900 0.5000 0.2400 0.2400 >> diff(y,2) ans = 0.0000 0.0100 -0.2600 0
Табличные разности второго порядка практически одинаковы, поэтому полином будет не выше второй степени, т.е. у= a + bx + cx 2. Теперь решим задачу аппроксимации и определим погрешности функции интерполяции (приближенной в узлах).
>> a=[30,40,50,60,70,80]; >> b=[6.36,6.85,7.34,7.84,8.08,8.32]; >> x0=[1,1,1]; >> f=inline('x(3)*a.^2+x(2).*a+x(1)','x','a'); >> coef=lsqcurvefit(f,x0,a,b)
Local minimum found. Optimization completed because the size of the gradient is less than the default value of the function tolerance.
<stopping criteria details>
coef = 4.1684 0.0842 -0.0004
Таким образом, функция может быть представлена аналитически формулой у=4,1684+0,0842 x -0,0004х2. Расчет погрешностей функции аппроксимации показывает, что данная математическая модель адекватна и описывает указанный процесс (см. рисунок 17.2, с. 130).
Рисунок 17.2 – Расчет погрешностей функции аппроксимации
Функция coef = lsqcurvefit (f, x 0, a, b,), представленная системой Matlab, универсальна. Среда Matlab представляет функцию polyfit (х,у, n), осуществляющую аппроксимацию полиномами, где х – вектор узлов интерполяции, у – вектор значений функции в узлах интерполяции, n – степень полинома. Результатом проведения аппроксимации функция выдает вектор коэффициентов полинома. Осуществим аппроксимацию с помощью функции polyfit (х,у, n), используя статистические данные предыдущего пункта: >> x=[30,40,50,60,70,80]; >> y=[6.36,6.85,7.34,7.84,8.08,8.32]; >> p=polyfit(x,y,2) p= -0.0004 0.0842 4.1684
Т.е., функция может быть представлена той же формулой у=4,1684+0,0842 x -0,0004х2. Протабулируем полученную функцию у=4,1684+0,0842 x -0,0004х2 с целью сравнения ее значений со значениями функции в узлах интерполяции. Для этого введем в командной строке новую функцию polyval (p, x), где р - вычисляемая функция, х – вектор узлов интерполяции: >> f=polyval(p,x) f = 6.3318 6.8922 7.3723 7.7720 8.0914 8.3304
Анализируя полученные данные с вектором значений в узлах интерполяции у, убеждаемся, что они мало отличаются от исходных данных. Следовательно, функция аппроксимации может служить математической моделью происходящего процесса.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ Задание 1. Используя полиномиальную аппроксимацию для таблично – заданного процесса найти функцию аппроксимации. Проверить адекватность модели, подсчитав погрешность. Определить значение функции в точке 3,4.
Задание 2. Для таблично – заданного процесса найти функции интерполяции и аппроксимации. Проверить адекватность модели, подсчитав погрешности. Определить значение функции в точке 2,5.
ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет должен быть оформлен согласно ГОСТ 7.32-2001 и содержать 1.Титульный лист 2. Цель работы 3. Краткие теоретические сведения 4. Результаты выполнения заданий. 5. Выводы по работе.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Какие функции аппроксимации Вы знаете? 2. Как посчитать абсолютную и относительную погрешности функции аппроксимации?
ЛАБОРАТОРНАЯ РАБОТА № 18
|
||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-08-16; просмотров: 60; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.202.30 (0.011 с.) |