- •Министерство образования рф
- •Содержание
- •Введение Математическое моделирование и вычислительный эксперимент
- •Численные методы алгебры и анализа
- •1 Решение систем линейных алгебраических уравнений
- •1.1 Точные методы
- •1.1.1 Метод Гаусса
- •1.2 Итерационные методы решений систем алгебраических уравнений
- •1.2.1 Метод Якоби (простых итераций)
- •Рассмотрим систему
- •Для решения системы рассмотрим одношаговый стационарный метод
- •2 Плохо обусловленные системы линейных алгебраических уравнений
- •Погрешность возросла примерно в 237 раз. Число обусловленности системы (2.1) приблизительно равна 237.
- •2.1 Метод регуляризации для решения плохо обусловленных систем
- •Тогда ее можно представить как
- •2.2 Метод вращения (Гивенса)
- •В матричной форме получаем , где,.
- •3 Решение нелинейных уравнений
- •3.1 Метод простых итераций
- •Пример. Рассмотрим предыдущий пример и приведем систему к удобному для итераций виду
- •3.2 Метод Ньютона
- •Формула (3.7) и есть итерационная формула метода Ньютона для приближенного решения системы нелинейных уравнений.
- •3.2.1 Сходимость метода
- •4 Решение проблемы собственных значений
- •4.1 Прямые методы
- •У которой, как известно, собственными числами являются диагональные элементы.
- •4.1.4 Метод итераций определения первого собственного числа матрицы.
- •5 Задача приближения функции
- •Пример. При mn система функций 1,х,х2,…,хm линейно независима в точках х0,х1,…,хn, если они попарно различны.
- •5.1 Интерполяционный многочлен Лагранжа
- •5.1.1 Оценка погрешности интерполяционного многочлена
- •5.2 Интерполяционные полиномы Ньютона
- •Аналогично третья конечная разность
- •Вычислим первую конечную разность многочлена Pn(X) в точке х0
- •5.3 Интерполирование сплайнами
- •5.3.1 Построение кубического сплайна
- •5.4 Аппроксимация функций методом наименьших квадратов
- •6 Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений исистем дифференциальных уравнений
- •6.1 Семейство одношаговых методов решения задачи Коши
- •6.2 Многошаговые разностные методы решения задачи Коши для обыкновенных дифференциальных уравнений
- •Будем искать его решение в виде функции
- •6.3 Численное интегрирование жестких систем обыкновенных дифференциальных уравнений
- •6.4 Краевые задачи для обыкновенных дифференциальных уравнений
- •6.5 Решение линейной краевой задачи
- •Причем- для первой задачи.
- •6.6 Решение двухточечной краевой задачи для линейного уравнения второго порядка сведением к задаче Коши
- •Отсюда следует, что
- •6.7 Методы численного решения двухточечной краевой задачи для линейного уравнения второго порядка
- •Подставляя это выражение в уравнение (6.54), получим
- •7 Приближенное решение дифференциальных уравнений в частных производных
- •7.1 Метод сеток для решения смешанной задачи для уравнения параболического типа (уравнения теплопроводности)
- •Задано начальное условие
- •7.2 Решение задачи Дирихле для уравнения Лапласа методом сеток
- •7.3 Решение смешанной задачи для уравнения гиперболического типа методом сеток
- •Лабораторная работа № 1 Решение систем линейных алгебраических уравнений
- •Порядок выполнения лабораторной работы:
- •Текст программы:
- •Варианты заданий
- •Лабораторная работа № 3
- •Решение нелинейных уравнений и систем нелинейных уравнений
- •Порядок выполнения лабораторной работы:
- •Метод Леверрье
- •Метод Фадеева
- •Текст программы:
- •Метод Крылова
- •Метод qr-разложения
- •Текст программы:
- •Метод обратных итераций
- •Текст программы:
- •Варианты заданий
- •Вычисления по программе привели к следующим результатам:
- •Квадратурная формула Гаусса
- •Дифференцирование с помощью сплайнов
- •Список использованной литературы
Решение нелинейных уравнений и систем нелинейных уравнений
Метод простых итераций
Порядок выполнения лабораторной работы:
Найти нулевое приближение решения;
Преобразовать систему f(x) = 0 к виду х = Ф(х);
Проверить условие сходимости метода.
Схема алгоритма приведена на рисунке 20.
Пример. Решить методом простых итераций систему
В качестве нулевого приближения выберем точку х=1, у = 2.2, z= 2. Преобразуем систему к виду
Текст программы:
PROCEDURE Iteraz;
Var I,J,K,J1 : Integer;
S,U,U1 : Real;
X2,X3,Eps : Real;
R : tvector;
Begin
Eps:=0.01; X2:=0.0; K:=1;
Repeat
For J:=1 To Nn Do Begin
S:=0.0;
For I:=1 To Nn Do Begin S:=S+Aa[i,j]*Xx[i]; End;
R[j]:=S; End;
For J1:=1 To Nn Do Begin Xx[j1]:=R[j1]; End; X3:=Xx[1];
For I:=1 To Nn Do Begin If (Xx[i]>=X3) Then X3:=Xx[i]; Еnd;
For I:=1 To Nn Do Begin Xx[i]:=Xx[i]/X3; End;
X1:=X3; U:=Abs(X2-X1); U1:=U/Abs(X1);
If (U1>=Eps) Then X2:=X1;
K:=K+1;
Until ((K>=50)or(U1<=1e-4)) End;
Вычисления по программе привели к следующим результатам:
X(1)= 1.1132 Х(2)= 2.3718 Х(3)= 2.1365
Количество итераций:5
Рисунок 20 - Схема алгоритма метода простых итераций
Метод Ньютона
Программу можно использовать для решения систем не выше десятого порядка.
Входные параметры: n— число уравнений системы (совпадает с числом неизвестных),n£10; х—массив изnдействительных чисел, содержащий начальное приближение решения;f— имя внешней процедурыf(n, х, у), вычисляющей по заданным значениям х, расположенным в элементах массива х, текущие значения функцииfи размещающей их в элементах массива у;g— имя внешней процедурыg(n,x,d), вычисляющей по заданным значениям х из массива х элементы матрицы,которая размещается в массивеdразмерностиnxn;eps— значение условия окончания итерационного процесса.
Выходные параметры: х — массив из nдействительных чисел (он же входной) содержит при выходе из подпрограммы приближенное значение решения;k—количество итераций.
Порядок выполнения лабораторной работы:
Определить из геометрических соображений начальное приближение решения.
Составить подпрограммы fиgдля вычисления значенийfи.
Составить головную программу, содержащую описание массива х, имен fиg, присвоение фактических значений параметрамn, х,eps, обращение к ТNUTONи печать результатов.
4. Провести вычисления на ЭВМ.
Схема алгоритма приведена на рисунке 21.
Пример. Решить систему уравнений
Текст программы:
procedure TNuton;
var a: T2DArray; i, j: byte; finish: boolean;
begin
IterCount:= 0;
SetLength(a, UrCount);
for i:= 0 to High(a) do SetLength(a[i], UrCount + 1);
repeat { Заполнение матрицы частных производных }
for i:= 0 to High(a) do begin
for j:= 0 to High(a[i])-1 do a[i, j]:= DerivativeFn(i, j, Results);
a[i, High(a[i])]:= -Poliz.ExternFn(i, Results);
end; { Решение полученной СЛАУ методом Гаусса }
SetLength(Gauss.Base, Length(a));
for i:= 0 to High(a) do begin
SetLength(Gauss.Base[i], Length(a[i]));
for j:= 0 to High(a[i]) do
Gauss.Base[i, j]:= a[i, j]; end; try
Gauss.Solve;
except
raise Exception.Create('Данную систему этим методом решить невозможно!');
end; { Получение очередного приближения решения СНАУ }
finish:= false;
for i:= 0 to High(Results) do begin
Results[i]:= Results[i] + Gauss.Results[i];
if not finish then finish:= (Abs(Gauss.Results[i]/Results[i]) > Eps);
end; inc(IterCount);
until not finish;
end;
В результате вычисления по программе получены следующие результаты:
X(1)= 1.1132 Х(2)= 2.3718 Х(3)= 2.1365
Количество итераций:4
Рисунок 21 - Схема алгоритма метода Ньютона
Варианты заданий
Таблица 4
1 |
|
16 | |
2 |
17 | ||
3 |
|
18 |
sin(y+l)-x=l,2 2y+cos x = 2. |
4 |
sinу+2х=2 cos(x-1)+y = 0,7
|
19 |
sin(y+0,5)-x=l cos(x-2)+y =0 |
5 |
sin(y-l)+x=l,3 y-sin(x+l)=0,8 |
20 |
cos(y+0,5)-x = 2 sin x —2y= 1 |
6 |
sin(x+l)-y=l 2x+cos y = 2 |
21 |
Sin x+2y= 1,6 cos(y-1)+x=l |
7 |
sin(x+0,5)-y=1,2 cos(y-2)+x = 0 |
22 |
Cos(x-l)+y = 0,5 x –cos y = 3 |
8 |
cos x+y= 1,5 2x-sin(y-0,5)=l |
23 |
Cos(x+0,5)+у = 0,8 sin y — 2x=l,6 |
9 |
2y-cos(x+l)=0 x+sin y= -0,4 |
24 | |
10 |
cos(y-l)+x=0,5 y-cos x = 3
|
25 |
cos y+x=l,5 2y-sin(x-0,5)=l |
11 |
cos(y+0,5) + x=0,8 sin x-2y=l,6
|
26 |
2x-cos(y+l) = 0 y+sin x= -0,4 |
12 |
sin(y + 2)-x=l,5 y+cos(x-2)=0,5.
|
27 |
cos(x-l)+y=0,8 x—cos y=2 |
13 |
Cos x+y= 1,2 2x-sin(y-0,5) = 2.
|
28 |
cos(x+0,5)+y=l siny—2x=2 |
14 |
Sin(x-1)+y= 1,5 х - sin(y+ 1)= 1
|
29 |
sin(у+1)-х=1 2y+cos x = 2 |
15 |
Cos(y-l)+x=0,8 y-cos x=2.
|
30 |
cos(x-l)+y=l sin y+2x= 1,6 |
Тема лабораторной работы №4 для контроля знаний проиллюстрирована контрольно – обучающей программой.
Лабораторная работа № 5
Решение проблемы собственных значений и собственных векторов
Точные методы