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

Программная реализация метода Крамера

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

Рассмотрим вариант программы, решающей методом Крамера системы из трёх линейных уравнений с тремя неизвестными. В ней требуется объявить четыре функции: одна (determinant) вычисляет определитель системы, а три (determinantX1, determinant X2, determinantX3) вычисляют определители при неизвестных.

Как и положено при объявлении функций, укажем в них формальные параметры — массивы, хранящие значения определителя системы и определителей при неизвестных. Те же формальные параметры указываются и при описании функций (в конце программы, после функции main). Тело каждой функции содержит и запись математических операций вычисления определителей.

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

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

Код C++

По тому же алгоритму несложно уже написать программу, вычисляющую мотодом Крамера системы их двух линейных уравнений с двумя неизвестными, а также вариант программы с ветвлением на случаи систем 2х2 и 3х3.

Видео:Метод Крамера за 3 минуты. Решение системы линейных уравнений - bezbotvyСкачать

Метод Крамера за 3 минуты. Решение системы линейных уравнений - bezbotvy

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

РЕШЕНИЕ СИСТЕМЫ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ МЕТОДОМ КРАМЕРА

2. Постановка задачи

3. Метод Крамера

4. Программная реализации алгоритма метода Крамера

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

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

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

Зачастую слишком многого требований от инструментов, с которыми работаем, особенно, когда это касается языков программирования. Хотя таких языков существует великое множество, но только некоторые из них по-настоящему сильны. Эффективность языка заключается в его мощности и одновременно — в гибкости. Синтаксис языка должен быть лаконичным, но ясным. Он должен способствовать созданию корректного кода и предоставлять реальные возможности, а не ультрамодные (и, как правило, тупиковые) решения. Наконец, мощный язык должен иметь одно нематериальное качество: вызывать ощущение гармонии. Как раз таким языком программирования и является С#. Созданный компанией Microsoft для поддержки среды .NET Framework, язык С# опирается на богатое наследие в области программирования. Его главным архитектором был ведущий специалист в этой области — Андерс Хейлсберг (Anders Hejlsberg).

С# -— прямой потомок двух самых успешных в мире компьютерных языков: С и C++. От С он унаследовал синтаксис, ключевые слова и операторы. Он позволяет построить и усовершенствовать объектную модель, определенную в C++. Кроме того, С# близко связан с другим очень успешным языком: Java. Имея общее происхождение, но различаясь во многих важных аспектах, С# и Java — это скорее «двоюродные братья». Например, они оба поддерживают программирование распределенных систем и оба используют промежуточный код для достижения переносимости, но различаются при этом в деталях реализации. Опираясь на мощный фундамент, который составляют унаследованные характеристики, С# содержит ряд важных новшеств, поднимающих искусство программирования на новую ступень. Например, в состав элементов языка С# включены такие понятия, как делегаты (представители), свойства, индексаторы и события. Добавлен также синтаксис, который поддерживает атрибуты; упрощено создание компонентов за счет исключения проблем, связанных с COM (Component Object Model — модель компонентных объектов Microsoft — стандартный механизм, включающий интерфейсы, с помощью которых объекты предоставляют свои службы другим объектам).

И еще. Подобно Java язык С# предлагает средства динамического обнаружения ошибок, обеспечения безопасности и управляемого выполнения программ. Но, в отличие от Java, C# дает программистам доступ к указателям. Таким образом, С# сочетает первозданную мощь C++ с типовой безопасностью Java, которая обеспечивается наличием механизма контроля типов (type checking) и корректным использованием шаблонных классов (template class). Более того, язык С# отличается тем, что компромисс между мощью и надежностью тщательно сбалансирован и практически прозрачен (не заметен для пользователя или программы).

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

2. Постановка задачи

К решению систем линейных уравнений сводятся многочисленные практические задачи. Можно с полным основанием утверждать, что решение линейных систем является одной из самых распространенных и важных задач вычислительной математики [1,2].

Решение систем линейных уравнений методом крамера программирование(1)

Совокупность коэффициентов этой системы запишем в виде таблицы:

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

Запишем систему n линейных алгебраических уравнений с n неизвестными.

Данная таблица n 2 элементов, состоящая из n строк и n столбцов, называется квадратной матрицей порядка n . Если подобная таблица содержит nm элементов, расположенных в n строках и m столбцах, то она называется прямоугольной матрицей.

Используя понятие матрицы А , систему уравнений (3) можно записать в векторно-матричном виде:

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

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

или, в более компактной записи,

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

где х и b — вектор-столбец неизвестных и вектор-столбец правых частей соответственно.

3. Метод Крамера

Алгоритм Крамера, согласно [1,2], выражается формулами

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

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

Решение систем линейных уравнений методом крамера программирование…,Решение систем линейных уравнений методом крамера программирование

При этом необходимым и достаточным условием существование единственного решения, является не равенство нулю главного определителя системы

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

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

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

4. Программная реализации алгоритма МЕТОДА КРАМЕРА

Основным методом класса Programm, является метод Main. С него начинается выполнение программы. В нашем случае, он содержит простейший пользовательский интерфейс, по средством которого пользователь вводит размерность системы, элементы матрицы системы А и вектора правых частей b (1, глава 1), а после необходимых вычислений на экране появляется результат – элементы вектора x .

В работе, алгоритм Крамера для большей читабельности, разбит на отдельные функции – методы:

staticdoubledet(intn, double [,]B) – метод вычисляющий определитель матрицы. Параметрами этого метода являются – количество уравнений (n ), а так же матрица, в нашем случае B . Определитель матрицы вычисляется непосдедственно, т.е. разложением по первой строке [3];

staticvoidequal(intn, double [,]A, double [,]B) – метод присваивающий матрицы (Решение систем линейных уравнений методом крамера программирование), где n -размерность матриц;

staticintSLAU_kramer(intn, double[,] A, double[] b, double[] x) – метод реализующий метод Крамера, согласно блок схеме главы 2.

В качестве языка программирования мы использовали объектно – ориентированный язык С#. Наш выбор обусловлен его гибкостью в разработке и создании программых продуктов 7.

Текст программы приведет ниже.

static void Main(string[] args)

int n; /* количество уравнений */

double [,] A = new double [3,3]; /* матрица системы */

double [] b = new double [3]; /* вектор правых частей */

double [] x = new double [3]; /* вектор решения */

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

Решение систем линейных алгебраических уравнений  методом Крамера.

Привет студент

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

Приднестровский государственный университет им. Т.Г. Шевченко

Кафедра программного обеспечения вычислительной техники

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

КУРСОВАЯ РАБОТА

«Информатика и программирование»

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

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

тема: «ПРОГРАММНАЯ РЕАЛИЗАЦИЯ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ»

студентка группы ИТ13ДР62ИС1

Арабаджи Федор Иванович

ЗАДАНИЕ

на курсовую работу по дисциплине

«ПРОГРАММИРОВАНИЕ»

Студента группы ________ — ___________________

утверждена протоколом кафедры _________ № _____ от «____» ____________ 20___ г.

Цель курсовой работы:

Задачи курсовой работы:

Результаты курсовой работы:

График обязательных консультаций:

Дата сдачи записки на регистрацию «_____» __________20__ г.

Дата защиты курсовой работы «_____» __________20__ г.

Задание принял к исполнению «_____» __________20__ г. ___________/________________/

Руководитель работы ______________________ /________________/

СОДЕРЖАНИЕ

2 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ………………………………….

2.3 Метод обратной матрицы…………………………………………….

3 РУКОВОДСТВО ПРОГРАММИСТА………………………………………..

3.1 Введение и общие сведения……………………………………………

3.2 Структура программного продукта………………………………….

3.4 Описание исходных текстов программного продукта…………….

3.5 Аппаратная и программная часть…………………………………….

3.6 Результаты тестирования и опытной эксплуатации………………….

4 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ……………………………………….

4.3 Установка программного продукта……………………………….…..

4.4 Запуск и работа с программным продуктом…………………….……

4.5 Удаление программного продукта…………………………………….

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ…………………………….

Введение

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

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

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

Решение систем линейных алгебраических уравнений является одной из основных задач линейной алгебры. Эта задача имеет важное прикладное значение при решении научных и технических проблем. Кроме того, является вспомогательной при реализации многих алгоритмов вычислительной математики, математической физики, обработки результатов экспериментальных исследований.

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

Решение систем линейных алгебраических уравнений является одной из фундаментальных задач математики. В частности, она возникает при решении краевых задач для дифференциальных и интегральных уравнений, к которым сводятся реальные проблемы техники, физики, экономики, математики и др. Подобные программы довольно популярны, в особенности среди пользователей глобальной сети Интернет. Они могут быть широко применимы в среде образовательных учреждений. Например, преподавателю необходимо проверить десятки работ студентов в короткий срок или составить варианты контрольных работ, помочь студенту в решении систем линейных уравнений и в их объяснении, так как программа будет содержать краткую теоретическую справку.

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

Учитывая современные возможности, можно облегчить процесс решения систем линейных уравнений. Данную задачу можно выполнить программно для упрощения и автоматизации процесса решения систем линейных уравнений методом Гаусса, методом Крамера, а также методом обратной матрицы с помощью Windows-приложения, реализованного средствами языка высокого уровня С#.

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

1 постановка задачи

В данной курсовой работе необходимо создать программный продукт при помощи Windows Forms на языке C#, который представлял бы возможность:

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

Программа должна выполнять решение систем линейных уравнений методом Гаусса, методом Крамера или методом обратной матрицы.

Окно программы должно содержать:

  • пункты меню: Файл, Правка, Примеры, Справка, О программе;
  • поле выбора метода решения системы линейных уравнений;
  • поле выбора количества уравнений в системе;
  • поля для входных и выходных данных;
  • кнопки операций.

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

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

2 описание предметной области

Решение систем линейных алгебраических уравнений – одна из фундаментальных задач математики. Система m линейных алгебраических уравнений с n неизвестными (или, линейная система, также употребляется аббревиатура СЛАУ) в линейной алгебре — это система уравнений вида (Рисунок 1)

Рисунок 1- Система уравнений

В системе уравнений (Рисунок 1) m является количеством уравнений, а n количество неизвестных. x1, x2,xn это неизвестные, которые надо определить. a11, a12, … amn коэффициенты системы, а b1, b2, … bm свободные члены. Индексы коэффициентов (aij) системы обозначают номера уравнения (i) и неизвестного (j), при котором стоит этот коэффициент, соответственно.

Существуют следующие способы решения систем линейных уравнений:

– метод обратной матрицы.

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

Метод Гаусса – классический метод решения системы линейных алгебраических уравнений. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру), находятся все переменные системы. Хотя в настоящее время данный метод повсеместно называется методом Гаусса, он был известен и до К.Ф. Гаусса. Первое известное описание данного метода приведено в китайском трактате «Математика в девяти книгах», составленном между первым веком до н. э. и вторым веком н. э.

Далее приведено более подробное описание метода. Пусть исходная система будет вида (Рисунок 2):

Рисунок 2 — Исходная система уравнений

На рисунке 2.1 указана матрица A, вектор x и вектор b. Матрицей А называется основная матрица системы, вектором x – столбец неизвестных, вектором – столбец свободных членов.

Рисунок 2.1 — Матрица A

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

Рисунок 2.2 — Матрица треугольного вида

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

Тогда переменные xj1, … , xjr называются главными переменными. Все остальные называются свободными.

Если хотя бы одно число βi ≠ 0, где i > r, то рассматриваемая система несовместна, то есть у неё нет ни одного решения.

Пусть βi ≠ 0 для любых i > r. Перенесём свободные переменные за знаки равенств и поделим каждое из уравнений системы на свой коэффициент при самом левом x (см. рисунок 2.3):

Рисунок 2.3- Несовместная система

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

2.2 Метод Крамера

Метода Крамера – способ решения систем линейных алгебраических уравнений с числом уравнений равным числу неизвестных с ненулевым главным определителем матрицы коэффициентов системы, причём для таких уравнений решение существует и единственно. Назван по имени Габриэля Крамера, предложившего этот метод в 1750 г.

Рисунок 2.4 — Система линейных уравнений

Для системы n линейных уравнений (рисунок 2.4) с n неизвестными с определителем матрицы системы ≠ 0, решение записывается по формуле показанном на рисунке 2.5:

Рисунок 2.5 — Нахождение решения

i-ый столбец матрицы системы заменяется столбцом свободных членов.

2.3 Метод обратной матрицы

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

Обратная матрица – такая матрица A −1 , при умножении на которую, исходная матрица A даёт в результате единичную матрицу E (формула 2.6).

Обратная матрица находится по формуле 2.7.

В формуле 2.7 det обозначает определитель.

Если необходимо решить систему линейных уравнений Ax = b, где b – ненулевой вектор, в который входят свободные члены, x – искомый вектор. Если обратная матрица A -1 существует, то x = A -1 b. В противном случае либо размерность пространства решений больше нуля, либо их нет вовсе.

3 ПРОграммная реализация решения задачи

3.1 Введение и общие сведения

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

Программа «MATrix» предназначена для решения систем линейных алгебраических уравнений тремя методами:

  • методом Гаусса;
  • методом Крамера;
  • методом обратной матрицы.

Данный программный продукт значительно упрощает получение корней систем линейных уравнений.

3.2 Структура программного продукта

В процессе разработки программного продукта были реализованы следующие формы:

  • Formcs – форма приветсвия;
  • MATrix.cs – форма, обеспечивающая решение систем линейных алгебраических уравнений методом Гаусса, методом Крамера или методом обратной матрицы по выбору пользователя;
  • About.cs – форма, содержащая информацию о программном продукте.

На рисунке 3.1 изображена функциональная схема.

🎦 Видео

Решение системы трех уравнений по формулам КрамераСкачать

Решение системы трех уравнений по формулам Крамера

Решение системы уравнений методом Крамера 2x2Скачать

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

Метод Крамера для решения систем линейных алгебраических уравнений (СЛАУ) в ExcelСкачать

Метод Крамера для решения систем линейных алгебраических уравнений (СЛАУ) в Excel

10. Метод Крамера решения систем линейных уравнений.Скачать

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

2 минуты на формулы Крамера ➜ Решение систем уравнений методом КрамераСкачать

2 минуты на формулы Крамера ➜ Решение систем уравнений методом Крамера

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

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

Решение СЛАУ методом Крамера. Линейная алгебраСкачать

Решение СЛАУ методом Крамера. Линейная алгебра

Решение систем линейных уравнений, урок 2/5. Метод Крамера (метод определителей)Скачать

Решение систем линейных уравнений, урок 2/5. Метод  Крамера (метод определителей)

Линейная алгебра, 8 урок, Метод КрамераСкачать

Линейная алгебра, 8 урок, Метод Крамера

Математика Без Ху!ни. Система линейных уравнений. Метод Крамера.Скачать

Математика Без Ху!ни. Система линейных уравнений. Метод Крамера.

Решение системы линейных алгебраических уравнений (СЛАУ) в Excel МАТРИЧНЫМ МЕТОДОМСкачать

Решение системы линейных алгебраических уравнений (СЛАУ) в Excel МАТРИЧНЫМ МЕТОДОМ

VB.net - Решаем систему линейных уравнений. Метод Крамера.Скачать

VB.net - Решаем систему линейных уравнений. Метод Крамера.

Метод Крамера Пример РешенияСкачать

Метод Крамера Пример Решения

Система 4x4. Решение по правилу Крамера.Скачать

Система 4x4. Решение по правилу Крамера.

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

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

Метод Крамера для решения систем линейных уравнений 3x3Скачать

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

Метод Крамера НАГЛЯДНО за 4 минуты. Решение системы линейных уравненийСкачать

Метод Крамера НАГЛЯДНО за 4 минуты. Решение системы линейных уравнений
Поделиться или сохранить к себе:
Название: Решение системы линейных алгебраических уравнений методом Крамера
Раздел: Рефераты по информатике
Тип: курсовая работа Добавлен 14:23:38 18 июня 2010 Похожие работы
Просмотров: 950 Комментариев: 21 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно Скачать