Паскаль решение систем уравнений методом гаусса

Паскаль решение систем уравнений методом гаусса

Наиболее известным и популярным точным способом решения систем линейных алгебраических уравнений (СЛАУ) является метод Гаусса. Этот метод заключается в последовательном исключении неизвестных. Пусть в системе уравнений Паскаль решение систем уравнений методом гаусса

первый элемент a11 (0) не равен 0. Назовем его ведущим элементом первой строки. Поделим все элементы этой строки на a11 (0) и исключим x1 из всех последующих строк, начиная со второй, путем вычитания первой (преобразованной), умноженной на коэффициент при x1 в соответствующей строке. Получим Паскаль решение систем уравнений методом гаусса

Если a22 (1) , то, продолжая аналогичное исключение, приходим к системе уравнений с верхней треугольной матрицей Паскаль решение систем уравнений методом гаусса

Из нее в обратном порядке находим все значения xi: Паскаль решение систем уравнений методом гаусса

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

Аналогичная программа на C++ выглядит следующим образом:

Здесь матрица и вектор правой части генерируются случайным образом из чисел в диапазоне от 1 до 5:

Видео:Язык Turbo Pascal и математика. Решение системы m линейных уравнений с n неизвестными методом ГауссаСкачать

Язык Turbo Pascal и математика. Решение системы m линейных уравнений с n неизвестными методом Гаусса

Курсовая работа: Разработка программы решения системы линейных уравнений

Дальневосточная академия государственной службы

Факультет государственного и муниципального управления

по курсу: Информатика

Разработка программы решения системы линейных уравнений

1 курса 3 годичной

заочной формы обучения

Воищев Алексей Юрьевич

г. Хабаровск 2005

1. Описание математических методов решения систем линейных уравнений

1.1 Метод Гаусса

1.2 Матричный метод

1.3 Вычисление определителей второго и третьего порядка

2. Язык программирования Паскаль

2.1 Структура программы

2.2 Описание переменных

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

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

2.4 Процедуры и функции

3. Описание программы

3.1 Работа программы

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

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

Видео:Решение системы уравнений методом Гаусса 4x4Скачать

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

Введение

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

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

Чтобы быстро справится с решением системы линейных уравнений, можно воспользоваться средствами вычислительной техники — составить программу на языке программирования.

Видео:Решение системы уравнений методом ГауссаСкачать

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

1 . Описание математических методов решения систем линейных уравнений

Видео:Метод Гаусса решения систем линейных уравненийСкачать

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

1.1 Метод Гаусса

Идея метода Гаусса состоит в последовательном исключении неизвестных. Алгоритм решения системы уравнений этим методом проследим на примере.

Пример 1. Паскаль решение систем уравнений методом гаусса

Выбирается ведущее уравнение с коэффициентом при х1 , равным 1. В нашем примере ведущим уравнением будет второе. Систему лучше переписать, поставив это уравнение на первое место:

Паскаль решение систем уравнений методом гауссаПаскаль решение систем уравнений методом гаусса

Умножаем первое уравнение на 6 и вычитаем из полученного второе, чтобы исключить из второго неизвестное х1 . Первое уравнение записываем, а на место второго — результат вычитания.

Затем первое уравнение умножим на 3 и складываем с третьим уравнением. Тогда получаем систему

Паскаль решение систем уравнений методом гауссаИли

первое уравнение переписываем без изменения, а второе умножаем на 7 и вычитаем из него третье уравнение, умноженное на 15, чтобы избавиться от х2 в третьем уравнении. При этом второе записываем без изменения, на месте третьего — результат вычитания. Тогда

Паскаль решение систем уравнений методом гаусса

Из третьего следует х3 =-3, подставим его во второе, получим х2 = — 2. Далее подставим найденные х2 и х3 в первое уравнение, получим х1 = 1.

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

Видео:Решение системы линейных уравнений методом ГауссаСкачать

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

1.2 Матричный метод

Запишем систему линейных 3 уравнений с 3 неизвестными

Паскаль решение систем уравнений методом гаусса

Составим матрицу из коэффициентов при неизвестных

А = Паскаль решение систем уравнений методом гаусса

Введем в рассмотрение матрицы — столбцы для неизвестных и свободных членов:

Х = Паскаль решение систем уравнений методом гаусса; В = Паскаль решение систем уравнений методом гаусса.

Тогда систему (2) можно переписать в матричной форме

Умножив это уравнение на Паскаль решение систем уравнений методом гауссаслева, получим Паскаль решение систем уравнений методом гаусса, откуда Паскаль решение систем уравнений методом гаусса=Паскаль решение систем уравнений методом гауссаили Паскаль решение систем уравнений методом гаусса

Следовательно, матрица — решение Х находится как произведение Паскаль решение систем уравнений методом гауссана В .

Пример 2. Решить систему уравнений матричным методом

Паскаль решение систем уравнений методом гаусса

Решение: определитель матрицы

А=Паскаль решение систем уравнений методом гаусса

∆=-1, значит, существует обратная матрица Паскаль решение систем уравнений методом гаусса.

Матрица — столбец при неизвестных:

Х = Паскаль решение систем уравнений методом гаусса

Матрица — столбец из свободных членов:

В = Паскаль решение систем уравнений методом гаусса

Тогда решение запишется в виде

Паскаль решение систем уравнений методом гаусса=Паскаль решение систем уравнений методом гауссаПаскаль решение систем уравнений методом гаусса=Паскаль решение систем уравнений методом гаусса

Видео:Математика это не ИсламСкачать

Математика это не Ислам

1.3 Вычисление определителей второго и третьего порядка

Число (а 11 а 22а 12 а 21 ) называется определителем второго порядка и обозначается символом

Паскаль решение систем уравнений методом гаусса

Определитель второго порядка содержит две строки и два столбца. Числа а 11 , а 12 , а 21 , а 22 называются элементами определителя. Диагональ определителя, на которой расположены числа а 11 , а 22 — главная, а элементы а 12 , а 21 составляют побочную диагональ.

Определитель 3-го порядка содержит три строки и три столбца:

Паскаль решение систем уравнений методом гаусса

Для вычисления определителя третьего порядка существует несколько способов.

Рассмотрим метод вычисления определителя разложением по элементам первой строки.

Введем понятие минора и алгебраического дополнения.

Минором некоторого элемента определителя называется определитель, полученный из данного вычеркиванием той строки и того столбца в которых этот элемент расположен. Обозначается Мij ( i — номер строки, j — номер столбца).

Например, минором элемента а12 является определитель

Паскаль решение систем уравнений методом гаусса

Алгебраическим дополнением данного элемента определителя называется его минор, умноженный на (-1) i+ j . Алгебраические дополнения обозначаются буквами Аij, и тогда Аy = (-1) i+ j My .

Определитель вычисляется так:

Паскаль решение систем уравнений методом гаусса=Паскаль решение систем уравнений методом гаусса.

Так же можно разложить определитель по любой строке или столбцу.

Изложенный метод применим к вычислению определителей 4-го и т.д. порядков.

Пример3. Вычислить определитель разложением по элементам первой строки

Паскаль решение систем уравнений методом гаусса

Решение: Элементы первой строки

А11 = (-1) 1+1 . М11 =Паскаль решение систем уравнений методом гаусса=4+1=5.

М11 получили, вычеркнув первую строку и первый столбец.

А12 = (-1) 1+2 . М12 = — Паскаль решение систем уравнений методом гаусса= — (8+3) = — 11.

М12 получили, вычеркнув первую строку и второй столбец.

А13 = (-1) 1+3 . М13 = Паскаль решение систем уравнений методом гаусса= 2-3 = — 1.

М13 получили, вычеркнув первую строку и третий столбец.

Паскаль решение систем уравнений методом гаусса= 1.5+2. (-11) — 2. (-1) = — 15

Видео:Решение системы уравнений методом Гаусса. Бесконечное множество решенийСкачать

Решение системы уравнений методом Гаусса. Бесконечное множество решений

2. Язык программирования Паскаль

Видео:Математика без Ху!ни. Метод Гаусса.Скачать

Математика без Ху!ни. Метод Гаусса.

2.1 Структура программы

Язык Паскаль, начиная с момента своего создания Н. Виртом в 1971г., играет особую роль м в практическом программировании, и в его обучении. С непревзойденной четкостью в нем реализованы принципы структурного программирования. Трансляторы для программ, написанных на Паскале, разработаны для различных компьютеров и в настоящее время имеют множество разновидностей. Они являются компиляторами, обрабатывающими разработанные программистами тексты программ.

Существует много версий языка Паскаль. Различия между ними порой весьма велики. Так, базовая версия Вирта имеет многократно меньше возможностей, чем версия Турбо-Паскаль 7.0. (первая, фактически — язык для обучения будущих программистов, а вторая — орудие профессиональных разработчиков прикладного программного обеспечения) Тем не менее, это версии одного языка.

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

Схематически программа представляется в виде последовательности восьми разделов:

описание внешних модулей, процедур и функций;

описание типов переменных;

описание функций и процедур;

Каждый раздел начинается со служебного слова, назначение которого зафиксировано в Паскале так, что его нельзя употреблять для других целей. Так например, описание заголовка начинается со служебного слова program, описание констант -const, описание переменных — var, раздел операторов начинается с begin. Программа заканчивается служебным словом end, после которого ставится точка. Описания величин и операторы друг от друга отделяются знаком «точка с запятой».

Видео:Метод Гаусса Пример РешенияСкачать

Метод Гаусса Пример Решения

2.2 Описание переменных

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

Постоянные величины (константы) чаще всего бывают числовыми или символьными. Значения символьных констант заключаются в апострофы.

Постоянные величины описываются в разделе констант по схеме:

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

Группа типов, значения каждого из которых можно перечислить в некотором списке — скалярные типы. Для них определен порядковая функция ord (x) — номер значения х в списке; функция pred (x) -значение в списке, предшествующее х, и succ (x) — значение в списке, следующее за х.

Упорядоченный тип — это тип, значения которого упорядочены в обычном смысле.

Переменные описываются в раздел описания переменных по схеме:

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

Var a,b,c,: real; k, i: integer; p: Boolean;

Над целыми величинами (тип integer) определены арифметические операции: * (умножение), div (деление нацело), mod (вычисление остатка от деления), +, — (сложение и вычитание); операции перечислены в порядке старшинства. Целый результат дают некоторые стандартные функции (аргумент заключается в круглые скобки):

-абсолютная величина целого хж

квадрат значения х;

целая часть вещественной величины х;

целое число, полученное из вещественного ч по правилу округления;

случайное целое число из интервала от 0 до х

Над вещественными величинами определены операции: *, +, -, /, а также стандартные функции, при вещественном или целом аргументе: abs (x), sqr (x), sin (x), cos (x), ln (x), sqrt (x) — квадратный корень из х, int (x) — целая часть из х, random — случайное число от 0 до 1. Указанные операции и функции дают вещественный результат.

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

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

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

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

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

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

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

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

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

Видео:12. Решение систем линейных уравнений методом ГауссаСкачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

For : = downto do

Видео:12. Метод Гаусса решения систем линейных уравнений. Часть 1.Скачать

12. Метод Гаусса решения систем линейных уравнений. Часть 1.

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

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

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

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

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

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

Workdays= mon. fri;

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

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

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

Видео:Метод Гаусса и метод Жордана-Гаусса ➜ 2 метода за 7 минутСкачать

Метод Гаусса и метод Жордана-Гаусса ➜ 2 метода за 7 минут

2.4 Процедуры и функции

В Паскале подпрограммы называются процедурами и функциями и описываются в разделе с тем же названием.

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

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

Описание формальных параметров может иметь вид

Оператор вызова процедуры имеет вид

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

Функция — это подпрограмма, определяющая единственное скалярное, вещественное или строковое значение. Отличия подпрограммы — функции от процедуры:

заголовок функции начинается со служебного слова function и заканчивается указанием типа значения функции:

function (список описаний формальных параметров): ;

раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции;

обращение к функции — не оператор, а выражение вида:

Видео:Математика без Ху!ни. Метод Гаусса. Совместность системы. Ранг матрицы.Скачать

Математика без Ху!ни. Метод Гаусса. Совместность системы. Ранг матрицы.

3. Описание программы

Видео:Как решить систему уравнений методом Гаусса? Просто с лидеромСкачать

Как решить систему уравнений методом Гаусса? Просто с лидером

3.1 Работа программы

Для решения систем линейных уравнений методом Гаусса и матричным методом создана программа на языке Паскаль. Программа запрашивает исходные данные (рис.1):

матрицу коэффициентов при неизвестных х;

столбец свободных членов

способ решения системы линейных уравнений — вариант 1 или 2.

Паскаль решение систем уравнений методом гаусса

Рисунок 3.1 Ввод исходных данных

В зависимости от выбранного вариант в программе происходит решение системы уравнений методом Гаусса (рис.2) или матричным методом (рис.3) с выдачей на экран результатов:

Паскаль решение систем уравнений методом гаусса

Рисунок 3.2 Результаты расчетов системы линейных уравнений методом Гаусса.

Паскаль решение систем уравнений методом гаусса

Рисунок 3.3 Результаты расчетов системы линейных уравнений матричным методом.

Программа состоит из 7 подпрограмм — 6 процедур и одной функции:

процедура Gauss обеспечивает решение системы линейных уравнений по методу Гаусса;

процедура matrica обеспечивает решение системы линейных уравнений матричным методом;

процедура PrintMatr2 предназначена для выдачи на экран исходной и обратной матрицы;

процедура MultString предназначена для умножения строк матрицы на число r;

процедура AddStrings прибавляет к i1-ой строке матрицы i2-ю, умноженную на число r;

процедура MultMatr предназначена для умножения матриц.

Функция Sign используется для изменения знака на противоположный при вычислении обратной матрицы.

Программа настроена на решение системы 3-х линейных уравнений с тремя неизвестными. Чтобы решить систему из 2-х уравнений с 2-мя неизвестными необходимо в программе изменить значение константы N с N=3 на N =2 (рис.4).

Паскаль решение систем уравнений методом гаусса

Рисунок 3.4. Фрагмент программы с описанием констант и переменных.

Видео:метод Гаусса СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ решение СЛАУСкачать

метод Гаусса СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ решение СЛАУ

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

Название: Разработка программы решения системы линейных уравнений
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа Добавлен 22:38:32 18 июля 2010 Похожие работы
Просмотров: 1002 Комментариев: 21 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно Скачать
Паскаль решение систем уравнений методом гаусса

Видео:решение системы уравнений методом ГауссаСкачать

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

Паскаль решение систем уравнений методом гаусса

Заключение

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

Видео:Линейная алгебра, Матрицы: Метод Гаусса. Высшая математикаСкачать

Линейная алгебра, Матрицы: Метод Гаусса. Высшая математика

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

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

2. « Турбо Паскаль 7.0″, Киев, Торгово-издательское бюро BHV, 1997г.

3. С.А. Немнюгин, «Турбо ПАСКАЛЬ», Практикум, Питер, 2002г.

Видео:Система линейных уравнений. Общее решение. Метод ГауссаСкачать

Система линейных уравнений.  Общее решение. Метод Гаусса

Приложение

«Решение систем линейных уравнений матричным способом и методом Гаусса»

type matr=array [1. n,1. n] of real;

mas=array [1. n] of real;

procedure PrintMatr2 (m,m1: matr; n,nz,nd: integer);

for i: =1 to n do

if (i=1) then write (np: 2,’: ‘)

for j: =1 to n do

write (m [i,j]: nz: nd); write (‘ ‘);

for j: =1 to n do

write (m1 [i,j]: nz: nd);

procedure MultString (var a,b: matr; i1: integer; r: real);

for j: =1 to n do

procedure AddStrings (var а,b: matr; i1, i2: integer; r: real);

for j: =1 to n do

a [i1,j]: =a [i1,j] +r*a [i2,j] ;

b [i1,j]: =b [i1,j] +r*b [i2,j] ;

procedure MultMatr (a,b: matr; var c: matr);

for i: =1 to n do

for j: =1 to n do

for k: =1 to n do

function sign (r: real): shortint;

if (r>=0) then sign: =1 else sign: =-1;

procedure GetMatr (a: matr; var b: matr; m, i,j: integer);

var ki,kj,di,dj: integer;

for ki: =1 to m-1 do

if (ki=i) then di: =1;

for kj: =1 to m-1 do

if (kj=j) then dj: =1;

b [ki,kj]: =a [ki+di,kj+dj] ;

procedure gauss (a: matr; b: mas; var x: mas; n: integer);

For k: =1 to N-1 do

For i: =k+1 to n do

For j: =k+1 to N do

writeln (‘Вывод результатов решения системы уравнений методом Гаусса’);

writeln (‘x [‘,n,’] =’,x [n]: 6: 2);

for i: = (n-1) downto 1 do

For j: =i+1 to n do

x [i]: = (b [i] +s) /a [i, i] ;

writeln (‘x [‘, i,’] =’,x [i]: 6: 2);

procedure matrica (a: matr; y: mas; n: integer);

for i: =1 to n do

for j: =1 to n do z [i,j]: =0;

for i: =1 to n do

for j: =1 to n do

for i: =1 to n do

взятую со знаком i-того элемента j-ой строки. Таким образом,

на месте элементова a [i, i] возникает сумма модулей элементов i-того

столбца (ниже i-ой строки) взятая со знаком бывшего элемента a [i, i],

равенство нулю которой говорит о несуществовании обратной матрицы >

for j: =i+1 to n do

AddStrings (a,z, i,j,sign (a [i, i]) *sign (a [j, i]));

if (abs (a [i, i]) >eps) then

MultString (a,z, i,1/a [i, i]);

for j: =i+1 to n do

AddStrings (a,z,j, i,-a [j, i]);

writeln (‘Обратной матрицы не существует. ‘);

if (a [n,n] >eps) then

for i: =n downto 1 do

for j: =1 to i-1 do

AddStrings (a,z,j, i,-a [j, i]);

else writeln (‘Обратной матрицы не существует. ‘);

writeln (‘Начальная матрица, обратная к ней матрица: ‘);

for i: =1 to n do s [i]: =0;

for i: =1 to n do

for j: =1 to n do

s [i]: =s [i] +z [i,j] *y [j] ;

writeln (‘Вывод результатов решения системы уравненй матричным способом’);

for i: =1 to n do write (‘ ‘, s [i]: 5: 2);

writeln (‘ввод матрицы коэффициентов при неизвестных х’);

for i: =1 to N do

for j: =1 to N do

write (‘ введите a [‘, i,’,’,j,’] => ‘);

writeln (‘ввод столбца свободных членов’);

for i: =1 to N do

write (‘ введите b [‘, i,’] => ‘);

writeln (‘введите вариант ‘);

writeln (‘ 1 — решение системы линейных уравнений методом Гаусса ‘);

write (‘ 2 — решение системы линейных уравнений матричным методом => ‘);

Видео:Метод простых итераций - PascalСкачать

Метод простых итераций - Pascal

Паскаль решение систем уравнений методом гаусса

Паскаль решение систем уравнений методом гаусса

Паскаль решение систем уравнений методом гаусса

Видео:МЕТОД ГАУССА 😉 #егэ #математика #профильныйегэ #shorts #огэСкачать

МЕТОД ГАУССА 😉 #егэ #математика #профильныйегэ #shorts #огэ

Метод решения системы линейных уравнений методом Гаусса. (Прикладное программирование.)

Паскаль решение систем уравнений методом гаусса

Автор работы награжден дипломом победителя II степени

Паспорт проектной работы

Название проекта: Решение системы линейных уравнений методом Гаусса.

Учебный предмет, в рамках которого проводится проект: информатика.

Возраст учащихся, на которых рассчитан проект:15-16 лет.

Состав проектной группы: ученик 10 «А» класса

Тип проекта:

По характеру результатов: практико-направленный;

По форме: практикозначимый;

По профилю: межпредметный;

По числу участников: индивидуальный;

По продолжительности: долгосрочный;

На основе материалов: исследовательский, информационный, практико-направленный.

Цель проекта: Создать программу, решающую систему линейных уравнений, использующая метод Гаусса.

Задачи проекта:

Изучение литературы по языку программирования паскаль и линейным уравнениям.

Составление алгоритма решения линейных уравнений методом Гаусса

Написание программы, находящей неизвестные члены в системе уравнений.

Вопрос проекта: Можно ли написать данную программу в программном обеспечении Pascal ABC.

Предполагаемый продукт проекта: программа, реализующая метод Гаусса.

Этапы работы над проектом:

Первый этап (сентябрь) : изучение литературы по теме линейные уравнения, методы решения линейных уравнений, метод Гаусса, программирование на языке Паскаль.

Второй этап (октябрь): составление математической модели решения линейных уравнений методом Гаусса.

Третий этап (ноябрь): составление алгоритма решения линейных уравнений методом Гаусса в виде блок-схем.

Четвертый этап (декабрь): написание программы по составленным блок-схемам на языке программирования Паскаль.

Пятый этап (январь): разбитие проекта на несколько частей, для того, чтобы было удобнее работать с ним.

Шестой этап (февраль): проверка работоспособности программы, составление тестов, тестирование программы, первоначальная отладка полученной программы.

Седьмой этап (март): окончательная доработка и отладка программы.

Актуальность: Применение теоретических знаний при решении задач различной направленности.

Материально-техническое обеспечение: ПК с ОС Windows 10, ABC Паскаль, MS Word.

При изучении предмета информатика в школе, разделу алгоритмизация и программирование отводится достаточно много времени. В заданиях ЕГЭ задачи по программированию встречаются на всех уровня сложности. Проблема, тем не менее, в том, что эта тема очень сложна для понимания учениками.

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

Цель проекта: Создать программу, решающую систему линейных уравнений, использующая метод Гаусса.

Изучение литературы по языку программирования паскаль и линейным уравнениям.

Составление алгоритма решения линейных уравнений методом Гаусса

Написание программы, находящей неизвестные члены в системе уравнений.

Линейные уравнения. Что это такое? Линейное уравнение – это алгебраическое уравнение, один или несколько членов которого неизвестны.

Такие уравнения являются обычным явлением в школе.

В школах также часто встречаются системы уравнений. Одной из них является система линейных уравнений. Также решение такой системы (линейных уравнений) используется для дешифрования сообщений. Как же решить эти системы уравнений?

Ответ на этот вопрос я нашел в книгах: Бахвалова Н.С., Жидкова Н.П., Кобелькова Г.Г. Численные методы., Волкова Е.А. Численные методы. Особенности метода Гаусса я изучил в пособии Н. Ш. Кремера, «Метод Гаусса». А тонкости программирования очень доступно объяснены в книге Рода Стивенса «Алгоритмы. Теория и практическое применение».

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

1.Методы решений системы уравнений

Наиболее часто применимым является метод подстановки (в нём обычно мы выражаем одну переменную через другую и уже подставим переменную решаем обычное уравнение с одной неизвестной)

Часто встречается и метод сложения(данный метод обычно применяется в тех способах, если у двух уравнений есть неизвестные с одинаковым показателем, и путём сложения их можно убрать)

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

Графический метод решения (используется редко, но употребляется. Обычно такие системы сразу видно, например, уравнение круга на координатной плоскости x^2+y^2=9; или обычное уравнение прямой x+y=-3)

Есть метод подбора (это самый первый способ, который дети изучают в школах, но при этом он почти не используется в дальнейшем)

Также существует метод с определителем(редко используем, но эффективен)

Метод Гаусса (данный метод очень лёгок и понятен, он часто используется в программировании)

Метод Гаусса мы и рассмотрим в данной работе.

2.Возможные случаи решений системы линейных уравнений

У уравнений может быть несколько вариантов решений. Всё это зависит от значений переменных.

Возьмём некоторую систему уравнений:

Истекая из значений коэффициентов(a1,b1,a2,b2) перед неизвестными членами(x,y)

Одним из таких вариантов является случай, когда у выражений вообще нет решений(a1=a2=b1=b2=0 c1≠0 c2≠0)

Также встречаются ситуации, когда у системы целая плоскость является решением(a1=a2=b1=b2=c1=c2=0)

Случай, когда решением системы является прямая – частое явление(a1/a2=b1/b2=c1/c2)

Есть вариант, где нет решения поскольку прямые параллельны (a1/a2=b1/b2≠c1/c2)

И наконец, одно решение(a1*b2-a2*b1≠0)

В пятом случае как раз и применяется метод Гаусса.

Ме́тод Га́усса — классический метод решения системы линейных алгебраических уравнений. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе ступенчатого (или треугольного) вида, из которого последовательно, начиная с последних (по номеру) переменных, находятся все остальные переменные.[2]

История

Хотя, в настоящее время, данный метод повсеместно называется методом Гаусса, он был известен и до К. Ф. Гаусса. Первое известное описание данного метода — в китайском трактате «Математика в девяти книгах», составленном между I в. до н.э. и II в. н. э.[1]

Описание метода

Первым делом система приводится к ступенчатому виду(каждый последующий член должен быть равен 0. Например, в системе два уравнения, тогда в первом уравнении будет оба неизвестных члена, а во втором – только второй). Затем находится каждый последующий член, начиная с конца.

Покажем, как методом Гаусса можно решить следующую систему:

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

Теперь обнулим коэффициент при в третьей строке, вычтя из неё вторую строку, умноженную на :

В результате мы привели исходную систему к треугольному виду, тем самым закончив первый этап алгоритма.

На втором этапе разрешим полученные уравнения в обратном порядке. Имеем:

Y=3 из второго, подставив полученное

y=3, x=2 из первого, подставив полученные и .

Таким образом исходная система решена.

В случае, если число уравнений в совместной системе получилось меньше числа неизвестных, то тогда ответ будет записываться в виде фундаментальной системы решений.

Достоинства метода

Менее трудоёмкий по сравнению с другими методами.

Позволяет однозначно установить, совместна система или нет, если совместна, найти её решение.

Программирование

Данный метод будет запрограммирован в Паскале. В основном буду использоваться условные оператору и циклы с определённым количеством действий.

В начале программы отсеиваются варианты, в которых нет решений.

А в случаях, где вариантами решений являются плоскости или прямые, выводятся не результаты, а ответы «решением является плоскость//прямая».

В случае несоответствия с этими требованиями, начинается анализ компонентов цикла(а именно коэффициентов перед неизвестными). После каждого условия наша блок схема всё увеличивается и увеличивается, приходя к логическому концу – выводу результатов(двух неизвестных).

Текст (код) программы на языке программирования Паскаль приведён в приложении 1 к проекту.

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

В данной работе был рассмотрен метод Гаусса. Была построена блок-схема и составлена программа на языке программирования Паскаль, работающая по данному методу.

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

Гаусс, Карл Фридрих (1777—1855) — немецкий математик, физик и астроном.

Н. Ш. Кремер, «Метод Гаусса», М.: Физматлит ,2009.

Бахвалов Н.С., Жидков Н.П., Кобельков Г.Г. Численные методы. — 8-е изд.. — М.: Лаборатория Базовых Знаний, 2000.

Волков Е.А. Численные методы. — М.: Физматлит, 2003.

Род Стивенс. «Алгоритмы. Теория и практическое применение».

program progect_in_university;

const

var

a: array [1..n, 1..n] of real;

b: array [1..n] of real;

x: array [1..n] of real;

begin

for i := 1 to ndo

for j := 1 to ndo read(a[i, j]);

writeln(‘введите сколько свободных членов’);

for i := 1 to ndo read(b[i]);

for i := 1 to ndo

begin

for j := i + 1 to ndo

begin

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

for k := i + 1 to ndo a[j, k] := a[j, k] + a[j, i] * a[i, k];

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

end;

end;

for i := n — 1 downto 1 do

begin

for j := I + 1 to ndo

end;

for i := 1 to ndo

Поделиться или сохранить к себе: