Программирование в системе Турбо Паскаль

Решение систем линейных алгебраических уравнений методом Зейделя: теоретическое описание алгоритма, формирование блок-схемы и написание текста программы. Преобразование массива положительных вещественных чисел по заданному алгоритму программными методами.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 26.03.2011
Размер файла 29,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Государственное агентство Российской Федерации по образованию

Архангельский Государственный Технический Университет

Кафедра древесиноведения и тепловой обработки

Факультет механической технологии древесины

Курсовая работа

по информатике

(133.01.КР.02.ПЗ)

Выполнил: студент факультета МТД I курса, 2 группы

Тележкин В.Л.

Руководитель работы: Земцовский А.Е.

Консультанты:

Нормоконтроль:

Архангельск - 2005

СОДЕРЖАНИЕ

1 Программа решения систем линейных уравнений по методу Зейделя

1.1 Формулировка задачи

1.2 Описание алгоритма

1.3 Блок-схема программы

1.4 Текст программы

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

1.6 Ручной расчёт контрольного примера

2 Задача №2

2.1 Условие задачи

2.2 Блок схема программы и описание алгоритма

2.3 Текст программы

2.4 Результаты

Список используемой литературы

1 ПРОГРАММА РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ ПО МЕТОДУ ЗЕЙДЕЛЯ

1.1 Формулировка задачи

Решить систему линейных алгебраических уравнений с вещественными коэффициентами методом Зейделя с точностью =0,1; =0,01; =0,001; =0,0001.

1.2 Описание алгоритма

В переменную е - максимальная абсолютная погрешность. С помощью вспомогательной процедуры ReadSystem в двумерный массив а и одномерный массив b вводится с клавиатуры расширенная матрица системы. Начальное приближение предполагается равным нулю. Оба массива и переменные n и e передаются функции Seidel. в функции Seidel исследуется сходимость системы, и в случае если система не сходится, выполнение функции прекращается с результатом false. В ходе получения погрешность становится меньше заданной, выполнение функции прекращается. Полученное решение выводится на экран при помощи вспомогательной процедуры WriteX.

1.3 Блок - схемы программы

Размещено на http://www.allbest.ru/

Рисунок - Блок-схема основной программы

Размещено на http://www.allbest.ru/

Рисунок - Процедура WriteX

Размещено на http://www.allbest.ru/

Рисунок - Процедура ReadSystem

1.4 Текст программы

Uses CRT;

const n=3;

Matrix = Array[1..n, 1..n] of Real;

Vector = Array[1..n] of Real;

{Процедура ввода расширенной матрицы системы }

Procedure ReadSystem(n: Integer; var a: Matrix; var b: Vector);

Var

i, j, r: Integer;

Begin

r := WhereY;

GotoXY(2, r);

Write(`A');

For i := 1 to n do begin

Размещено на http://www.allbest.ru/

Рисунок - Функция Seidel

Размещено на http://www.allbest.ru/

Рисунок - Функция Seidel

GotoXY(i * 6 + 2, r);

Write(i);

GotoXY(1, r + i + 1);

Write(i:2);

end;

GotoXY((n + 1) * 6 + 2, r);

Write(`b');

For i := 1 to n do begin

For j := 1 to n do begin

GotoXY(j * 6 + 2, r + i + 1);

Read(a[i, j]);

end;

GotoXY((n + 1) * 6 + 2, r + i + 1);

Read(b[i]);

end;

End;

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

Procedure WriteX(n :Integer; x: Vector);

Var

i: Integer;

Begin

For i := 1 to n do

Writeln(`x', i, ` = `, x[i]:6:4);

readln;

End;

{ Функция, реализующая метод Зейделя}

Function Seidel(n: Integer; a: Matrix; b: Vector; var x: Vector; e: Data)

:Boolean;

Var

i, j: Integer;

s1, s2, s, v, m: Data;

Begin

{ Исследуем сходимость}

If j <> i then

s := s + Abs(a[i, j]);

If s >= Abs(a[i, i]) then begin

Seidel := false;

Exit;

end;

end;

Repeat

m := 0;

For i := 1 to n do begin

{ Вычисляем суммы}

s1 := 0;

s2 := 0;

For j := 1 to i - 1 do

s1 := s1 + a[i, j] * x[j];

For j := i to n do

s2 := s2 + a[i, j] * x[j];

{ Вычисляем новое приближение и погрешность}

v := x[i];

x[i] := x[i] - (1 / a[i, i]) * (s1 + s2 - b[i]);

If Abs(v - x[i]) > m then

m := Abs(v - x[i]);

end;

Until m < e;

Seidel := true;

End;

Var

i: Integer;

a: Matrix;

b, x: Vector;

e: Data;

Begin

ClrScr;

Writeln('Программа для решения систем линейных уравнений методом Зейделя');

Writeln;

Writeln('Введите точность вычислений');

Repeat

Write(`>');

Read(e);

Until (e > 0) and (e < 1);

Writeln;

Writeln('Введите расширенную матрицу системы');

ReadSystem(n, a, b);

Writeln;

{ Предполагаем начальное приближение равным нулю}

For i := 1 to n do

x[i] := 0;

If Seidel(n, a, b, x, e) then begin

Writeln('Результат вычислений по методу Зейделя');

WriteX(n, x);

end

else

Writeln('Метод Зейделя не сходится для данной системы');

Readln;

End.

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

Программа для решения систем линейных уравнений методом Зейделя.

Введите точность вычислений:

>0.01

Введите расширенную матрицу системы

A

1

2

3

B

1

4

0.24

-0.08

8

2

0.09

3

-0.15

9

3

0.04

-0.08

4

20

Результат вычислений по методу Зейделя:

x1=1.9092

x2=3.1950

x3=5.0448

Проверяем, подставляя в уравнения. Результаты правильные.

1.6 Ручной расчёт контрольного примера

Найдём определитель системы:

Корни уравнения:

, ,

2 ЗАДАЧА №2

2.1 Условие задачи

Дан одномерный массив положительных вещественных чисел. Последовательно преобразовать этот массив согласно следующему алгоритму. Сначала обнуляется минимальный элемент массива, затем максимальный из оставшихся, далее минимальный из оставшихся и т.д. Вывести на экран сначала последний оставшийся ненулевой элемент, потом множество индексов элементов, которые были минимальными, а затем множество индексов элементов, которые было максимальными.

программирование турбо паскаль

2.2 Блок схема программы и описание алгоритма

Блок-схема программы представлена на рисунке.

Использование в программе подпрограммы - процедуры Procedure mm. Сначала осуществляется нахождение максимального и минимального элемента массива с помощью процедуры Procedure mm., затем последовательно обнуляются элементы массива (с- сисло элементов массива). Далее нахождение последнего ненулевого элемента и вывод его на экран. Вывод на экран множества индексов А[i] минимального и максимального элементов.

2.3 Текст программы

Program for_2;

Const n=5;

Var I,k,r:integer;

Min, max:real;

A:array[l..n] of real;

Размещено на http://www.allbest.ru/

Рисунок - Блок-схема программы

Begin

For i:=l to n do

Begin

Write(`Ввести_',i, `_элемент массива_'); Readln(a[i]);

End;

Min:=a[l];

K:=l;

Max:=a[l];

R:=l;

For i:=2 to n do

Begin

If a[l]<min then begin

Min:=a[l];

K:=i;

End;

If a[i]>max then begin

Max:=a[i];

R:=i;

End;

End;

Writeln(`max_', max: 10:2);

Writeln(`min_', min:10:2);

Writeln('порядковый номер max', r:5);

Writeln('порядковый номер min', r:5);

Readln;

Begin

Min:=0;

Max:=0;

Writeln(` `, max:5:0);

Writeln(` `, min:5:0);

End.

2.4 Результаты

Ввести_1_элемент массива_14

Ввести_2_элемент массива_56

Ввести_3_элемент массива_23

Ввести_4_элемент массива_2

Ввести_5_элемент массива_9

max_56.00

min_2.00

порядковый номер max 2

порядковый номер min 4

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1. Немнюгин С.А. TURBO PASCAL. Практикум. - М. 2005.

2. Самарский А.А., Гулин А.В. Числовые методы. М.: Наука, 1989. - 430 с.

3. Грошев А.С. Практикум по программированию в системе ТУРБО ПАСКАЛЬ 7.0. - Архангельск 2002.

Размещено на Allbest.ru


Подобные документы

  • Преобразование матрицы системы линейных алгебраических уравнений (СЛАУ) с помощью алгоритма Гаусса. Решение задачи методом простой итерации. Создание блок-схемы и текста программы для решения СЛАУ, реализованной на языке программирования Turbo Pascal.

    курсовая работа [1,2 M], добавлен 15.06.2013

  • Использование метода Зейделя для нахождения корней системы линейных алгебраических уравнений. Суть метода простых итераций. Оценка погрешности нормальной системы. Составление алгоритма, блок-схемы и кода программы. Тестовый пример и проверка в MathCad.

    лабораторная работа [174,8 K], добавлен 02.10.2013

  • Использование MS Excel для математических расчетов. Описание численных методов решения системы линейных алгебраических уравнений. Решение систем линейных алгебраических уравнений с методами Крамера и Зейделя и с помощью табличного процессора MS Excel.

    курсовая работа [1,6 M], добавлен 14.02.2021

  • Решение систем алгебраических линейных уравнений методом Крамера. Сущность метода прогонки. Программная реализация метода: блок-схема алгоритма, листинг программы. Проверка применимости данного способа решения для конкретной системы линейных уравнений.

    курсовая работа [581,0 K], добавлен 15.06.2013

  • Сущность матричного метода. Разработка программы решения системы уравнений линейных алгебраических уравнений методом решения через обратную матрицу на языке программирования Delphi. Представление блок-схемы и графического интерфейса программного продукта.

    курсовая работа [1,0 M], добавлен 27.09.2014

  • Метод Гаусса-Зейделя как модификация метода Якоби, его сущность и применение. Разработка программы решения системы линейных алгебраических уравнений на языке VB, проверка правильности работы программы в MS Excel и математических пакетах MathCad и MatLab.

    курсовая работа [325,5 K], добавлен 27.10.2013

  • Системы линейных алгебраических уравнений. Матричный метод решения систем линейных уравнений. Решение задачи математическим методом. Блок-схема алгоритма и листинг программы. Расчет трудоемкости разработки программы. Расчет себестоимости и цены программы.

    дипломная работа [144,8 K], добавлен 25.04.2012

  • Приведение системы линейных алгебраических уравнений к треугольному виду прямым ходом метода Гаусса. Применение обратного хода метода вращений. Создание алгоритма, блок-схемы и кода программы. Тестовый пример решения уравнения и его проверка в MathCad.

    лабораторная работа [164,3 K], добавлен 02.10.2013

  • Алгоритм решения систем линейных уравнений методом Гаусса, его этапы. Система уравнений для определения коэффициентов сплайна, представляющая собой частный случай систем линейных алгебраических уравнений. Программная реализация, тестовый пример.

    курсовая работа [431,8 K], добавлен 15.06.2013

  • Изучение основных этапов проектирования программных систем, создание прикладной программы, которая выполняет решение систем линейных алгебраических уравнений методом Гаусса. Вычисление определителя и обращение матриц. Листинг разработанной программы.

    курсовая работа [563,3 K], добавлен 12.07.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.