- •1.1. Основные этапы решения задач с помощью эвм
- •1.2. Погрешности результатов численного решения задач
- •1.3. Основные требования к алгоритмам и программному обеспечению
- •2.1. Метод дихотомии (деления отрезка пополам)
- •2.2. Метод хорд
- •2.3. Метод простой итерации
- •2.4. Метод Ньютона
- •2.5. Модификации метода Ньютона
- •3.1. Основные понятия вычислительной линейной алгебры
- •3.2. Некоторые точные методы решения слау
- •3.3. Итерационные методы решения слау
- •3.4. Вычисление собственных значений матрицы
- •4.1. Постановка задачи интерполяции
- •4.2. Полиномиальная интерполяция. Формула Лагранжа
- •4.3. Разделенные разности и интерполяционная формула Ньютона
- •4.4. Кусочно-полиномиальная интерполяция
- •4.4. Программы решения задач интерполяции с помощью Matlab
- •5.1. Численное дифференцирование
- •5.2. Погрешности методов численного дифференцирования
- •5.3. Численное интегрирование. Простейшие методы
- •5.4. Метод Ньютона-Котеса и его модификация
- •5.5. Методы Монте-Карло
- •6.1. Решение пере- и недоопределенных слау
- •6.2. Примеры решение переопределенной слау методом наименьших квадратов Пусть
- •6.3. Метод наименьших квадратов для регрессионного анализа
- •Задание к главе 6
- •7.1. Методы решения задачи Коши
- •7.2. Методы Рунге-Кутта решения задачи Коши
- •7.3. Решение краевой задачи для оду
- •Задания к главе 7
- •8.1. Решения дифференциальных уравнений первого порядка
- •8.2. Решения дифференциальных уравнений параболического типа
- •8.3. Решение дифференциальных уравнений эллиптического типа
- •8.4. Решение дифференциальных уравнений гиперболического типа
4.4. Программы решения задач интерполяции с помощью Matlab
Нахождение коэффициентов интерполяционного полинома
.
Узлы интерполяции составляют вектор размерности , а вектора и , где , имеют вид
, , .
Матрица Вандермонда V может быть найдена с помощью следующей программы
Программа 4.1.
V=ones(m);
x1=x;
for j=2:m,
V(:,j)=x1;
x1=x1.*x;
end
Решая систему линейных алгебраических уравнений , получаем вектор : a=inv(V)*b. Значения полинома (4.13) в точке xc можно вычислить следующим образом:
Программа 4.2
xc=input(‘ xc=? ‘)
p=a(m);
for i=1:(m–1),
p=p*xc+a(m–i);
end
Вычисления можно организовать, найдя сначала вектор, содержащий степени , .
Программа 4.3
xc=input(‘ xc=? ‘)
xv=ones(m,1);
x1=1;
for i=2:m,
x1=x1*xc;
xv(i)=x1;
end
p=sum(a.*xv)
Нахождение коэффициентов интерполяционного полинома
Обозначим коэффициенты полинома следующим образом , , , …, , и рассмотрим вектор-столбец с указанными компонентами. Тогда для вычисления этих коэффициентов нужно выполнить следующую программу.
Программа 4.4
a=ones(m,1);
a(1)=y(1);
x1=x;
y1=y;
for i=2:m,
x1=diff(x1);
y1=diff(y1);
yd=y1./x1;
a(i)=yd(1);
end
Здесь и – соответственно векторы, содержащие узлы и значения функции в этих узлах.
Для равноотстоящих узлов вычисления следует организовать иначе:
Программа 4.5
a=ones(m,1);
a(1)=y(1);
h=x(2)–x(1);
y1=y;
q=1;
for i=2:m,
y1=diff(y1);
q=q*(i–1)*h;
a(i)=y1(1)/q;
end
Вычисление значения полинома в точке xc, как и в случае вычисления значений полинома (4.13), можно организовать двумя способами.
Программа 4.6. Первый способ (с использованием рекурсии)
xc=input(‘ xc=? ‘)
p=a(m);
for i=1:(m–1),
p=p*(xc–x(m–i))+a(m–i);
end
Программа 4.7. Второй способ (с построением вектора произведений )
xc=input(‘ xc=? ‘)
xv=ones(m,1);
x1=1;
for i=2:m,
x1=x1*(xc–x(i–1));
xv(i)=x1;
end
p=sum(a.*xv)
Задания к главе 4
Найти интерполяционный полином для функции , заданной таблицей,
а) используя решение алгебраической системы с матрицей Вандермонда,
б) вычисляя конечные разности.
Построить график интерполяционного полинома. Вычислить значения этой функции при указанных, не входящих в таблицу значениях и аргумента .
4.1.
1,1 |
1,6 |
2,1 |
2,6 |
3,1 |
3,6 |
4,1 |
4,6 | |
1,029 |
1,389 |
1,649 |
1,800 |
1,852 |
1,822 |
1,739 |
1,632 |
4.2.
0,13 |
0,18 |
0,23 |
0,28 |
0,33 |
0,38 |
0,43 |
0,48 | |
0,129 |
0,178 |
0,228 |
0,275 |
0,324 |
0,371 |
0,417 |
0,463 |
.4.3.
1,1 |
1,2 |
1,3 |
1,4 |
1,5 |
1,6 |
1,7 |
1,8 | |
0,119 |
0,089 |
0,066 |
0,048 |
0,034 |
0,024 |
0,016 |
0,011 |
4.4. .
50 |
55 |
60 |
65 |
70 |
75 |
80 |
85 | |
0,285 |
0,319 |
0,223 |
0,042 |
-0,148 |
-0,273 |
-0,283 |
-0,178 |
4.5.
1,1 |
1,1 |
1,2 |
1,3 |
1,4 |
1,5 |
1,6 |
1,7 | |
1,042 |
1,062 |
1,087 |
1,119 |
1,16 |
1,212 |
1,274 |
1,350 |
4.6.
1,8 |
1,9 |
2,0 |
2,1 |
2,2 |
2,3 |
2,4 |
2,5 | |
1,958 |
2,107 |
2,268 |
2,443 |
2,632 |
2,841 |
3,071 |
3,324 |
4.7.
0,75 |
0,8 |
0,85 |
0,90 |
0,95 |
1,00 |
1,05 |
1,10 | |
0,742 |
0,789 |
0,835 |
0,880 |
0,924 |
0,967 |
1,008 |
1,046 |
4.8.
1,70 |
1,75 |
1,80 |
1,85 |
1,90 |
1,95 |
2,00 |
2,05 | |
1,232 |
1,210 |
1,179 |
1,139 |
1,089 |
1,028 |
0,956 |
0,871 |
4.9.
2,70 |
2,75 |
2,80 |
2,85 |
2,90 |
2,95 |
3,00 |
3,05 | |
1,583 |
1,487 |
1,372 |
1,238 |
1,084 |
0,907 |
0,707 |
0,482 |
4.10.
10 |
15 |
20 |
25 |
30 |
35 |
40 |
45 | |
0,985 |
0,966 |
0,940 |
0,906 |
0,866 |
0,819 |
0,766 |
0,707 |
4.11. Для функции построить интерполяционный полином, выбрав узлы и используя значения , и . Вычислить .
4.12. Применяя интерполирование решить следующие уравнения:
а) б) в)
4.13. Используя таблицу, методом обратного интерполирования решить уравнение :
2 |
2,2 |
2,4 |
2,6 | |
3,6269 |
4,4571 |
5,4662 |
9,6947 |
4.14. Используя таблицы, методом обратного интерполирования решить уравнение :
60o |
61o |
62o | |
1,732 |
1,804 |
1,881 |
4.15. Вычислить значение интегрального синуса
при , используя таблицу его значений:
0,37 |
0,42 |
0,47 |
0,52 | |
0,36720 |
0,41591 |
0,46427 |
0,51225 |
5. численное дифференцирование и интегрирование
В прикладных задачах в результате расчетов или измерений получаются таблицы значений, определяющие некоторые функциональные зависимости. Как правило, такие таблицы для получения необходимых для исследователей новых характеристик требуется обрабатывать. Очень часто приходится находить производные или интегралы от соответствующих этим зависимостям функций. Численное дифференцирование и интегрирование применяется в тех случаях, когда производную или интеграл от функции трудно или невозможно вычислить аналитически, а также в случае, когда сама функция задана таблицей. Кроме этого формулы численного дифференцирования используются при разработке вычислительных методов решения дифференциальных и нелинейных уравнений, поиска точек экстремума и т.д. Необходимо отметить, что формулы численного интегрирования в целом хорошо обусловлены, т.е. погрешность задания функции оказывает контролируемое влияние на точность вычисления.