|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Преподаватель________Кондратьева Е.И
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (национальный исследовательский университет)» (МАИ) Филиал «ВОСХОД» Кафедра МиПОИС «Утверждаю»
Преподаватель________Кондратьева Е.И.
«_____» _____________ 2013 г.
Отчет По лабораторной работе №1
на тему: Метод Гаусса решения СЛАУ по дисциплине: Численные методы и алгоритмы
Студенты гр. ВА3-62_________Кулбараков А.Б. «_____»_________ 2013 г.
Байконур 2013 г. Задание: Дана неоднородная СЛАУ: Требуется: 1. Составить алгоритм и программу решения СЛАУ размерности n методом Гаусса. 2. Использовать программу для решения варианта задания. 3. Выполнить проверку и сделать выводы.
Метод Гаусса Первоначально матрица приводится к верхней треугольной (прямой ход), далее в единичный (обратный ход) Предположим, что проведено исключения из k-1 столбца, тогда у нас останутся уравнения с ненулевыми элементами ниже главной диагонали. Умножим к-ую строку на С. - преобразованный диагональный элемент m>k вычтем из строки m. Остальные коэффициенты высчитываются: Листинг программы
procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; AD:real; S:real; begin memo1.Lines.Clear; setlength(A,n,n); Setlength(B,N); setlength(A1,n,n); Setlength(B1,N); Setlength(X,N); for i:= 0 to n - 1 do begin B[i]:=strtofloat(BGrid.Cells[0,i]); B1[i]:=B[i]; for j:= 0 to n - 1 do begin A[i,j]:=strtofloat(AGrid.Cells[j,i]); A1[i,j]:=A[i,j]; end; end; //---------------------ПРЯМОЙ ХОД -------------------// Iter:=0; Repeat for I:= 0 to n - 1 do if (I=Iter) then begin AD:=a1[iter,iter]; B1[iter]:=B1[iter]/Ad; for j:= Iter to n - 1 do A1[i,j]:=A1[i,j]/AD; end; for i:= iter+1 to n - 1 do begin Ad:=-A1[i,iter]; for j:= iter to n - 1 do A1[i,j]:=A1[iter,j]*Ad+A1[i,j]; B1[i]:=B1[iter]*Ad+B1[i]; end; inc(iter); Until (Iter=(n-1)); //-----------------ОБРАТНЫЙ ХОД------------------// for i:= 0 to n - 1 do x[i]:=0; iter:=n-1; repeat for i:= iter to n - 1 do if i<>iter then x[iter]:=x[iter]+x[i]*a1[iter,i]; x[iter]:=(b1[iter]-x[iter])/a1[iter,iter]; iter:=iter-1; until iter<(0); for i:= 0 to n - 1 do memo1.Lines.Add('x'+inttostr(i+1)+'='+floattostrf(x[i],fffixed,6,3)); for i:= 0 to n - 1 do begin S:=0; for j:= 0 to n - 1 do s:=s+a[i,j]*x[j]; memo1.Lines.Add('r'+inttostr(i+1)+'='+floattostrf(s-b[i],fffixed,6,3)); end; end; Результат работы программы
Рисунок 1 – Окно программы Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.01 сек.) |