Разработка программы, выполняющей интерполирование методом Ньютона
Сравнение графиков заданной функции и интерполяционных полиномов на определенном интервале при двух вариантах выбора узлов (равномерно с шагом, по Чебышеву). Создание программы на основе метода Ньютона для построения графиков и расчета значений функции.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 07.07.2012 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
1. Постановка задачи
2. Исследование методов решения
2.1 Методы интерполяции
2.2 Методы нахождения узлов
3. Разработка алгоритма
4. Исходный код
5. Тестирование программы
6. Исследование
Выводы
1. Постановка задачи
Сравнить графики заданной функции f(x) (см. рис. 1) и интерполяционных полиномов Pn(x) для n = 2, 6, 14 на интервале при двух вариантах выбора узлов:
a. Равномерно с шагом
b. По Чебышеву
Данные: a = 1; b = -1; c = -1; d = 1.
Использовать формулу Ньютона
Рис. 1. График заданной функции
2. Исследование методов решения
2.1 Методы интерполяции
Интерполяция - один из вариантов аппроксимации, иными словами замены исходной функции другой, близкой функцией, удобной для проведения расчетов.
1. Метод Лагранжа
Для построения интерполяционных полиномов Лагранжа используют следующие расчетные формулы, где Ln(x) - полином Лагранжа степени n:
где уk - значение исходной функции в узле k, k = 0чn;
;
где - полином степени n;
;
где xi- узлы, на которых строится интерполяционный полином, i = 0чn.
L(x) может иметь степень не больше n.
2. Метод Ньютона
Интерполяционная формула Ньютона, используемая в дальнейшем в программе:
где
N(x) может иметь степень не больше n.
2.2 Методы нахождения узлов
1. С равномерным распределением
Для нахождения узлов с равномерным шагом используется формула:
где i - номер узла, xi - i-ый узел, с - начальная точка интерполяции, d - конечная точка интерполяции, n -общее количество выбираемых узлов. i от 1 до n+1
2. По Чебышёву
Для нахождения узлов Чебышева используется формула:
где i - номер узла, xi - i-ый узел, c - начальная точка интерполяции, d - конечная точка интерполяции, n -общее количество выбираемых узлов.
3. Разработка алгоритма
В данной работе мы будет использовать метод Ньютона.
1) Дано:
2) Построение заданной функции посредством matlab
3) Формирование массива узлов через равномерный шаг
4) Нахождение соответствующих значений функции для узлов
5) Расчет значений полинома Ньютона в узлах через равномерный шаг
6) Построение графика функции для равномерного шага
7) Построение графика погрешности между функцией и полиномом
8) Формирование массива узлов Чебышева
9) Расчет значений функции в узлах Чебышева
10) Расчет полинома Ньютона в узлах Чебышева
11) Построение графика функции для узлов Чебышева
12) Построение графика погрешности между функцией и полиномом
13) Вывод полученных графиков на экран
Описание функций программы:
Основные функции и переменные, использованные в реализованной программе:
r = raznost(x,y) - функция расчета разделённых разностей для полинома Ньютона
newton(x,y,xn) - функция расчета полинома Ньютона
y = ff(x,c,d,a,b) - построение заданной функции
xch - расчет узлов Чебышева
xrav - расчет равномерных узлов
ych - значения в узлах Чебышева
yrav - значения соответствующие равномерным узлам
n - количество узлов
plot(x,y) - построение графика
subplot(1,2,1) - подграфик номер один(из двух в окне)
`*' - отмечаем звездочками узлы полинома
pogr = yu1- yravn - погрешность метода равномерных узлов
pogr = yu1-ychn - погрешность метода Чебышева
4. Исходный код
интерполяционный полином ньютон график
function kursovaya1
a = 1;
b = -1;
c = -1;
d = 1;% начальные условия
n = 35;% количество узлов
s = 50;
for i = 1:s + 1
z(i) = c + (i - 1) * (d - c)/s ;% z(i) = c + (i - 1) * (d - c)/s;% абсциссы
end
yu1 = ff(z, c, d, a, b);% ординаты
for i = 1:n + 1% цикл
xrav(i) = c + (d - c) * (i - 1)/n;% 3) узлы посчитанные методом равномерного шага
end
yrav = ff(xrav, c, d, a, b);% 4) значения узлов равномерного шага
for k = 1:length(z)
yravn(k) = newton(xrav, yrav, z(k));% 5) значения многочлена Ньютона в узлах
end
% 6) график 1
figure(1);
subplot(1, 2, 1);% подграфик
plot(z, yu1);
grid on;
hold on;% построение исходной функции
plot(xrav, yrav, '-о');
grid on;
title('Равномерный Ньютон');hold on;
pogr = yu1 - yravn;% погрешность равномерных узлов
subplot(1, 2, 2)% подграфик
plot(z, pogr, '-о');
grid on;
title('Погрешность');% 7) погрешность между функцией и полиномом
% 8) переходим к методу Чебышева
for i = 1:n + 1
xch(i) = (c + d)/2 + ((d - c)/2) * cos(((2 * i - 1) * pi)/(2 * (n + 1)));% узлы посчитанные методом Чебышева
end
ych = ff(xch, c, d, a, b);% 9) значения узлов для Чебышева
% 11) график 2
figure(2);
subplot(1, 2, 1)%подграфик
plot(z, yu1);
grid on;
hold on;%построение исходной функции
for k = 1:length(z)
ychn(k) = newton(xch, ych, z(k));% 10) значения многочлена Ньютона в узлах Чебышева
end
grid on; title('Ньютон по Чебышёву');hold on;
pogr = yu1 - ychn;% погрешность метода Чебышева
plot(xch, ych, '-о');
hold on;
grid on;
subplot(1, 2, 2)% подграфик
plot(z, pogr, '-о');
grid on;
title('Погрешность');% 12) погрешность между функцией и полиномом
% исходная функция
function y = ff(x, c, d, a, b)
for i = 1:length(x);
if (x(i) >= c)
if (x(i) < 0)
y(i) = - x(i)^2;
end;
end
if (x(i) >= 0)
if (x(i) <= d)
y(i) = x(i)^2;
end;
end;
end
% разделённые разности для Ньютона
function r = raznost(x, y)
p = 1;r = 0;
for i = 1:length(x);
for j = 1:length(x);
if i ~= j
p = p * (1/(x(i) - x(j)));
end;
end
r = r + p * y(i);p = 1;
end
% Ньютон
function N = newton(x, y, xn)
N = 0;w = 1;
for i = 1:length(x);
N = N + raznost(x(1:i), y(1:i)) * w;
w = 1;
for j = 1:i
w = w * (xn - x(j));
end;
end
5. Тестирование программы
Проведём отладку и тестирования для следующего количества узлов интерполирования:
n = 1,5,13.
n = 1
n = 5
n = 13
Возьмём количество узлов n = 51, чтобы понять, как ведёт себя функция и ее погрешность при больших количествах узлов интерполирования.
Из рисунков видно, что графики полинома и функции совпадают в узлах интерполирования. Это подтверждает правильность проведенных вычислений.
6. Исследование
1) Исследование зависимости погрешности интерполирования в зависимости от количества узлов:
Из графиков:
Количество узлов |
Максимальная погрешность узлов Чебышева |
Максимальная погрешность равномерных узлов |
|
2 |
0.3 |
0.25 |
|
6 |
0.015 |
0.035 |
|
14 |
0.22*10-2 |
0.22 |
|
51 |
-820000 |
8200000 |
В результате тестирования можно сделать вывод, что при 5 и 13 узлах интерполирования метод Чебышева даёт наиболее точный результат, чем метод равномерных узлов (погрешность меньше).
2) Исследование сходимости метода интерполяции.
Теоретически для чебышевской сетки сходимость (при числе узлов n стремящемся к бесконечности) имеет место быть. А при равномерной сетке сходимость может отсутствовать.
При увеличении числа узлов для метода Чебышева при количестве узлов, стремящемся к бесконечности, погрешность стремится к нулю, при этом, при достаточно большом количестве узлов погрешность больше, чем при маленьком числе узлов. А для равномерных узлов погрешность стремится к бесконечности. Что теоретически подтверждается для равномерных узлов и не очень для Чебышева.
Выводы
В ходе работы была реализована программа, выполняющая интерполирование методом Ньютона.
Также была проведена отладка и тестирование программы, исследованы результаты тестирования, а именно зависимость погрешности интерполяционного полинома от количества узлов интерполирования и от способа выбора узлов.
По результатам тестирования можно сделать вывод о большей точности метода Чебышева, так как при большом количестве узлов, точность метода возрастает.
Размещено на Allbest.ru
Подобные документы
Разработка программы, применяемой для интерполяции таблично заданной функции методом Ньютона. Метод структурного программирования для облегчения написания и отладки программы, повышения ее наглядности, читаемости. Применение языка программирования Pascal.
курсовая работа [371,8 K], добавлен 05.01.2010Интерполирование функций методом Лагранжа. Получение функциональной зависимости по экспериментальным данным. Близость интерполяционного многочлена к заданной функции. Интерполяционный полином в форме Лагранжа. Построение интерполяционных графиков.
лабораторная работа [315,8 K], добавлен 24.05.2014Интерполирование рабочих точек в пакете Mathcad с помощью полиномов (канонического, Лагранжа и Ньютона) и сплайнов (линейного, квадратичного, кубического). Реализация программы для решения системы линейных алгебраических уравнений на языке Pascal.
лабораторная работа [202,8 K], добавлен 15.11.2012Рассмотрение процесса разработки системы нахождения нулей функции. Изучение вычисления корня уравнения методом Ньютона или касательных. Основы проектирования графического интерфейса пользователя и описание алгоритма, тестирование готовой программы.
курсовая работа [1,2 M], добавлен 23.02.2014Задача интерполирования алгебраическими многочленами. Рассмотрение интерполяционных формул Лагранжа и Ньютона. Расчет гиперболического синуса и создание демонстративной программы на Delphi 7, которая наглядно показывает достоверность решения методов.
курсовая работа [312,7 K], добавлен 10.08.2014Разработка программы, которая по заданной самостоятельно функции будет выполнять интегрирование методом прямоугольников. Блок-схема алгоритма вычисления интеграла (функция rectangle_integrate). Экспериментальная проверка программы, ее текст на языке C.
курсовая работа [232,0 K], добавлен 27.05.2013Модифицированный метод Ньютона при заданных начальных условиях, где задаётся погрешность вычисления. Вычисления корня уравнения при помощи программы. Построения графика зависимости приближений двух координат, при котором задаются промежутки и константы.
реферат [14,1 K], добавлен 29.01.2009Пример расчета экстремума функции методом прямого поиска с дискретным шагом. Результаты отладки программы на контрольных примерах. Составление инструкции по использованию программы. Обработка результатов исследований визуальными средствами Excel.
курсовая работа [1,0 M], добавлен 20.05.2012Сущность и особенности применения метода средних треугольников. Порядок расчета по методу трапеций и Ньютона-Котеса. Формула Чебышева и значения узлов ее квадратуры. Составление блок-схемы программы и ее основных процедур различными численными методами.
курсовая работа [482,7 K], добавлен 03.01.2010Интерполяция функции с равноотстоящими узлами - прогнозирование в Exel. Составление программы для вычисления значений функции в заданных точках при помощи полинома Ньютона. Решение систем уравнений в Exel методом обратной матрицы и простых итераций.
контрольная работа [34,0 K], добавлен 19.03.2008