Vba решение системы линейных уравнений

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

Министерство образования и науки Республики Башкортостан

ГАОУ СПО «Стерлитамакский колледж строительства, экономики и права»

«Программирование в компьютерных системах»

по разделу 1 Объектно-ориентированное программирование

междисциплинарного курса 01.02. Прикладное программирование

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

методом Гаусса средствами языка программирования Visual Basic

3 курса, группы ПО-31

Системы линейных алгебраических уравнений

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

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

Приложение А (программный код)

В курсовом проекте рассмотрена программа, реализующая приближенное решение систем линейных уравнений графическим способом, с подключением модуля “Метод Гаусса”, созданная в среде программирования Visual Basic 2010.

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

Цель курсового проекта:

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

Задачи курсового проекта:

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

2. Выполнить отладку программного модуля «Метод Гаусса» и приближенного решения с использованием специализированных программных средств.

3. Выполнить тестирование программного модуля «Метод Гаусса» и приближенного решения по составленным тестовым заданиям.

Системы линейных алгебраических уравнений.

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

Где m -количество линейных уравнений;

n -количество переменных ;

x 1 , x2, …, xn — неизвестные, которые надо определить;

Система называется однородной, если все её свободные члены равны нулю ( b 1 = b2 = … = bm = 0 ), иначе — неоднородной.

Система называется квадратной, если число m уравнений равно числу n неизвестных.

Решение системы — совокупность n чисел c 1 , c2, …, cn , таких что подстановка каждого ci вместо xi в систему обращает все её уравнения в тождества.

Система называется совместной, если она имеет хотя бы одно решение, и несовместной, если у неё нет ни одного решения.

Совместная система вида может иметь одно или более решений.

Совместная система вида называется определённой, если она имеет единственное решение; если же у неё есть хотя бы два различных решения, то она называется неопределённой. Если уравнений больше, чем неизвестных, она называется переопределённой.

Система линейных уравнений может быть представлена в матричной форме как:

Где A — это матрица системы,

x — столбец неизвестных,

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

Если к матрице A приписать справа столбец свободных членов, то получившаяся матрица называется расширенной.

Эквивалентные системы линейных уравнений

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

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

Система линейных алгебраических уравнений

,

Где C — невырожденная матрица.

В частности, если сама матрица A — невырожденная, и для неё существует обратная матрица A -1 , то решение системы уравнений можно формально записать в виде

.

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

Решение систем линейных уравнений графическим способом заключается в построении графика каждого уравнения , входящего в данную систему, в одной координатной плоскости и нахождении точки пересечения этих графиков . Координаты этой точки ( x; y ) и будут являться решением данной системы уравнений.

Если прямые , являющиеся графиками уравнений системы, пересекаются , то система уравнений имеет единственное р ешение.

Если прямые , являющиеся графиками уравнений системы, параллельны , то система уравнений не имеет решений .

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

Примеры

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

Прямую y=2x-3 провели через точки (0; -3) и (2; 1).

Прямую y=x+1 провели через точки (0; 1) и (2; 3).

Графики данных уравнений системы 1) пересекаются в точке А(4; 5). Это и есть единственное решение данной системы.

Ответ: (4; 5) .

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

Прямую y=2x+9 проводим через точки (0; 9) и (-3; 3).

Прямую y=-1,5x+2 проводим через точки (0; 2) и (2; -1).

Наши прямые пересеклись в точке В (-2; 5).

Ответ: (-2; 5).

Метод Гаусса

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

Пусть исходная система выглядит следующим образом

Где A называется основной матрицей системы,

b — столбцом свободных членов.

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

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

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

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

Перенесём свободные переменные за знаки равенств и поделим каждое из уравнений системы на свой коэффициент при самом левом x :

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

Разрешается:

1) изменять порядок строк матрицы, что соответствует изменению порядка уравнений;

2) умножать строки на любые отличные от нуля числа, что соответствует умножению соответствующих уравнений на эти числа;

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

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

Для начала избавимся от переменной x 1 во втором уравнении. Для этого из второго уравнения вычтем первое уравнение, предварительно умноженное на 3:

.

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

Ответ найден. Запишем то же решение, но уже без промежуточных пояснений. Римскими цифрами I и II будем обозначать первое и, соответственно, второе уравнения.

означает, что из второго уравнения вычли утроенное первое уравнение

означает, что левую и правую части второго уравнения разделили на (-7).

Итак, решение методом Гаусса заданной СЛАУ будет иметь вид:

Обычно работают с матричной формой записи

В матричной форме записи метод Гаусса станет таким:

Visual Basic

Visual Basic — это простой и быстрый способ создания программ для Microsoft Windows. Даже если вы не знакомы с программированием для Windows, с Visual Basic вы получите полный набор средств для упрощения разработки.

Так что же такое Visual Basic? Слово «Visual» относится к методу, используемому для создания того, что видит пользователь — графического пользовательского интерфейса , или GUI. Слово «Basic» относится к аббревиатуре BASIC (Beginners All-Purpose Symbolic Instruction Code — многоцелевой код символьных инструкций для начинающих) языка программирования, который используется программистами намного чаще, чем любой другой язык в истории вычислений. Для создания различных полезных программ достаточно изучить лишь некоторые из его возможностей.

Окно Form является вашей программы. Его можно двигать по экрану, увеличивать, уменьшать, менять его свойства в окне свойств, упорядочивать на нём объекты и в окне Code писать для него процедуры. Само окно тоже считается как объект, так сказать, «высший объект». Один из объектов всегда является «актуальным объектом», чьи свойства будут перечислены в окне свойств. Объект становится актуальным, когда на него кликнут. Узнают это чаще всего по обрамлению или по какой-нибудь другой маркировке.

Здесь всегда перчислены свойства актуального объекта (см. выше). Свойство, представленное синим, может быть изменено в строке справа. Иногда нужно вносить данные самому, иногда можно выбирать из выпадающего списка, который отображён в строке справа в виде маленькой стрелки вниз. Заметьте, что при изменении свойств окна, изменения происходят синхронно.

Здесь можно выбрать объекты, которые нужно поместить на форме. Например, чтобы нарисовать линию, кликните на символ линии. Теперь кликните на то место на форме, где должна начинаться линия и тяните мышь с нажатой кнопкой туда, где эта линия должна кончаться. Отпустите кнопку мышки. Готово! Отдельные объекты будут описаны позже.

В Basic’e процедуры начинаются с команды Sub, потом идёт имя процедуры и (). Оканчиваются процедуры командой End Sub (англ. subroutine: подпрограмма). Между этим стоят команды, принадлежащие этой процедуре. Они будут, при вызове процедуры, следовать одна за другой.

В большинстве своём процедуры — это процедуры события: для каждого события, на которое должна реагировать программа, нужно писать процедуру. Причём Sub, имя процедуры, () и End Sub будут заданы самим Basic’ом.

Процедура события Form_Load выполняется каждый раз при запуске вашего приложения прежде, чем окно появится на экране. Поэтому бесполезно уже в этой процедуре что-либо писать в окне или рисовать (например Print), т. к. это просто не будет сделанно. Окна-то ещё нет!

Событие Click происходит в том случае, если на объекте кликнуть левой кнопкой мыши. Если, к примеру, пользователь щёлкнет на одном из элементов управления, событие Click этого объекта будет тут же исполнено. Можно кликнуть по форме — для этого имеется событие Form_Click, которое может содержать различные процедуры.

Это событие происходит при двойном клике мышкой на каком-либо объекте. Внимание: ещё при первом нажатии произойдёт событие Click, но при мнгновенном втором уже нет.

Это то свойство имеется у всех объектов. Оно определяет имя объекта, под которым этот объект будет применяться в Basic-содах. Это свойство может быть изменено только в режиме design и не в самой программе. Предустановки для этого свойства — это, например, «Form1» у окна. Если где-нибудь в программе нужно обратиться к этому объекту, к примеру, если надо поменять его свойство, то надо использовать имя этого объекта.

Это свойство имеется у окон, кнопок, «этикеток» и у могих других элемнтов управления. У окон это свойство задаёт текст, который будет отображён в заголовке этого окна. Этот текст отображается также в иконке окна в таскбаре. У элементов управления это свойство определяет текст, который находится на самих элементах управления или в близи них. Это свойство может быть изменено как в режиме design, так и в ходе самой программы.

Это свойство имеется у окон и всех элементов управления, кроме таймера (он всегда «невидим»). Это свойство определяет, видим или скрыт объект, и может быть изменено, как в режиме design, так и в ходе программы. Это свойство может принимать значения только True или False.

Это свойство присутсвует у всех окон и элементов управления. Оно определяет будет ли форма или элемент управления реагировать на события произведённые пользователем. Этим свойством они будут либо включены либо выключены. Если элементы управления будут выключены они станут серыми вместо чёрных и становятся неактивными, «потушенными». Это свойство также, как и свойство Visible принимает значения только True или False

Свойства Left, Top

Эти свойства имеются у окон и почти всех элементов управления. Они определяют координаты левого верхнего угла объекта. У окон это координаты относительно экрана, а у элементов управления относительно к верхнему левому углу «внутренней» площади, т. е. окна, в котором они находятся. В режиме design эти свойства могут быть изменены при перетягивании мышкой и в окне свойств. В ходе программы эти свойства могут быть изменены тоже, но уже путём присвоения.

Свойства Width, Height

Эти свойства определяют ширину и высоту объекта. Также Вы можете изменять их как в режиме design, так и в ходе программы. Размеры объекта изменяются тогда сразу.

Командные кнопки (button) применяются чаще всего и являются простейшими элементами управления: как правило — это такие серые ящички, на которых находится текст, как например, «OK» или «Отмена», и по которым просто кликают.

Таймер назван так правильно: он никакой не настоящий элемент управления и на окне невидим, если программа запущена. Всё, что он делает — это в через определённые отрезки времени выполняет какое-нибудь событие, событие Timer’a. Много таймеров применять не надо, т. к. в Windows’e постоянно имеется максимум 16 таймеров одновременно.

Текстовое поле и поле надписи

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

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

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

Программаное обеспечение необходимое для функционирования программы:

Microsoft Visual Studio 2010

Windows Xp , Windows Vista , Windows 7

Visual Basic 2010.

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

Программа вычисляет корни одновременно только 2 уравнений, методом Гаусса, а так же графическим способом.

Описание логической структуры:

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

Структура программы с описанием функций составных частей и связи между ними:

Этот блок программы отвечает за построение системы координат на форме. Первые 2 цикла это разметка по оси Х и по оси Y . Следующие 4 строки, это оси X и Y . И наконец оставшиеся 2 цикла это Засечки по осям координат.

Этот блок отвечает за ввод данных.

Решение поставленной задачи. Первые 4 строки нужны для построения прямых на графике. Остальное, это решение методом Гаусса.

Вывод корней, полученных методом Гаусса.

Построение прямых на графике.

Связи программы с другими программами:

Связи программы с другими программами отсутствуют.

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

Оперативная память: 2Гб;

Процессор: Intel Pentium 4, 3.00 Ггц;

Тип системы: 32 разрядная ОС;

Вызов и загрузка:

Запуск программы происходит через редактор Visual Studio 2010.

В пункте “Файл” нажимаем на “Открыть проект”, далее на жестком диске находим папку с названием SLAU , в ней находим файл SLAU . vbproj . Кликаем на него, после чего запускается программа.

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

После нажатия на кнопку “Построить график”, в правом верхнем углу будет построен график. На это графике будут построены 2 прямые, точка пересечения которых и будет являться примерным решением системы линейных алгебраических уравнений, которые вы ввели в правом углу.

Внизу написаны 2 переменные x 1 и x 2, а так же их значения. Эти переменные были найдены с помощью метода Гаусса, и являются точным решением системы линейных алгебраических уравнений.

После нажмите на кнопку “Построить график”.

Рис3. Выполненная программа.

В ходе курсового проекта рассмотрен метод решения систем линейных уравнений графическим способом, а так же метод Гаусса решения систем линейных уравнений. Для достижения этой цели выполнена систематизация знаний и умений по теме «Решение систем линейных уравнений», применение графики в Visual Basic 2010. Язык программирования Visual Basic отлично подошел для выполнения данного проекта, так как среда разработки языка Visual Basic , включает в себя инструменты для визуального построения интерфейса.

Были выполнены все задачи, а именно:

Построение кода модуля с заданной функциональностью; отладка программных модулей с использованием специализированных программных средств; выполнено тестирование готовых программных модулей и составил отчетную документацию с использованием информационно-коммуникационные технологий.

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

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

http://ru. wikipedia. org

http://www. /index. php? option=com_content&view=article&id=58:&catid=19&Itemid=50

Public Class Form1

Dim Graph1 As Graphics

Dim Pen1 As New Pen ( Color .Black, 2)

Dim Pen2 As New Pen ( Color .Black, 1)

Dim brush1 As New SolidBrush ( Color .Black)

Dim font1 As New Font ( «times new roman» , 7)

Dim X, Y, a1, a2, b1, b2, c1, c2, k1, k2, m1, m2, d, z1, z2, x1, y1 As Single

Private Sub Form1_Load( ByVal sender As System. Object , ByVal e As System. EventArgs ) Handles MyBase .Load

Label1.Text = «Введите коэфициенты при х»

Button1.Text = » Построить граффик «

Private Sub Button1_Click( ByVal sender As System. Object , ByVal e As System. EventArgs ) Handles Button1.Click

Graph1 = Me .PictureBox1.CreateGraphics()

For X = -15 To 15 Step 3

Graph1.DrawString(X, font1, brush1, X * 10 + 150, 150)

For Y = -15 To 150 Step 3

Graph1.DrawString(Y, font1, brush1, 150, 150 — Y * 10)

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

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

Уфимский государственный авиационный технический университет

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

к курсовой работе

Введение


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


1.1 Пояснение метода.


2. Создание приложения


2.1 Создание титульной формы


2.2 Форма ввода размерности систем


2.3 Основная форма


2.4 Форма графика системы линейного уравнения 2 ряда


2.5 Информационные формы


3. Создание программ


3.1 Ввод данных.


3.2 Основная программа.


3.3 Программа построения графика.


3.4 Программа завершения работы приложения.


3.5 Программы перехода между формами.


Заключение


Список литературы


Введение

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

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


1.1 Пояснение метода

Процедура решает неоднородную систему n линейных алгебраических уравнений с n неизвестными:

a1,1 x1 +a1,2 x2 + . +a1,n xn = a1,n+1

a2,1 x1 +a2,2 x2 + . +a2,n xn = a2,n+1

an,1 x1 +an,2 x2 + . +an,n xn =an,n+1

Процедура позволяет найти решение, если определитель основной матрицы A=(aij ) не равен нулю. Для нахождения i-ой компоненты корня ищем определитель:

для всех i = 1..n. Тогда

2. Создание приложения


2.1 Создание титульной формы

При запуске Microsoft Visual Basic 6.0 автоматически открывается окно с предложением создать новый проект Standard EXE. Нажимаем OK.

Начнём создание титульного листа программы. В открывшейся форме (Form1) расставим объекты: Label1,Label2, Label3, PictureBox1, PictureBox2.

Присвоим свойству Caption объекта Label1 значение “УГАТУ-2011”. Так же Label2 — “ Решение систем линейных уравнений”, и Label3 — “метод Крамера”. В свойстве Picture объекта Picture1 и Picture2 выберем изображение.

Создадим меню для данной формы. Для этого в меню Tools выполним команду Menu Editor. В появившемся диалоговом окне напишем названия пунктов меню и названия процедур, которые будут запускаться при выполнении команд меню. Редактор меню с введёнными именами представлен на рисунке.

2.2 Форма ввода размерности системы

При выборе команды «Решить СЛАУ» в меню титульной формы “Файл > Решить СЛАУ” откроется главная форма( Form2).

Процесс создания Form2:

На Form2 мы поместили объекты Label1,TextBox1, TextBox2.

В TextBox1 и TextBox2 вводится размерность системы. Нажав “ENTER” на клавиатуре, после ввода, открывается основная форма.

2.3 Основная форма

Процесс создания Form3:

На Form3 мы поместили объекты Frame1, Frame2, Frame3, Command Button1, Command Button2, Label1, TextBox1, PictureBox1, PictureBox2, PictureBox3.

В Textbox1 вводятся значения системы с левого верхнего значения в право. В PictureBox1 изображается матрица A — значений имеющие неизвестные аргументы Хij. В PictureBox2 изображается одномерная матрица B, значения не имеющие неизвестные аргументы.

Меню данной формы состоит из раздела меню Файл и Справка. Раздел Файл имеет подменю На главное, Ввести размерность, Выход. При выборе Файл > На главное открывается титульная форма, а основная форма закрывается. При выборе Файл > Ввести размерность открывается форма ввода размерности системы, а основная — закрывается. Раздел Справка имеет подсистемы О создателе, О методе. При выборе Справка > О создателе открывается форма, в котором отображается информация о создателе, при команде Справка > О методе открывается форма, в котором отображается информация о методе.

При нажатие на кнопку «Решить» начнет работу написанная программа, которая решает систему линейных уравнение. Кнопка «Решить» на рамке «Графическое решение» открывает форму Графика системы и запускает программу построения графика решения, если размерность системы равна 2, иначе данная кнопка не отображается.

2.4 Форма графика системы линейного уравнения 2 ряда

Кнопка «Решить» на рамке «Графическое решение» основной формы открывает форму График (Form4) системы и запускает программу построения графика решения, если размерность системы равна 2, иначе данная кнопка не отображается.

На данную форму помещены PictureBox1, Label1, Label2, TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6.

С помощью TextBox и Label отображаются уравнения прямых. В PictureBox1 выводится график данных уравнений.

Меню данной формы состоит из раздела меню Файл и Справка. Раздел Файл имеет подменю: На главное, Решить СЛАУ и Выход. Раздел Справка имеет одно подменю — О создателе.

2.5 Информационные формы

Form4 и Form6 несут собой только информационный смысл: в Form6 (Информация о создателе) находится информация о создателе приложения, в Form5 (Метод Крамера) вкратце написано о методе Крамера.

Каждый из данных формы имеет только один объект — OLE1, в которую включен файл MS Word.

Меню формы Form6 (Информация о создателе) состоит из раздела меню Файл(подменю На главное, Решить СЛАУ и Выход) и Справка(подменю О методе). При нажатие на кнопку «На главное» откроется титульная форма, а использованная информационная форма закроется, при нажатие на кнопку «Решить СЛАУ» — форма ввода размерности системы.

Вызвать данные формы возможно из меню Справка любой формы, кроме формы ввода размерности системы:

Справка > О создателе.

Меню формы Form5 (Метод Крамера) состоит из раздела меню Файл, имеющий подменю На главное, Решить СЛАУ и Выход, которые выполняют процессы, соответствующие форме информации о создателе.

3. Создание программ


3.1 Ввод данных

Данная программа запускаться при нажатии кнопки «ENTER» на клавиатуре, при котором будет вводиться данные из TextBox1, расположенной на основной форме (Form3). При активации Form3 переменным i и j присваиваются значение 1.

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

ФГБОУ ВПО «Великолукская ГСХА» КУРСОВАЯ РАБОТАпо дисциплине «Информатика»« Автоматизация инженерных

Главная > Документ

Информация о документе
Дата добавления:
Размер:
Доступные форматы для скачивания:

3.2.2 Решение СЛАУ с помощью MS Excel

Проверим условия сходимости с помощью функции Если

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

Введем условие окончания интеграционного процесса с помощью функции Если

Копируем формулы интеграционного процесса критериев и условием окончание интеграционного процесса до тех пор пока е1,е2,е3 не достигнет значение меньше заданного е=0,01

3.2.3 Решение СЛАУ с помощью VBA методом простой интеграции

Данный метод относится к итерационным методам решения СЛАУ, основанном на многократном уточнении приближенного решения системы.

Реализация метода простых итераций заключается в следующем:

Имеется исходная система

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

Если условие выполняется, то преобразуем исходную систему к равносильному виду:, т.е. выражаем первое уравнение относительно x 1 , второе уравнение – относительно x 2 и т.д.

За начальное приближение примем .

Выполняем вычисления по формулам:

,

где k – номер итерации

Таким образом, формула вычисления x i следующей итерации примет вид:

Критерием окончания итерационного процесса служит следующее условие:

где eps – заданная точность вычислений.

На рисунке 1 представлен алгоритм решения СЛАУ методом простой итерации.

Рисунок 1 — Алгоритм решения СЛАУ методом простой итерации

По представленному алгоритму была составлена программа

Dim i, j, k As Byte

Dim a(), b(), C(), x(), bt(), at(), xn() As Single

Private Sub CommandButton1_Click()

ReDim a(n, n), C(n, n), x(n), b(n), bt(n), at(n, n), xn(n)

a(i, j) = InputBox(«A(» + Str(i) + «,» + Str(j) + «=)», «Вводэлементовмассива»)

Cells(i + 1, j) = a(i, j)

b(i) = InputBox(«B(» + Str(i) + «=)», «Вводэлементовмассива»)

Cells(i + 1, 1 + n) = b(i)

If s > Abs(a(i, i)) Then

g = MsgBox(«система не сходится», vbCritical, «ошибка ввода»)

at(i, j) = -a(i, j) / a(i, i)

s = s + at(i, j) * x(j)

Loop While Max >eps

Cells(i + k + 3, j) = x(i)

Cells(i + k + 4, 1) = k

3.3 Вычисление СЛАУ матричным методом

Запишем исходную матрицу системы

, ,

Найдём определитель основной матрицы. Надо убедиться, что определитель матрицы не равен 0.

∆= = 7 — 8 + 1

= 7(11-13) – 8(41-15) +1(43-15)

=7(-2) – 8(-1) +17 = -14 + 8 + 7 = 1

Вычислим обратную матрицу

Находится обратная матрица по следующей формуле:

=., где

∆ — определитель матрицы A,

— транспонированная матрица алгебраических дополнений соответствующих элементов матрицы A.

Понятие обратной матрицы существует только для квадратных матриц, матриц «два на два», «три на три» и т.д.

Порядок определения обратной матрицы:

Найдите определитель матрицы

Вычислим 9 миноров элементов матрицы и запишем их в матрицу миноров.

Минором элемента матрицы n-го порядка называется определитель матрицы (n-1)-го порядка, полученный из матрицы А вычеркиванием i-й строки и j-го столбца.

==

Таким образом, матрица миноров

Найдём матрицу алгебраических дополнений А

Алгебраическим дополнением элемента матрицыn-го порядка называется его минор, взятый со знаком,зависящий от номера строки и номера столбца:

т.е. алгебраическое дополнение совпадает с минором, когда сумма номеров строки и столбца – чётное число, и отличается от минора знаком, когда сумма номеров строки и столбца – нечетное число.

Таким образом, в матрице миноров необходимо сменить знаки строго у следующих элементов

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

Найдём транспонированную матрицу алгебраических дополнений

Транспонированные матрицы – это переход от матрицы к матрице, в которой строки и столбцы поменялись местами с сохранением порядка.

Таким образом, транспонированная матрица алгебраических дополнений:


5. Найдём обратную матрицу по формуле:

6. Найдём решение системы по формуле:

Подставим в систему уравнений полученные результаты:

3.3.1 Традиционный способ решения СЛАУ


3.3.2 Решение СЛАУ с помощью MSExcel

1.Запишем коэффициенты при неизвестных (а1, а2, а3) и свободные члены bi , т.е. сформулируем матрицу системы.

Найдём матрицу с помощью функции МОБР().

а) Поместим курсор в ячейку С12:E14.

б) Перейдём на вкладку Формулы. В группе Библиотека функций из списка Математические выберем функцию МОБР().

в) В окне Аргументы функции в поле Массив введём диапазон ячеек, содержащий коэффициенты – С7:Е9.

г) Нажмём комбинацию Ctrl+Shift+Enter.

д) Получим результат выполненных операций

Для нахождения неизвестных необходимо умножить обратную матрицу на вектор свободных членов bi. Умножение матриц можно выполнить с помощью функции МУМНОЖ().

а) Выделим диапазон ячеек С17:Е19.

б) Перейдём на вкладку Формулы. В группе Библиотека функций из списка Математические выберем функцию МУМНОЖ().

в) В окне Аргументы функции в поле Массив 1 введём диапазон ячеек, содержащий коэффициенты – С12:Е14, в поле Массив 2 – вектор свободных членов bi – F7:F9.

г) Нажмём комбинацию клавиш Ctrl+Shift+Enter.

д) Получим результат выполненных операций.

3.3.3 Решение СЛАУ с помощью VBA матричным методом

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

Для нахождения неизвестных используем пользовательскую функцию, в которой вектор решений системы находится с помощью функций рабочего листа Excel: .MMult(), .MInverse() и .Transpose().

Функция MMult() возвращает обычное произведение двух матриц а и в . функция перемножает матрицы и возвращает в, результате, матрицу. Количество столбцов в матрице а должно быть таким же, как количество строк в матрицы в . Возвращает массив с тем же количеством строк, как у матрицы а и количеством столбцов, как у матрицы в .

Функция MInverse() возвращает обратную матрицу для квадратной матрицы. Обратная матрица – такая матрица при умножении на которую исходная матрица дает в результате единичную матрицу. Матрица имеет обратную матрицу, тогда и только тогда, когда она невырожденная, т. е. её детерминанта не равен нулю.

Функция Transpose() выполняет транспонирование матрицы, заданной встроенным массивом или диапазоном.

Dim a() As Double

Dim b() As Double

Dim i, j As Integer

Function f(a() As Double, b() As Double) As Variant

f = .MMult(.MInverse(a()), .Transpose(b()))

Кнопка Матричный Метод

n = InputBox(«ввести размер квадратной матрицы»)

b(i) = InputBox(«ввести вектор свободнеых членов»)

a(i, j) = InputBox(«ввестиматрицу»)

Range(«A5»).Resize(n, 1) = f(a(), b())

а. Запустим программу на выполнение, в форме нажмём на кнопку «Матричный метод»

б. Введём размер квадратной матрицы 3-го порядка

в. Введём 3 вектора свободных членов

г. Построчно введём все члены матрицы

д. Получим ответ

Заключение

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

Поставленные задачи были реализованы. Выполнена реализация поставленной задачи в двух интегрированных средах:

в табличном процессоре MSExcel;

в среде программирования VBA.

Экономическая информатика: учебник/под ред. В.П. Косарева – 3-е изд., перераб. И доп. – М.: Финансы и статистика, 2006. – 656с.: ил.

Свободная интернет-энциклопедия [Электронный ресурс]. – 2001 — Режим доступа: , свободный. – Википедия. – Яз. рус. англ. и др.(всего 285)

Информационный сайт о высоких технологиях [Электронный ресурс]. – 2009 – Режим доступа: , свободный. – Все о Hi-Tech. – Яз.рус.

Дидактические материалы по информатике и математике [Электронный ресурс]. – 2000 – Режим доступа: , свободный. — Учителям информатики и математики и их любознательным ученикам. – Яз.рус.

Левин В.И. Информационные технологии в машиностроении: учебник для студ. сред. проф. образования/ В.И. Левин.- М.: Издательский центр «Академия», 2006. – 240 с.

Веденеева Е.А Функции и формулы Excel 2007. Библиотека пользователя. – СПБ.: Питер, 2008.- 384 с.

Киреев В.И. Численные методы в приемах задачах: Учеб. пособие/В.И. Киреев, А.В. Пантелеев.- 3-е изд. стер. – М.: Высш. шк., 2008.- 480 с.

Боглаев Ю.П. Вычислительная математика и программирование. – М.: Высшая школа, 1990.

Дьяконов В.П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ. –М.: Наука, 1987.


источники:

http://www.tnu.in.ua/study/refs/d191/file43461.html

http://gigabaza.ru/doc/147864-p2.html