Примеры расчёта простых математических задач в программе МатЛаб

  • Просмотров 17790
  • Скачиваний 1396
  • Размер файла 94
    Кб

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

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

Линейной интерполяцией называют интерполяцию алгебраическим двучленом  функции , заданной в двух точках   и  отрезка . В случае если заданы значения в нескольких точках, функция заменяется кусочно-линейной функцией. Для одномерной интерполяции таблично заданных функций в MatLab используется функция  interp1(x,y,xi), которая возвращает вектор yi, содержащий элементы, соответствующие элементам xi и полученные линейной

интерполяцией векторов x и y. Выполним интерполяцию функции  и отображающий график полученной функции: >> x=[0:0.5:5]; >> y=exp(sin(x)); >> xi=[0:0.01:5]; >> yi=interp1(x,y,xi); >> plot(x,y,'*',xi,yi);   График интерполирующей функции на рисунке:                                       Так как при линейной интерполяции точки просто последовательно соединяются отрезками прямых, график интерполирующей кривой

получается не гладким. В этом смысле, гораздо лучшие результаты может дать сплайн-интерполяция. В MatLab кубическая сплайн-интерполяция реализуется следующей функцией: yi=spline(x,y,xi) Реализация сплайн-интерполяции функции : >> x=[0:5]; >> y=exp(sin(x)); >> xi=[0:0.1:5]; >> yi=spline(x,y,xi); >> plot(x,y,'*',xi,yi);   Полученный график на рисунке:       Лабораторная работа №3. Численное дифференцирование. Численное дифференцирование - совокупность