Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаИПлб.doc
Скачиваний:
38
Добавлен:
08.05.2019
Размер:
6.96 Mб
Скачать

3.3. Интерполяция произвольной нелинейной функцией

Интерполяция произвольной нелинейной функцией может быть выполнена с помощью fsolve, решающей систему нелинейных уравнений. Обращение к ней имеет вид:

coef=fsolve(mfile,x0);

где coef – искомые параметры интерполирующей функции; х0 – начальное приближение к coef; mfile – указатель на имя m-файла, описывающего систему уравнений.

Пример: пусть неизвестная функция задана таблицей значений

х

1

2

3

4

5

у

6,5

20

53,5

167

473

Необходимо получить аналитическое выражение для этой функции. Выберем вид интерполяционной функции, воспользовавшись графоаналитическим методом – построим исходные точки. График функции в виде точек таблицы похож на степенную функцию (рис. 5.6). Выберем в качестве интерполяционной функцию вида . Так как функция содержит три неизвестных коэффициента (a, b и с, причем b входит нелинейно), то для их определения составим систему из трех уравнений, выбрав в качестве аргументов три узла таблицы х = 1, 3 и 5. Получим

Рис. 5.6. Интерполяция степенной функцией

Подставим в систему соответствующие значения х и у из таблицы. Запишем m-функцию

function system=sysur(coef)

global y x

system=[coef(1)*coef(2)^x(1)+coef(3)-y(1);

coef(1)*coef(2)^x(3)+coef(3)-y(3);

coef(1)*coef(2)^x(5)+coef(3)-y(5)];

и файл-сценарий

global y x;

x=1:5;

y=[6.5 20 53.5 167 473];

x0=[1; 1; 1;];

coef=fsolve(@sysur,x0)

В результате выполнения скрипта с m-функцией получим следующий вектор коэффициентов моделирующей функции

coef =

1.9850

2.9876

0.5698

Следовательно, интерполяционная функция будет иметь вид ум=1,9850·2,9876х+0,5698. Моделирующая кривая ум(х) в обязательном порядке пройдет через первую, третью и пятую точки таблицы, по которым были определены ее параметры, но необязательно через вторую и четвертую (рис. 5.6).

Примечание: по правилам использования стандартной функции fsolve m-функция, описывающая решаемую систему уравнений, должна иметь один формальный параметр – искомые коэффициенты. Для пересылки в файл-функцию sysur значений векторов х и у в головной программе и в функции объявляются глобальные данные (после слова global указывается перечень глобальных переменных через пробел).

4. Контрольные вопросы

  1. Как можно определить вид моделирующей функции?

  2. С помощью каких средств Matlab можно построить точечный график таблично заданной функции?

  3. Каковы правила задания полиномов в Matlab?

  4. Какие функции Matlab используются для работы с полиномами?

  5. На каких критериях основывается интерполяция?

  6. В чем суть приближения таблично заданной функции по методу наименьших квадратов?

  7. Какие приближающие функции можно использовать при моделировании по методу наименьших квадратов?

  8. Как оценить погрешность аппроксимации методом наименьших квадратов?

  9. Что общего и чем отличаются интерполяция и аппроксимация?

  10. Для чего предназначена функция fsolve?

  11. Каковы правила использования функции lsqcurvefit?