Решения системы уравнений методом Гаусса

Автор работы: Пользователь скрыл имя, 26 Января 2014 в 22:30, курсовая работа

Краткое описание

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

Содержание

1. Введение………………………………………………………………………………………………………4
1. Описание математических методов решения систем линейных уравнений.
1.1 Метод Гаусса……………………………………………………………………………………………….5
1.2 Матричный метод……………………………………………………………7
1.3 Вычисление определителей второго и третьего порядка…………………..9
2. Язык программирования Паскаль.
2.1 Структура программы……………………………………………………….11
2.2 Описание переменных………………………………………………………13
2.3 Основные конструкции языка………………………………………………16
2.4 Структуры данных…………………………………………………………..19
3. Программа………………………………………………………………….....20
Заключение.
Список используемых источников и литературы.

Прикрепленные файлы: 1 файл

решениt системы линейных уравнений методом Гаусса.doc

— 105.50 Кб (Скачать документ)

Множество всех символов образуют символьные величины (тип char), которые являются упорядоченными.

Выражения - это конструкции, задающие правила вычисления значений переменных. В общем случае выражения строятся из переменных, констант, функций с помощью операций и скобок.

Эта роль выражения  отражена в основном операторе языка - операторе присваивания. Он имеет следующий вид:

<имя переменной>: =<выражение>

Тип переменной и тип выражения должны быть согласованы (величины принадлежат к одному и  тому же типу).

В Паскале можно  вводить с клавиатуры числовые и  символьные данные. Имеются две встроенные процедуры (подпрограммы) ввода:

1) read (< список  переменных>);

2) readln (<список переменных>).

Процедура readln отличается от read только тем, что при  завершении ввода курсор перемещается в начало строки.

Программа на Паскале  может выводить на экран или на принтер значения числовых или символьных выражений. Имеются две процедуры вывода на экран:

1) write (<список  выражений>);

2) writeln (<список  выражений>).

Процедура write (x1,x2,x3,…xn) печатает на экран значения выражения из списка х1, х2,…хn. Для вывода на принтер используются те же процедуры с добавлением служебного слова lst перед списком выражений:

Пример: write (lst,’ нет решений‘);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                         2.3 Основные конструкции языка

 

Паскаль - это  язык структурного программирования. Это значит, что программа должна выражать свои мысли очень дисциплинированно, с использованием малого числа четко оговоренных конструкций, используя как чередование их, так и вложения друг в друга. Не рекомендуется (хотя и возможно) использовать оператор перехода goto.

Реализация  последовательности действий (т.е. структуры  следования) выполняется с помощью  составного оператора:

Begin <последовательность операторов> end

Раздел операторов в программе всегда является составным  оператором. Служебные слова begin и end часто называют операторными скобками.

Для реализации развилки в Паскале предусмотрены  два оператора: условный оператор и  оператор варианта (выбора). Они предназначены  для выделения из составляющих их операторов одного, который и выполняется.

Структура и  действие условного оператора таковы:

IF < логическое выражение>

Then <оператор 1 >

Else < оператор 2>

Условный оператор может быть неполным, т.е. не содержать  часть “else <оператор 2>". В этом случае, если значение логического выражения равно false, условный оператор не вызывает никаких действий.

Оператор варианта имеет следующую форму:

Case <выражение> of

<список констант 1>: <оператор 1>;

<список констант 2>: <оператор 2>;

………………………………………

<список констант n>: <оператор n>;

end;

Выражение, стоящее  между служебными словами case и of, должно иметь значение ординального типа. Любой список констант может состоять из одной константы.

Оператор варианта вычисляет значение выражения, записанного  после case. Если его значение совпадает  с одной из констант в некотором  списке, то выполняется оператор, стоящий после этого списка. Если значение выражения не совпало ни с одной константой во всех вариантах, то оператор варианта ничего не делает.

Для реализации циклов в Паскале имеются три  оператора. Если число повторений известно заранее, то удобно воспользоваться оператором цикла с параметром. В других случаях следует использовать операторы цикла с предусловием (цикл "пока") или с постусловием (цикл "до").

Цикл с предусловием является наиболее мощным в Паскале. Другие операторы цикла можно выразить через него. Его форма такова:

While < логическое выражение> do <оператор >

Действие: вычисляется  значение логического выражения. Если оно равно true, то выполняется оператор, после чего снова вычисляется  значение логического выражения, в противном случае действие заканчивается.

Оператор цикла  с постусловием имеет форму:

Repeat <последовательность операторов >

Until < логическое выражение>

Действие: выполняется  последовательность операторов. Далее  вычисляется значение логического  выражения. Если оно равно true, то действие заканчивается, в противном случае снова выполняется последовательность операторов цикла и т.д.

Оператор цикла  с параметром предусматривает повторное  выполнение некоторого оператора с  одновременным изменением по правилу арифметической прогрессии значения управляющей переменной (параметра) этого цикла. Оператор цикла с параметром имеет две формы.

Форма 1:

For < параметр>: = < выражение 1 > to < выражение 2 > do < оператор>

Параметр, выражение 1, выражение 2 должны быть одного ординального типа. Параметр в этом цикле возрастает. Действие эквивалентно действию следующего составного оператора:

Begin

< параметр >: = <выражение 1 >;

while < параметр> <= < выражение 2> do

begin

< оператор>;

<параметр >: = succ (<параметр >)

end

end.

Если в этом описании отношение <= заменить на >=, а функцию succ на pred, то параметр в  цикле будет убывать, в этом случае цикл с параметром принимает форму 2.

Форма 2:

For < параметр>: = < выражение 1 > downto < выражение 2 > do < оператор>

 

 

 

 

 

 

 

 

 

                          2.4 Структуры данных

В Паскале кроме  простых типов данных: real, integer, boolean, byte, char, программист по своему желанию  может определить новый тип путем  перечисления его элементов - перечисляемый  тип, который относится к простым ординальным типам.

Описание перечисляемого типа выполняется по схеме:

Type < имя типа> = <список имен >

Например, type operator = (plus, minus, multi, divide);

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

Type days = (mon, tue, wed, thu, fri, sat, sun);

Workdays= mon. fri;

Index=1. .30;

Операции и функции - те же, что и для базового типа. Использование интервальных типов в программе позволяет экономить память и проводить во время выполнения программы контроль присваивания.

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

Массив -это  последовательность, состоящая из фиксированного числа однотипных элементов. Все элементы массива имеют общее имя и различаются индексами. Индексы можно вычислять, их тип должен быть ординальным. В описании массива используются служебные слова array и of. В описании массива указывается тип его элементов и типы их индексов.

                               3. Программа

 

program Gauss_Classic;

uses crt;

type vec=array[1..10] of real;

mas=array[1..10] of vec;

var a:mas;b,x:vec;

h:real;

i,j,k,n:integer;

Begin {Начало основной  программы}

Clrscr;

write('Введите количество уравнений: ');read(n);

for i:=1 to n do begin

writeln('Уравнение ',i);

writeln('Введите коэффициенты');

for j:=1 to n do begin

write('a[',i,',',j,']=');read(a[i,j]);end;

writeln('Введите  правую часть уравнения');

write('b[',i,']=');read(b[i]); end;

Clrscr;

writeln('Исходная матрица');

for i:=1 to n do begin

write(i);

for j:=1 to n do

write(a[i,j]:10:5);

writeln(b[i]:10:5) end;

writeln; writeln; writeln;

{Прямой ход  - исключение переменных}

for i:=1 to n-1 do

for j:=i+1 to n do begin

a[j,i]:=-a[j,i]/a[i,i];

for k:=i+1 to n do

a[j,k]:=a[j,k]+a[j,i]*a[i,k];

b[j]:=b[j]+a[j,i]*b[i] end;

x[n]:=b[n]/a[n,n];

{Обратный ход  - нахождение корней}

for i:=n-1 downto 1 do begin

h:=b[i];

for j:=i+1 to n do h:=h-x[j]*a[i,j];

x[i]:=h/a[i,i]; end;

writeln('Корни уравнения');

for i:=1 to n do writeln('x(',i,')=',x[i]:10:5);

readkey

end.

 

 

 

 

                                 Заключение

 

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

 

 

 

 

 

Список используемых источников и литературы

 

А.В. Могилев, Н.И. Пак, Е.К. Хеннер "Информатика", Москва, ACADEMA, 2000 г.

 Паскаль АВС.

.

 

 

 

 


Информация о работе Решения системы уравнений методом Гаусса