- •Содержание
- •1. Численные методы в электротехнических задачах
- •1.1. Численные методы решения систем линейных алгебраических уравнений (слау)
- •1.1.1. Классификация методов
- •1.1.2. Обусловленность системы уравнений
- •1.1.3. Собственные значения и собственные векторы матриц
- •1.1.4. Векторные нормы
- •1.1.5. Методы решения некорректных задач
- •1.1.6. Точные методы расчёта слау
- •1.1.6.1. Классический метод Гаусса
- •I, j, k : IntType;
- •1.1.6.2. Метод Гаусса с выбором главного элемента
- •I,j,k: IntType;
- •I, j, k : IntType;
- •1.1.6.3. Гауссово исключение и lu-разложение
- •1.1.6.4. Матрично-векторные формы - разложения
- •1.1.6.5. Алгоритм Донгарры-Айзенштата.
- •Var I,j,k,s : Integer;
- •Var I,j,k : Integer;
- •1.1.6.6. Метод вращения
- •I, j, k : IntType;
- •I, j, k : IntType;
- •1.1.6.7. Схема Жордана
- •I,j,k : IntType;
- •I, j, k : IntType;
- •1.1.6.8. Факторизация
- •1.1.6.9. Метод квадратных корней (Холесского)
- •I, j, k : IntType;
- •1.1.6.10. Итерационное уточнение
- •1.1.6.11. Особенности решения слау для ленточных симметричных и несимметричных матриц
- •Алгоритм классического метода Гаусса для ленточной симметричной матрицы
- •I, j, k,k1, n , Jend : IntType;
- •I, j, k,k1, n , Jend, c : IntType;
- •1.1.7. Итерационные методы слау
- •1.1.7.1. Решение слау методом простых итераций
- •I, j, k : IntType;
- •X0 : tVector;
- •1.1.7.2. Решение слау методом Гаусса-Зейделя
- •I, j, k : IntType;
- •X0 : tVector;
- •1.1.7.3. Метод релаксации
- •I, j, k : IntType;
- •X0 : tVector;
- •Литература
I, j, k : IntType;
X0 : tVector;
H : RealType;
S : String;
Flag : Boolean;
begin
Form1.Memo1.Visible:= True;
Form1.Memo1.Clear;
Kr:= StrToFloat(Form1.Edit1.Text);{Коэффициент релаксации}
For i:= 1 to N do X[i]:= 0; {Начальные значения}
{Итерации по методу ПВР}
For k:=1 to M do
begin
{Подготовка к итерации}
For i:=1 to N do X0[i]:=X[i];
For i:=1 to N do
begin
H:= 0.0;
For j:=1 to N do
If i<>j Then H:=H+ X0[j]*A[i,j];
X[i]:= ((1-Kr)*A[i,i]*X0[i]+Kr*(B[i]-H))/A[i,i];
{Заполнение Form1.ProgressBar2}
Form1.ProgressBar2.Position:=Round(100*i/N);
end;
{Проверка решения}
Flag:= True; {Решение найдено}
{Ищем норму вектора решения}
H:=0.0;
For i:=1 to N do
H:= H + Sqr(X[i]-X0[i]);
H:= Sqrt(H)/N;
If H > 0.00000001 Then Flag:= False;
If Flag= True Then Break;
end;
Form1.SpinEdit2.Value:= k; {Вывод количества итераций}
Form1.Memo1.Visible:= True;
Form1.Memo1.Clear;
Form1.Memo1.Lines.Add('Метод последовательной верхней релаксации.');
If Flag= True Then Form1.Memo1.Lines.Add('Заданная точность достигнута');
If Flag= False Then
begin
Form1.Memo1.Lines.Add('Заданная точность не достигнута.');
Form1.Memo1.Lines.Add(Format('при k = %d', [k]));
Form1.Memo1.Lines.Add('Увеличьте количество итераций.');
end;
For i := 1 to N do
Form1.Memo1.Lines.Add(Format('X[%d] = %f', [i, X[i]]));
For i:= 1 to N do
Form1.StringGrid1.Cells[N+3, i]:= FloatToStrF(1.0*X[i],ffGeneral,3,3);
end;
Литература
Бахвалов Н. С. Численные методы/ Жидков Н. П. , Кобельков Г. М.; МГУ им М. В. Ломоносова. - М.: БИНОМ. Лаборатория знаний, 2006. - 636 с. - ISBN 5-94774-396-5: 372-20, н-1, ч/з-2, общ.8-1, уч-20(1- к ЭВМ); (24:25)
Киреев В. И. Численные методы в примерах и задачах/ Пантелеев А. В.; М.: Высш. шк., 2008. - 480 с. - ISBN 978-5-06-004763-9: 661-10.(уч-20); (20:25).
Мудров А. Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль/ Томск: МП"РАСКО", 1991. - 272 с. - ISBN 5-256-00602-9: 11р.20к. н-1; (1:25).
Калиткин Н. Н. Численные методы/ Под ред. А. А. Самарского. - М.: Наука, 1978. - 512 с. - 1 р. 30 к. КУКП-3, н-4, уч-99, ч/з-3. (110:25).