Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Решение систем линейных алгебраических уравненийСодержание книги
Поиск на нашем сайте
Точные методы
Метод Гаусса
Входные параметры: n—целое положительное число, равное порядку n системы; а — массив из n х n действительных чисел, содержащий матрицу коэффициентов системы (а(1) = а11, а(2) = a12…а(n) = аn1, а(n + 1) = а12,.... а(n х n) = аnn); b — массив из n действительных чисел, содержащий столбец свободных членов системы (b(1) = b1, b(2)=b2,…b(n)=bn). Выходные параметры: b—массив из n действительных чисел (он же входной); при выходе из программы содержит решение системы b(l) = x1, b(2) = x2, … b(n) = хn; error—признак правильности решения (код ошибки): если ks = 0, то в массиве b содержится решение системы, если error= 1, исходная система не имеет единственного решения (определитель системы равен нулю). Перед обращением к подпрограмме SIMQ необходимо: 1) описать массивы а и b. Если система содержит n уравнений, то массив а должен содержать n2элементов, а массив b – n элементов; 2) присвоить значение параметру n, который равен числу 3) присвоить элементам массивов а и b значения коэффициентов системы следующим образом: a(l) = a11, а(2) = а21, а(3) = а31,…а(n) = аn1 а(n+1) = а12, а(n+2) = а22… а(n x n) = аnn. b(1) = b1, b(2)=b2,…b(n)=bn 4) проверить соответствие фактических параметров по типу и порядку следования формальным параметрам подпрограммы SIMQ. Параметры а и b - величины вещественного типа, n и error - целого типа.
Задание. Используя программу SIMQ, решить заданную систему трех линейных уравнений. Схема алгоритма приведена на рисунке 13. Порядок выполнения лабораторной работы: 1. Составить головную программу, содержащую обращение к SIMQ и печать результатов; 2. Произвести вычисления на ЭВМ. Пример. Решить систему уравнений
Рисунок 13 – Схема алгоритма метода Гаусса
Текст программы:
PROCEDURE SIMQ(Nn:Integer;Var Aa:TMatr;Var Bb:TVector;Var Ks:Integer); Label M1; Const Eps=1e-21; Var Max,U,V: Real; I,J,K1,L: Integer; Begin For I:=1 To Nn Do Aa[i,Nn+1]:=Bb[i]; For I:=1 To Nn Do Begin Max:=Abs(Aa[i,i]); K1:=I; { запоминает номер строки с максимальным элементом } For L:=I+1 To Nn Do If (Abs(Aa[l,i])>Max) Then Begin Max:=Abs(Aa[l,i]); K1:=L; End; I f(Max<Eps) Then Begin Ks:=1; Goto M1; End Else Ks:=0; If K1<>I Then For J:=I To Nn+1 Do { обмен местами элементов строк с максимальным элементом } Begin U:=Aa[i,j]; Aa[i,j]:=Aa[k1,j]; Aa[k1,j]:=U; End; V:=Aa[i,i]; { элемент на главной диагонали, являющийся максимальным } For J:=I To Nn+1 Do Aa[i,j]:=Aa[i,j]/V; For L:=i+1 To Nn Do {все по следующие строки после строки с максимальным элементом }{ при I=1: L=2 (2,2),(2,3)..(2,Nn+1) L=3 (3,2),(3,3),..(3,Nn+1) L=Nn (Nn,2), (Nn,3),.. (Nn,Nn+1) } Begin V:=Aa[l,i]; For J:=I+1 To Nn+1 Do Aa[l,j]:=Aa[l,j]-Aa[i,j]*V; End; End; Bb[nn]:=Aa[Nn,Nn+1]; { находим n-ый элемент решения } For I:=Nn-1 Downto 1 Do { находим в обратном порядке все элементы решения } Begin Bb[i]:=Aa[i,nn+1]; For J:=I+1 To Nn Do Bb[i]:=Bb[i]-Aa[i,j]*Bb[j]; End; M1:End;
Вычисления по программе привели к следующим результатам: X(1)=.100000E+01 Х(2)=.200000Е+01 Х(3)=.З00000Е + 01 признак выхода 0
Варианты заданий для решения систем линейных алгебраических уравнений методом Гаусса приведены в таблице 1.
Метод квадратных корней Холецкого
Входные параметры: n—целое положительное число, равное порядку n системы; а — массив из n х n действительных чисел, содержащий матрицу коэффициентов системы (а(1) = а11, а(2) = a12…а(n) = аn1, а(n + 1) = а12,.... а(n х n) = аnn); b — массив из n действительных чисел, содержащий столбец свободных членов системы (b(1) = b1, b(2)=b2,…b(n)=bn). Выходные параметры: b—массив из n действительных чисел (он же входной); при выходе из программы содержит решение системы b(l) = x1, b(2) = x2, … b(n) = хn; p—количество операций. Схема алгоритма приведена на рисунке 14.
Пример. Решить систему уравнений
Текст программы:
Procedure Holets(n:integer;a:TMatr;b:TVector;var x:TVector;var p:integer); Var i,j,k:integer; a11:real; Begin Out_Slau_T(n,a,b); For i:=1 To n Do Begin If i<>1 Then Begin If a[i,i]=0 Then Begin p:=0; error:=2; MessageDlg('!!!!',mtError,[mbOk],0); Exit; End; a[1,i]:=a[1,i]/a[1,1]; End; For j:=1 To i Do Begin For k:=1 To j-1 Do Begin a[i,j]:=a[i,j]-a[i,k]*a[k,j]; End; For i:=1 To n Do Begin For j:=1 To i-1 Do b[i]:=b[i]-a[i,j]*b[j]; If a[i,i]=0 Then Begin p:=0; error:=2; MessageDlg('!!!!',mtError,[mbOk],0); Exit; End; b[i]:=b[i]/a[i,i]; End; For i:=n DownTo 1 Do Begin For j:=n DownTo i+1 Do b[i]:=b[i]-a[i,j]*b[j]; End; x:=b; p:=2*n*n; End;
Вычисления по программе привели к следующим результатам: X(1)=.100000E+01 Х(2)=.200000Е+01 Х(3)=.З00000Е + 01
Рисунок 14 - Схема алгоритма метода Холецкого
Тема лабораторной работы №1 для контроля знаний проиллюстрирована контрольно – обучающей программой. Варианты заданий. Решить систему линейных уравнений вида Ах=b
Таблица 1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-04-08; просмотров: 471; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.20 (0.01 с.) |