ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.06.2025
Просмотров: 1085
Скачиваний: 1
41
Вприложении MathCAD выполните следующие действия:
1.Введите матрицы А и В с помощью кнопки панели инструментов Matrix
æ −0.77 |
−0.04 |
0.21 |
−0.18 |
ö |
æ −1.24 |
ö |
|||||
ç |
0.45 |
−1.23 |
0.06 |
0 |
÷ |
ç |
0.88 |
÷ |
|||
A := |
ç |
÷ |
B := |
ç |
÷ |
||||||
ç |
0.26 |
0.34 |
−1.11 |
0 |
÷ |
ç |
−0.62 |
÷ |
|||
ç |
0.05 |
−0.26 |
0.34 |
−1.12 |
÷ |
ç |
1.17 |
÷ |
|||
è |
ø |
è |
ø |
||||||||
2. Вычислите ранг исходной матрицы
rank(A)=4
3.Вычислите ранг расширенной матрицы. Встроенная функция augment(A,B) объединяет две матрицы, имеющие одинаковое количество
строк, в одну
rank(augment(A,B))=4
4. Найдите решение системы матричным методом Х:=А-1×В; 5. Получили результат
é |
2.048 |
ù |
ê |
ú |
|
ê0.086 |
ú |
|
x = ê |
ú |
|
ê |
1.065 |
ú |
ê |
ú |
|
ê |
ú |
|
ë- 0.65û
6. Найдите решение системы с помощью функции lsolve(А, В)
Х1:=lsolve(А, В)
é |
2.048 |
ù |
ê |
ú |
|
ê0.086 |
ú |
|
x1 = ê |
ú |
|
ê |
1.065 |
ú |
ê |
ú |
|
ê |
ú |
|
ë- 0.65û |
||
7. Сравните результаты. |
||
Задания к данной теме приведены в приложении Б.
42
3 МЕТОДЫ ПРИБЛИЖЕНИЯ ФУНКЦИЙ
3.1 Понятие о приближении функций
Пусть величина y является функцией аргумента x. Вместе с тем на практике часто неизвестна явная связь между y и x, т. е. невозможно записать эту связь в виде некоторой зависимости y = f(x). Наиболее распространенным и практически важным случаем является задание этой связи в виде некоторой таблицы {xi, yi}. Это означает, что дискретному множеству значений аргумента {xi} поставлено в соответствие множество значений функции {yi} (i = 0, 1, …, n). На практике нам могут понадобиться значения величины y в других точках, отличных от узлов {xi}. Этой цели служит задача о приближении функций: данную функцию f(x) требуется приближенно заменить некоторой функцией ϕ(x) так, чтобы отклонение, в некотором смысле, ϕ(x) от f(x) в заданной области было наименьшим. Способы оценки близости приближений порождают различные методы интерполирования и аппроксимации функций.
3.2 Интерполирование функций
Задача интерполирования заключается в следующем. На отрезке [a, b] заданы n+1 точки x0, x1, …, xn, которые называются узлами интерполяции, и значения некоторой функции f(x) в этих точках
f(x0) = y0, f(x1) = y1, …, f(xn) = yn .
Требуется построить функцию ϕ(x) (интерполирующая функция), принадлежащую известному классу и принимающую в узлах интерполяции те же значения, что и f(x), т. е. такую, что
ϕ(x0) = y0, ϕ(x1) = y1, …, ϕ(xn) = yn.
Геометрически это означает, что нужно найти кривую y = ϕ(x) некоторого определенного типа, проходящую через заданную систему точек Mi(xi, yi) (i = 0, 1, …, n).
Полученную интерполяционную формулу y = ϕ(x) обычно используют для приближенного вычисления значений данной функции f(x) для значений аргумента x, отличных от узлов интерполирования. Если при этом x [x0, xn], то такую операцию называют интерполированием функции f(x), иначе – экстраполировани- ем.
3.2.1 Интерполяционная формула Лагранжа
Пусть на отрезке [a, b] даны n+1 различных значений аргумента: x0, x1, …, xn и известны для y = f(x) соответствующие значения:
f(x0) = y0, f(x1) = y1, …, f(xn) = yn .
Требуется построить многочлен Ln(x) степени не выше n, имеющий в заданных узлах x0, x1, …, xn те же значения, что и функция f(x), т. е. такой, что
43
Ln(xi) = yi (i = 0, 1, …, n).
Будем искать интерполяционный многочлен в виде линейной комбинации многочленов степени n:
Ln(x) = y0l0(x) + y1l1(x) + …+ ynln(x). |
(1) |
При этом потребуем, чтобы каждый многочлен li(x) обращался в нуль во всех узлах интерполяции, за исключением одного i-го, где он должен равняться единице. Легко проверить, что этим условиям отвечает многочлен вида
n
Õ( x − x j )
j =0
li(x) = jn¹i , (2)
Õ( xi − x j )
j =0 j ¹i
где i = 0, 1, …, n.
Подставляя в формулу (1) выражение li(x) из формулы (2), находим
n |
|||||
Õ( x − x j ) |
|||||
n |
j =0 |
||||
j ¹i |
|||||
Ln(x) = å yi |
. |
(3) |
|||
n |
|||||
i=0 |
Õ( xi − x j ) |
||||
j =0 j ¹i
Формула (3) определяет интерполяционный многочлен Лагранжа.
Пример 1. Составить алгоритм и программу на языке Turbo Pascal интерполирования функции f(x) на отрезке многочленом Лагранжа по системе 5 узлов в точках: M1(1.05, 2.8577), M2(1.09, 2.9743), M3(1.13, 3.0957), M4(1.15, 3.1582), M5(1.17, 3.2220).
1.Определить исходные данные: число узлов интерполяции n + 1 = 5, вектор абсцисс x = (1,05; 1,09; 1,13; 1,15; 1,17); вектор ординат y = (2.8577, 2.9743, 3.0957, 3.1582, 3.2220).
2.Ввести значение абсциссы C – точку для интерполяции.
n
3. Вычислить значение полинома Лагранжа P = åyk Lk .
k=0
3.1.Присвоить P = 0.
3.2.Организовать цикл, изменяя параметр k = 0, 1, ..., n.
n |
n |
3.2.1. Вычислить значение Lk = Õ( C − x j ) / Õ( xk − x j ). |
|
j=0 |
j=0 |
j¹k |
j¹k |
3.2.1.1. Определить Lk = 1.
44
3.2.1.2.Организовать цикл, изменяя параметр j = 0, 1, ..., n.
3.2.1.2.1.Если j¹k вычислить Lk = Lk*(C–xj)/(xk – xj).
3.2.1.3.Конец цикла по параметру j.
3.2.2. Вычислить P = P + yk * Lk. 3.3. Конец цикла по параметру k.
4.Вывод результата P – значение полинома Лагранжа в точке x = C.
5.Конец вычислений.
Программа интерполирования функции полиномом Лагранжа
Program Lagrang; uses crt;
const n=4;
{описание узлов интерполяции}
x:array[0..n] of real = (1.05, 1.09, 1.13, 1.15, 1.17); y:array[0..n] of real = (2.8577, 2.9743, 3.0957, 3.1582, 3.2220); var
k,j:byte;
P,L,c:real; begin
writeln('Введите значение х - точку для интерполирования'); readln(c);
P:=0; {для результата интерполирования}
{вычисление значения полинома Лагранжа в точке x=c} for k:=0 to n do
begin L:=1;
for j:=0 to n do if j<>k then
L:=L*(c-x[j])/(x[k]-x[j]); P:=P+y[k]*L;
end;
write('x=',c:7:2,' P=',P:7:4);
writeln(', табличное значение=',exp(c):7:4); readkey;
end.
3.2.2 Интерполяционные формулы Ньютона
Рассматриваемые здесь интерполяционные формулы Ньютона используются в случае равноотстоящих значений аргумента, т. е. xi+1 – xi = h = const (i = 0, 1, ..., n). Величина h называется шагом.
Введем понятие конечных разностей. Пусть функция y = f(x) задана табличными значениями yi = f(xi) для системы равноотстоящих точек xi.
Разностями первого порядка функции называются выражения вида
45
∆yi = yi+1 – yi (i = 0, 1, …, n–1).
Разностями второго порядка функции называются выражения вида
∆2yi = ∆(∆yi )= ∆yi+1 – ∆yi (i = 0, 1, …, n–1).
Аналогично составляются разности порядка k
∆kyi = ∆(∆k–1yi )= ∆k–1yi+1 – ∆k–1yi (i = 0, 1, …, n–1).
Отметим, что для вычисления k-ой разности ∆kyi нужно знать k+1 членов y: yi+1, ...
yi+k данной последовательности.
Перейдем теперь к построению интерполяционного многочлена Ньютона. В соответствии с задачей интерполирования функции требуется подобрать многочлен Pn(x) степени не выше n, принимающий в точках xi значения
Pn(xi) = yi (i = 0, 1, …, n). |
(4) |
Этот многочлен будем искать в следующем виде: |
|
Pn(x) = a0 + a1(x–x0)[1] + a2(x–x0)[2] + …+ an(x–x0)[n], |
(5) |
где |
|
(x – x0)[k] = (x – x0)(x – x1)...(x – xk–1). |
Задача состоит в определении коэффициентов ak (k = 0, 1, …n) многочлена Pn(x). Полагая в формуле (5) x = x0, получаем
Pn(x0) = a0,
откуда, с учетом значения многочлена (4), a0 = y0.
Полагая в формуле (5) x = x1, получаем
Pn(x1) = a0 + a1(x1 – x0) = a0 + a1h = y1,
откуда
a1 = |
y1 − a0 |
= |
y1 − y0 |
= |
y0 . |
|
h |
h |
|||||
h |
Полагая в формуле (5) x = x2, получаем
Pn(x2) = a0 + a1(x2 – x0) + a2(x2 – x0)(x2 – x1) = a0 + 2a1h + 2a2h2 = y2,
откуда
y2 − a0 − 2a1h |
y2 |
− y0 − 2 |
y0 |
h |
2 |
y0 |
|||||
a2 |
= |
= |
h |
= |
. |
||||||
2h2 |
2h2 |
||||||||||
2h2 |
|||||||||||
Аналогично можно найти и другие коэффициенты. Общая формула имеет вид
ak = |
k y |
(k = 0, 1, …, n). |
0 |
||
k!hk |