Методы и компьютерные технологии интерполяции. Интерполяция, приближенная в узлах 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Методы и компьютерные технологии интерполяции. Интерполяция, приближенная в узлах



 

Цель работы: научиться применять аппроксимацию

 

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

 

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

    Одной из функций, позволяющих осуществить сглаживание неточностей исходных данных в системе Matlab, является функция coef = lsqcurvefit (f, x 0, a, b), где а, b-векторы узлов интерполяции и значений функции, х0 – стартовое значение параметров функции, f- функция аппроксимации, задаваемая пользователем.

    Представим на примере технологию решения задачи аппроксимации.

Пусть некоторый процесс определен функцией у=f(x), исходные данные которого определены в таблице 17.1.

Таблица 17.1 – Задание функции у=f(x)

х 30 40 50 60 70 80
у 6,36 6,85 7,34 7,84 8,08 8,32

 

    Требуется найти математическую модель поведения данной функции методом аппроксимации.

    График узлов интерполяции представлен на рисунке 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.

x 0 1 2 3 4 5
y 6 5,16 20,86 66,15 154,08 297,7

 

    Задание 2. Для таблично – заданного процесса найти функции интерполяции и аппроксимации. Проверить адекватность модели, подсчитав погрешности. Определить значение функции в точке 2,5.

x 0 1 2 3 4 5
y 3.5 6.6 11.67 18.71 27.72 38.71

 

ТРЕБОВАНИЯ К ОТЧЕТУ

 

Отчет должен быть оформлен согласно ГОСТ 7.32-2001 и содержать 1.Титульный лист

2. Цель работы

3. Краткие теоретические сведения

4. Результаты выполнения заданий.

5. Выводы по работе.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

 

 

1. Какие функции аппроксимации Вы знаете?

2. Как посчитать абсолютную и относительную погрешности  функции аппроксимации?

 

 

ЛАБОРАТОРНАЯ РАБОТА № 18



Поделиться:


Последнее изменение этой страницы: 2021-08-16; просмотров: 59; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.248.208 (0.008 с.)