- •Министерство образования рф
- •Содержание
- •Введение Математическое моделирование и вычислительный эксперимент
- •Численные методы алгебры и анализа
- •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-разложения
- •Текст программы:
- •Метод обратных итераций
- •Текст программы:
- •Варианты заданий
- •Вычисления по программе привели к следующим результатам:
- •Квадратурная формула Гаусса
- •Дифференцирование с помощью сплайнов
- •Список использованной литературы
Метод Крылова
Входные параметры: n—целое положительное число, равное порядку n системы; а — массив изnхnдействительных чисел, содержащий входную матрицу.
Выходные параметры: q—массив изnдействительных чисел при выходе из программы содержит решение системы.
Схема алгоритма приведена на рисунке 24.
Пример. Вычислить собственные значения и собственные вектора матрицы
|2 2 –2|
|2 5 –4|
|-2 –4 5|
Текст программы:
PROCEDUREKrylov(Nn:integer;A:TMatr;VarY:TVector);
Label 2;
Var I,J,K,T,Nn1 :Integer;
yy :TVector ;
aa :TMatr ;
s,c,q,p,h,d,u,
m,v,f,w,yyy,z,
l,r,x,aaa,b : Real ;
Begin
form3.Caption:='Крылов';
Nn1:=Nn;
For I:=1 To Nn Do Yy[i]:=I*Trunc(10*ranDom);
2:For I:=Nn Downto 1 Do Begin
Y:=Yy;
For J:=1 To Nn Do Aa[j,i]:=Yy[j];
For J:=1 To Nn Do Begin
S:=0;
For K:=1 To Nn Do S:=S+A[j,k]*Y[k];
Yy[j]:=S; End;
End;
For I:=1 To Nn Do Y[i]:=-Yy[i];
Simq(Nn1,Aa,Y,K);
If(K=1) Then Begin
For I:=1 To Nn Do Yy[i]:=I*I*trunc(7*ranDom);
Goto 2;
End;
End;
Рисунок 24 - Схема алгоритма метода Крылова
Вычисления по программе привели к следующим результатам:
Собственные числа Собственные вектора
.10000Е+01 -.94281Е+00 .23570Е+00 -.23570Е+00
.10000Е+02 -.33333Е+00 -.66667Е+00 .66667Е+00
.10000Е+01 .00000Е+00 -.70711Е+00 -.70711Е+00
Варианты заданий для нахождения собственных значений и собственных векторов матрицы приведены в таблице 5. Тема лабораторной работы №5 для контроля знаний проиллюстрирована контрольно – обучающей программой.
Лабораторная работа № 6
Решение проблемы собственных значений и собственных векторов
Итерационные методы
Метод qr-разложения
Входные параметры: nn—целое положительное число, равное порядку n системы; а — массив изnхnдействительных чисел, содержащий входную матрицу.
Выходные параметры: R_1,R_2—массив изnдействительных чисел при выходе из программы содержит решение системы.
Пример. Вычислить собственные значения и собственные вектора матрицы
|2 2 –2|
|2 5 –4|
|-2 –4 5|
Текст программы:
PROCEDUREQr(VarNn:Integer;VarA:Tmatr;VarR_1:Tvector;VarR_2:Tvector);;
Var
I,J,K,L,M,Na,Its : Integer;
I1,M1,N1,L1,N : Integer;
M3,U1,U11,U2 : Real;
Q,P,R,S,T,U,X,Y,Z,W : Real;
Aa: tMatr;
r1,r2:tvector;
Label NexTw,NexTit,Cont_1,Cont_2,Cont_3;
Label Onew,TwOw,Fin;
Begin
Aa:=A; N:=Nn;
for i:=0 to Nn do
begin r1[i]:=0; r2[i]:=0; end;
T:=0.0;
NexTw:
If (N=0) Then Goto Fin;
Its:=0; Na:=N-1; M3:=1.0e-11;
NexTit:
For L:=N DownTo 2 Do Begin
U:=Abs(Aa[l,l-1]); U1:=M3*(Abs(Aa[l-1,l-1])+Abs(Aa[l,l]));
If (U<=U1) Then Goto Cont_1;
End;
L:=1; Cont_1:
X:=Aa[n,n]; If(L=N) Then Goto Onew;
Y:=Aa[na,na]; W:=Aa[n,na]*Aa[na,n];
If(L=Na) Then Goto Twow; If(Its=30) Then Goto Fin;
If((Its=10)And(Its=20)) Then
Begin
T:=T+X;
For I:=1 To N Do Begin
Aa[i,i]:=Aa[i,i]-X; End;{}
S:=Abs(Aa[n,na])+Abs(Aa[na,n-2]);
X:=0.75*S; Y:=0.75*S; W:=-0.4375*S*S;
End;
Its:=Its+1;
For M:=N-2 Downto L Do Begin
Z:=Aa[m,m]; R:=X-Z;
S:=Y-Z; P:=(R*S-W)/Aa[m+1,m]+Aa[m,m+1];
Q:=Aa[m+1,m+1]-Z-R-S; R:=Aa[m+2,m+1];
S:=Abs(P)+Abs(Q)+Abs(R);
P:=P/S; Q:=Q/S; R:=R/S;
If(M=L) Then Goto Cont_2;
U11:=Abs(Aa[m,m-1])*(Abs(Q)+Abs(R));
U2:=M3*Abs(P)*(Abs(Aa[m-1,m-1])+Abs(Z)+Abs(Aa[m+1,m+1]));
If(U11<=U2) Then Goto Cont_2;
End;
Cont_2: For I:=M+2 To N Do Begin Aa[i,i-2]:=0.0; End;
For I:=M+3 To N Do Begin Aa[i,i-3]:=0.0; End;
For K:=M To Na Do Begin
If (K<>M) Then Begin;
P:=Aa[k,k-1]; Q:=Aa[k+1,k-1]; If(K<>Na) Then R:=Aa[k+2,k-1]
Else R:=0.0;
X:=Abs(P)+Abs(Q)+Abs(R);
If(X=0.0) Then Goto Cont_3;
P:=P/X; Q:=Q/X; R:=R/X;
End;
S:=Sqrt(P*P+Q*Q+R*R);
If(P<0.0) Then S:=-S;
If(K<>M) Then Aa[k,k-1]:=-S*X
Else If(L<>M) Then Aa[k,k-1]:=-Aa[k,k-1];
P:=P+S; X:=P/S; Y:=Q/S; Z:=R/S;Q:=Q/P; R:=R/P;
For J:=K To N Do Begin
P:=Aa[k,j]+Q*Aa[k+1,j];
If (K<>Na) Then Begin
P:=P+R*Aa[k+2,j]; Aa[k+2,j]:=Aa[k+2,j]-P*Z; End;
Aa[k+1,j]:=Aa[k+1,j]-P*Y; Aa[k,j]:=Aa[k,j]-P*X;
End;
If((K+3)<N) Then J:=K+3
Else J:=N;
For I:=L To J Do Begin
P:=X*Aa[i,k]+Y*Aa[i,k+1]; If(K<>Na) Then Begin;
P:=P+Z*Aa[i,k+2]; Aa[i,k+2]:=Aa[i,k+2]-P*R; End;
Aa[i,k+1]:=Aa[i,k+1]-P*Q; Aa[i,k]:=Aa[i,k]-P;
End;
Cont_3:End; Goto NexTit; Onew:
R1[n]:=X+T; {R1-ўҐй} R2[n]:=0.0; {Cnt[n]:=its;} N:=Na;
Goto Nextw; Twow:
P:=(Y-X)/2.0; Q:=P*P+W; Y:=Sqrt(Abs(Q));
{Cnt[n]:=-its; Cnt[na]:=its;} X:=X+T;
If(Q>0.0) Then Begin
If(P<0.0) Then Y:=-1.0*Y; Y:=P+Y; R1[na]:=X+Y;
R1[n]:=X-W/Y; R2[na]:=0.0; R2[n]:=0.0; End
Else Begin R1[na]:=X+P; R1[n]:=X+P; R2[na]:=Y; R2[n]:=-1.0*Y;End;
N:=N-2; Goto Nextw; Fin: r_1:=r1; r_2:=r2; End;
Вычисления по программе привели к следующим результатам:
Собственные числа Собственные вектора
.10000Е+01 -.94281Е+00 .23570Е+00 -.23570Е+00
.10000Е+02 -.33333Е+00 -.66667Е+00 .66667Е+00
.10000Е+01 .00000Е+00 -.70711Е+00 -.70711Е+00
Варианты заданий для нахождения собственных значений и собственных векторов матрицы приведены в таблице 5.