Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gotovaya kursovaya.docx
Скачиваний:
15
Добавлен:
19.12.2018
Размер:
340.18 Кб
Скачать

Библиографический список

  1. «Конспект лекций по информатике за I курс», Кондрашев А. П.

  2. ИНФОРМАТИКА. АППРОКСИМАЦИЯ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ: Методические указания по выполнению курсовой работы / Санкт-Петербургский государственный горный институт (технический университет). Сост.: В.В.Беляев, Г.Н.Журов. СПБ, 2005. 52 с.

  3. ИНФОРМАТИКА: Методические указания к курсовой работе / Санкт-Петербургский горный ин-т. Сост. А.П.Кондрашев. СПБ, 2002. 30с.

  4. ЛАБОРАТОРНЫЕ РАБОТЫ ПО КУРСУ «ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА И ПРИМЕНЕНИЕ ЭВМ» / Лениградский горный институт им. Г.В.Плеханова. Сост.: В.В. Беляев, Е.В.Быкова и др. 1987.

Приложение 1

Приложение 2

Приложение 3

PROGRAM lineynaya;

{подключение модуля, необходимого для процедур очистки экрана и задержки}

USES CRT;

{Задание массива}

TYPE MAT=ARRAY [1..10,1..11] OF REAL;

VEK=ARRAY [1..25] OF REAL;

{Описание переменных}

VAR i,j,n:INTEGER; A:MAT; X,B,X1,Y1:VEK; fr,fm:text;

a1,b1,c1,d1:real;

{Процедура Гаусса}

PROCEDURE GAU(VAR A:MAT; VAR B,X:VEK; m:INTEGER);

VAR k,i,j,t,L:INTEGER; D:REAL; fw :TEXT;

BEGIN

{Задание всех переменных}

L:=m+1; FOR i:=1 TO m DO A[i,L]:=B[i];

{имя файла данных на диске}

ASSIGN(fw,'gaus.txt'); REWRITE(fw); {запись данных в файл}

WRITELN(fw,' CUCTEMA YPABHEHIY: ');

{начальный вывод данных}

FOR i:=1 TO m DO

BEGIN

FOR j:=1 TO m DO WRITE(fw,A[i,j]:14:6,' X[',j,'] ' );

WRITELN(fw,' = ', B[i]:14:6);

END;

{прямой ход решения СЛАУ по методу Гаусса}

{формирование треугольной матрицы коэффициентов}

FOR i:=1 TO m DO

BEGIN

D:=A[i,i]; t:=i; {ищем max в столбце}

FOR j:=i TO m DO

IF abs(A[j,i]) > abs(D) THEN

BEGIN D:=A[j,i]; t:=j;END;

{обмен строк}

IF i<>t THEN

BEGIN

FOR j:=i TO L DO

BEGIN D:=A[i,j]; A[i,j]:=A[t,j]; A[t,j]:=D;END;

END;

{формирование строки}

FOR j:=L DOWNTO i DO A[i,j]:=A[i,j]/A[i,i];

{зануление столбцов и пересчет А}

FOR k:=i+1 TO m DO

FOR j:=L DOWNTO i DO A[k,j]:=A[k,j]-A[i,j]*A[k,i];

END;

{обратный ход}

X[m]:=A[m,L]; FOR i:=m-1 DOWNTO 1 DO

BEGIN

D:=0; FOR j:=m DOWNTO i+1 DO D:=D+A[i,j]*X[j];

X[i]:=A[i,L]-D;

END;

WRITELN(fw,' VEKTOR X: ');

FOR i:=1 TO m DO WRITE(fw, X[i]:10:6);

WRITELN(fw); CLOSE(fw)

END;

{вычисление сумм}

BEGIN clrscr;

{имя файла данных на диске}

assign(fm,'kursovik.txt'); reset(fm); {чтение данных c файла}

FOR i:=1 TO 25 DO read(fm,X1[i]);

FOR i:=1 TO 25 DO read(fm,Y1[i]);

FOR i:=1 TO 25 DO

{формулы вычисления для сумм}

begin

a1:=a1+X1[i]; {для x(i)}

b1:=b1+Y1[i]; {для y(i)}

c1:=c1+sqr(X1[i]); {для x(i)2}

d1:=d1+X1[i]*Y1[i]; {для x(i)y(i)}

end;

{имя файла данных на диске}

assign(fr,'dan.txt');REWRITE(fr); {запись данных в файл}

{Формирование матрицы А}

write(fr,25,' '); writeln(fr,a1:4:4,' ');

write(fr,a1:4:4,' '); writeln(fr,c1:4:4,' ');

write(fr,b1:4:4,' '); writeln(fr,d1:4:4,' ');

close(fr);

WRITELN(' РЕШЕНИЕ СЛАУ МЕТОДОМ ГАУССА. КОЛ-ВО УРАВН. НЕ БОЛЕЕ 10');

WRITELN; WRITE(' ВВОДИ ЧИСЛО УРАВНЕНИЙ: '); READLN(n);

{имя файла данных на диске}

assign(fr,'dan.txt'); reset(fr); {чтение данных с файла}

FOR i:=1 TO n DO

FOR j:=1 TO n DO READ(fr,A[i,j]);

FOR i:=1 TO n DO READ(fr,B[i]);

for i:=1 to n do begin

for j:=1 to n do write(a[i,j]:14:6);

writeln(B[i]:14:1); end;

GAU(A,B,X,n);

{вывод результатов}

WRITELN('VEKTOR X:');

FOR i:=1 TO n DO WRITE(X[i]:12:6,' '); WRITELN; readln;

END.

Результат работы программы

CUCTEMA YPABHEHIY:

25.000000 X[1] 40.400000 X[2] = 34039.000000

40.400000 X[1] 86.316800 X[2] = 64484.880000

VEKTOR X:

633.272700 450.674072

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]