Система Линейных Уравнений Программа
Программа, предназначенная для решения систем линейных уравнений методом Гаусса Реализован интерфейс схожий с решением задач на листе бумаги. Размер систем уравнений варьируется до 3000 неизвестных. Предусмотрена возможность сохранения исходных данных и результатов счета, а также их распечатка на бумаге.
Программа работает под Win98SE, Win2000sp4, WinXPsp 2. Работа под Vista и Win7 неизвестна, но рекомендуется запускать в режиме совместимости с более ранними версиями Windows и с правами администратора.rn.
Решение систем линейных уравнений. Приведение системы линейных. Программа не. Решение систем линейных алгебраических уравнений – одна из основных задач. Решение системы линейных уравнений методом Гаусса в режиме онлайн, подробно. Онлайн калькулятор. Метод Гаусса. Детальное пошаговое решение системы линейных уравнений.
Дальневосточная академия государственной службы (заочное обучение) Факультет государственного и муниципального управления КУРСОВОЙ ПРОЕКТ по курсу: Информатика на тему: Разработка программы решения системы линейных уравнений Выполнил: студент 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 Блок-схема программы Заключение Заключение Список используемых источников и литературы Приложение Последние десятилетия характеризуются бурным развитием вычислительной техники. Расширяются области применения вычислительных машин и совершенствуются методы их использования. Созданы универсальные языки программирования и разработаны мощные операционные системы.
Системы линейных уравнений появляются почти в каждой области прикладной математики. В некоторых случаях эти системы уравнений непосредственно составляют ту задачу, которую необходимо решать, в других случаях задача сводится к такой системе. Чтобы быстро справится с решением системы линейных уравнений, можно воспользоваться средствами вычислительной техники - составить программу на языке программирования. Идея метода Гаусса состоит в последовательном исключении неизвестных. Алгоритм решения системы уравнений этим методом проследим на примере. Из третьего следует х 3 =-3, подставим его во второе, получим х 2 = - 2. Далее подставим найденные х 2 и х 3 в первое уравнение, получим х 1 = 1.
Решение системы: х 1 = 1, х 2 = - 2, х 3 = - 3. Примечание: если система уравнений не содержит уравнения с коэффициентом 1 при х 1, тогда исключение х 1 из второго и третьего достигается умножением сначала первого на коэффициент второго, а второго на коэффициент первого. Затем умножаем первое на коэффициент третьего, а третье на коэффициент первого. Таким образом при вычитании исключаем х 1. Запишем систему линейных 3 уравнений с 3 неизвестными.
(-1) = - 15 Язык Паскаль, начиная с момента своего создания Н. Виртом в 1971г., играет особую роль м в практическом программировании, и в его обучении. С непревзойденной четкостью в нем реализованы принципы структурного программирования. Трансляторы для программ, написанных на Паскале, разработаны для различных компьютеров и в настоящее время имеют множество разновидностей.
Они являются компиляторами, обрабатывающими разработанные программистами тексты программ. Существует много версий языка Паскаль. Различия между ними порой весьма велики. Так, базовая версия Вирта имеет многократно меньше возможностей, чем версия Турбо-Паскаль 7.0. (первая, фактически - язык для обучения будущих программистов, а вторая - орудие профессиональных разработчиков прикладного программного обеспечения) Тем не менее, это версии одного языка. Любая Паскаль - программа является текстовым файлом с собственным именем и с расширением.



Паскаль - программа имеет вид последовательности символов латинских и русских букв, арабских цифр, знаков операций, скобок, знаков препинания и некоторых дополнительных символов. В нем можно выделить описания данных и операторы, описывающие действия, которые надо выполнить машине над этими данными. Схематически программа представляется в виде последовательности восьми разделов: заголовок программы; описание внешних модулей, процедур и функций; описание меток; описание констант; описание типов переменных; описание переменных; описание функций и процедур; раздел операторов.
Каждый раздел начинается со служебного слова, назначение которого зафиксировано в Паскале так, что его нельзя употреблять для других целей. Так например, описание заголовка начинается со служебного слова program, описание констант -const, описание переменных - var, раздел операторов начинается с begin.
Программа заканчивается служебным словом end, после которого ставится точка. Описания величин и операторы друг от друга отделяются знаком 'точка с запятой'. Для обозначения величин используются имена.
Они состоят из латинских букв и цифр, причем первым символом должна быть буква. Постоянные величины (константы) чаще всего бывают числовыми или символьными. Значения символьных констант заключаются в апострофы. Постоянные величины описываются в разделе констант по схеме: Const = Данные, обрабатываемые программой, могут быть различных типов (числовые, символьные, строки, массивы и т.д.). Тип определяет область допустимых значений, а также операции и функции, применяемые к величинам этого типа. В Паскале имеется несколько встроенных простых типов со стандартными именами.
Группа типов, значения каждого из которых можно перечислить в некотором списке - скалярные типы. Для них определен порядковая функция ord (x) - номер значения х в списке; функция pred (x) -значение в списке, предшествующее х, и succ (x) - значение в списке, следующее за х.
Упорядоченный тип - это тип, значения которого упорядочены в обычном смысле. Переменные описываются в раздел описания переменных по схеме: Var: Имена в списке разделяются запятой.
В этом разделе может быть описано несколько переменных разного типа, например: Var a,b,c,: real; k, i: integer; p: Boolean; Над целыми величинами (тип integer) определены арифметические операции:. (умножение), div (деление нацело), mod (вычисление остатка от деления), +, - (сложение и вычитание); операции перечислены в порядке старшинства. Целый результат дают некоторые стандартные функции (аргумент заключается в круглые скобки). Abs (x) Sqr (x) Trunk (x) Round (x) Random (x) -абсолютная величина целого хж квадрат значения х; целая часть вещественной величины х; целое число, полученное из вещественного ч по правилу округления; случайное целое число из интервала от 0 до х Над вещественными величинами определены операции:., +, -, /, а также стандартные функции, при вещественном или целом аргументе: abs (x), sqr (x), sin (x), cos (x), ln (x), sqrt (x) - квадратный корень из х, int (x) - целая часть из х, random - случайное число от 0 до 1. Указанные операции и функции дают вещественный результат.
Множество всех символов образуют символьные величины (тип char), которые являются упорядоченными. Выражения - это конструкции, задающие правила вычисления значений переменных.
В общем случае выражения строятся из переменных, констант, функций с помощью операций и скобок. Эта роль выражения отражена в основном операторе языка - операторе присваивания. Он имеет следующий вид:: = Тип переменной и тип выражения должны быть согласованы (величины принадлежат к одному и тому же типу). В Паскале можно вводить с клавиатуры числовые и символьные данные. Имеются две встроенные процедуры (подпрограммы) ввода: 1) read ; 2) readln.
Процедура readln отличается от read только тем, что при завершении ввода курсор перемещается в начало строки. Программа на Паскале может выводить на экран или на принтер значения числовых или символьных выражений. Имеются две процедуры вывода на экран: 1) write ; 2) writeln. Процедура write (x1,x2,x3,xn) печатает на экран значения выражения из списка х1, х2,хn. Для вывода на принтер используются те же процедуры с добавлением служебного слова lst перед списком выражений: Пример: write (lst,’ нет решений‘); Паскаль - это язык структурного программирования.
Это значит, что программа должна выражать свои мысли очень дисциплинированно, с использованием малого числа четко оговоренных конструкций, используя как чередование их, так и вложения друг в друга. Не рекомендуется (хотя и возможно) использовать оператор перехода goto. Реализация последовательности действий (т.е. Структуры следования) выполняется с помощью составного оператора: Begin end Раздел операторов в программе всегда является составным оператором.
Служебные слова begin и end часто называют операторными скобками. Для реализации развилки в Паскале предусмотрены два оператора: условный оператор и оператор варианта (выбора). Они предназначены для выделения из составляющих их операторов одного, который и выполняется. Структура и действие условного оператора таковы: IF Then Else Условный оператор может быть неполным, т.е. Не содержать часть “else '. В этом случае, если значение логического выражения равно false, условный оператор не вызывает никаких действий.
Оператор варианта имеет следующую форму: Case of:;:;:; end; Выражение, стоящее между служебными словами case и of, должно иметь значение ординального типа. Любой список констант может состоять из одной константы. Оператор варианта вычисляет значение выражения, записанного после case. Если его значение совпадает с одной из констант в некотором списке, то выполняется оператор, стоящий после этого списка. Если значение выражения не совпало ни с одной константой во всех вариантах, то оператор варианта ничего не делает. Для реализации циклов в Паскале имеются три оператора.
Если число повторений известно заранее, то удобно воспользоваться оператором цикла с параметром. В других случаях следует использовать операторы цикла с предусловием (цикл 'пока') или с постусловием (цикл 'до'). Цикл с предусловием является наиболее мощным в Паскале. Другие операторы цикла можно выразить через него.
Его форма такова: While do Действие: вычисляется значение логического выражения. Если оно равно true, то выполняется оператор, после чего снова вычисляется значение логического выражения, в противном случае действие заканчивается. Оператор цикла с постусловием имеет форму: Repeat Until Действие: выполняется последовательность операторов. Далее вычисляется значение логического выражения.
Если оно равно true, то действие заканчивается, в противном случае снова выполняется последовательность операторов цикла и т.д. Оператор цикла с параметром предусматривает повторное выполнение некоторого оператора с одновременным изменением по правилу арифметической прогрессии значения управляющей переменной (параметра) этого цикла. Оператор цикла с параметром имеет две формы. Форма 1: For: = to do Параметр, выражение 1, выражение 2 должны быть одного ординального типа. Параметр в этом цикле возрастает.
Действие эквивалентно действию следующего составного оператора: Begin: =; while do begin;: = succ end end. Если в этом описании отношение =, а функцию succ на pred, то параметр в цикле будет убывать, в этом случае цикл с параметром принимает форму 2. Форма 2: For: = downto do В Паскале кроме простых типов данных: 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. В описании массива указывается тип его элементов и типы их индексов. В Паскале подпрограммы называются процедурами и функциями и описываются в разделе с тем же названием.
Все имена, описанные в программе до процедуры, действуют во всей программе и в любой ее подпрограмме. Они называются глобальными, в отличии от локальных имен, описанных в процедуре и действующих лишь в ней. Данные для обработки могут передаваться процедуре через глобальные имена или через аргументы процедуры.
В процедуре каждый аргумент имеет свое имя - формальный параметр, описываемый в заголовке процедуры по схеме Procedure Описание формальных параметров может иметь вид: или var: Оператор вызова процедуры имеет вид ; Указанные выражения называются фактическими параметрами. Их список должен точно соответствовать списку описаний формальных параметров процедуры. Во время вызова процедуры каждому параметру-значению присваивается значение соответствующего фактического параметра и поэтому их используют для передачи входных данных.
Параметры - переменные используются для представления результатов процедуры. Функция - это подпрограмма, определяющая единственное скалярное, вещественное или строковое значение. Отличия подпрограммы - функции от процедуры: заголовок функции начинается со служебного слова function и заканчивается указанием типа значения функции: function (список описаний формальных параметров):; раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции; обращение к функции - не оператор, а выражение вида: Для решения систем линейных уравнений методом Гаусса и матричным методом создана программа на языке Паскаль. Программа запрашивает исходные данные (рис.1): матрицу коэффициентов при неизвестных х; столбец свободных членов способ решения системы линейных уравнений - вариант 1 или 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).