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

Решение систем линейных уравнений на ЭВМ методом Крамера. Запуск Microsoft Visual Basic. Форма ввода размерности системы. Форма графика системы линейного уравнения. Матрица с неизвестными переменными. Программы построения графика и перехода между формами.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.06.2011
Размер файла 743,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

ГОУ ВПО

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

Кафедра Информатики

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

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

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

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

Уфа 2011 г.

Содержание

Введение

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)

If KeyCode = 13 Then

If (i <= n) And (j <= n + 1) Then

If j = n + 1 Then

b(i) = Val(Text1.Text)

Picture2.Print Format(b(i), " ##0")

Picture1.Print

Else

a(i, j) = Val(Text1.Text)

Picture1.Print Format(a(i, j), " ##0 ");

End If

Text1.Text = " "

If j = n + 1 Then

j = 0

i = i + 1

End If

j = j + 1

End If

End If

End Sub

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

Данная программа запускаться при нажатии кнопки «Решить», расположенной на основной форме (Form3). Программа имеет входные данные (матрица с неизвестными переменными и матрица, не имеющий неизвестные переменные), промежуточные и конечное выходные данные. При активации Form3 переменной n присваивается значение от 2 до 10.

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

Текст программы:

Private Sub Command1_Click()

Picture3.Cls

For k = 1 To n

d(k) = 1

For i = 1 To n

For j = 1 To n

If j = k Then

c(i, j) = b(i)

Else

c(i, j) = a(i, j)

End If

'Picture2.Print Format(c(i, j), "##0.0##"),

Next

'Picture2.Print

Next

m1 = c(n - 1, n - 1) * c(n, n) - c(n - 1, n) * c(n, n - 1)

Do

If m1 = 0 Then

For j = 1 To n

t = a(n, j)

c(n, j) = c(i, j)

c(i, j) = t

Next

End If

Loop While m1 = 0

For j = 1 To n - 2

z = j + 1

If c(j, j) = 0 Then

If c(z, j) <> 0 Then

For z1 = j To n

w = c(j, z1)

c(j, z1) = c(z, z1)

c(z, z1) = w

Next

End If

End If

For i = j + 1 To n

h1 = c(i, j) / c(j, j)

For r = j To n

'Picture2.Print h1

c(i, r) = c(i, r) - c(j, r) * h1

Next

Next

d(k) = (-1)*d(k) * c(j, j)

Next

m1 = c(n - 1, n - 1) * c(n, n) - c(n - 1, n) * c(n, n - 1)

d(k) = d(k) * m1

'Picture2.Print d(k)

Next

'----------------------------

m = 1

m1 = a(n - 1, n - 1) * a(n, n) - a(n - 1, n) * a(n, n - 1)

Do

If m1 = 0 Then

For j = 1 To n

t = a(n, j)

a(n, j) = a(i, j)

a(i, j) = t

Next

End If

Loop While m1 = 0

For j = 1 To n - 2

z = j + 1

If a(j, j) = 0 Then

If a(z, j) <> 0 Then

For z1 = j To n

w = a(j, z1)

a(j, z1) = a(z, z1)

a(z, z1) = w

Next

End If

End If

For i = j + 1 To n

h = a(i, j) / a(j, j)

For k = j To n

'Picture1.Print h

a(i, k) = a(i, k) - a(j, k) * h

Next

Next

m = m * a(j, j)

Next

m1 = a(n - 1, n - 1) * a(n, n) - a(n - 1, n) * a(n, n - 1)

m = m * m1

'Picture4.Print m

For x = 1 To n

d(x) = d(x) / m

Picture3.Print Format(d(x), "#0.0##")

Next

End Sub

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

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

Программу можно разбить на несколько этапов:

1. Вычисление шага и построение осей координат;

2. Постройка графика.

Текст программы:

Private Sub Form_Activate()

a(1, 1) = Val(Text1.Text)

a(1, 2) = Val(Text2.Text)

a(1, 3) = Val(Text3.Text)

a(2, 1) = Val(Text4.Text)

a(2, 2) = Val(Text5.Text)

a(2, 3) = Val(Text6.Text)

'размеы picture

l = Picture1.Width

p = Picture1.Height

'точка пересечения

X2 = (a(2, 3) * a(1, 1) - a(1, 3) * a(2, 1)) / (a(2, 2) * a(1, 1) - a(1, 2) * a(2, 1))

X1 = (a(1, 3) - a(1, 2) * X2) / a(1, 1)

'шаг

h1 = Int((l - 500) / (Abs(X1) + 2))

h2 = Int((p - 500) / (Abs(X2) + 2))

If h1 > h2 Then h = h2 Else h = h1

'начала координат

If X1 > 0 Then

If X2 > 0 Then

x0 = 500

y0 = p - 500

Else

x0 = 500

y0 = 500

End If

Else

If X2 > 0 Then

x0 = l - 500

y0 = p - 500

Else

x0 = l - 500

y0 = 500

End If

End If

'координатные оси

Picture1.Line (x0, 0)-(x0, p)

Picture1.Line (0, y0)-(l, y0)

'построение гафика

r = Int((l - x0) / h) + 1

k = (Int(x0 / h) + 1) * (-1)

f1 = (a(1, 3) - a(1, 1) * k) / a(1, 2)

f2 = (a(2, 3) - a(2, 1) * k) / a(2, 2)

i0 = k * h

'Picture1.Line (0, 0)-(0, 100)

'Picture1.Print r, k, f1, f2, i1

For i = k To r Step 0.1

i1 = i * h

fx1 = h * (a(1, 3) - a(1, 1) * i) / a(1, 2)

fx2 = h * (a(2, 3) - a(2, 1) * i) / a(2, 2)

Picture1.Line (x0 + i0, y0 - f1)-(x0 + i1, y0 - fx1), RGB(0, 0, 200)

Picture1.Line (x0 + i0, y0 - f2)-(x0 + i1, y0 - fx2), RGB(0, 200, 0)

f1 = fx1

f2 = fx2

i0 = i1

Next

'цифры

Picture1.Line (x0, y0)-(x0 - 175, y0)

Picture1.Print 0

If Abs(k) > r Then z = k Else z = (-1) * r

For i = z To (-1) * z

If i <> 0 Then

Picture1.Line (x0, y0 - i * h)-(x0 + 100, y0 - i * h)

Picture1.Print i

Picture1.Line (x0 - i * h, y0)-(x0 - i * h, y0 + 100)

Picture1.Print -i

End If

Next

Picture1.Line (x0 + X1 * h, y0)-(x0 + X1 * h, y0 - X2 * h), RGB(200, 0, 0)

Picture1.Line (x0, y0 - X2 * h)-(x0 + X1 * h, y0 - X2 * h), RGB(200, 0, 0)

End Sub

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

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

Текст программы:

Private Sub exit_Click()

If MsgBox("Вы действительно хотите закрыть приложение?",vbYesNo+ vbQuestion, "Exit System...") = vbNo Then

Exit Sub

End If

End

End Sub

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

линейный уравнение метод крамер

При выборе команды в меню форм или нажатие кнопки «построить график» на основной форме (Form2), «Отменить» в форме сохранения (Form5) открывается форма, которая требуется для дальнейшей работы приложения.

Текст программы перехода титульной формы(Form1):

Private Sub metod1_Click()

Form5.Show

End Sub

Private Sub prog1_Click()

Form2.Show

Form1.Hide

End Sub

Private Sub sozd1_Click()

Form6.Show

End Sub

Текст программы перехода формы ввода размерности системы(Form2):

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

If KeyCode = 13 Then

Form3.Show

Form3.Picture1.Cls

Form3.Picture2.Cls

Form3.Picture3.Cls

Form2.Hide

End If

End Sub

Текст программы перехода основной формы(Form3):

Private Sub Command2_Click()

Form4.Show

End Sub

Private Sub glav3_Click()

Form1.Show

Form3.Hide

End Sub

Private Sub metod3_Click()

Form6.Show

Form3.Hide

End Sub

Private Sub sozd3_Click()

Form5.Show

Form3.Hide

End Sub

Private Sub vrazm3_Click()

Form2.Show

Form3.Hide

End Sub

Текст программы перехода формы Графика(Form4):

Private Sub glav4_Click()

Form1.Show

Form4.Hide

End Sub

Private Sub prog4_Click()

Form2.Show

Form4.Hide

End Sub

Private Sub sozd4_Click()

Form6.Show

Form4.Hide

End Sub

Текст программы перехода формы О методе(Form5):

Private Sub glav5_Click()

Form1.Show

Form5.Hide

End Sub

Текст программ перехода формы О создателе(Form6):

Private Sub glav6_Click()

Form1.Show

Form6.Hide

End Sub

Private Sub metod6_Click()

Form5.Show

Form6.Hide

End Sub

Private Sub Prog6_Click()

Form2.Show

Form6.Hide

End Subы

Заключение

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

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

Проверка правильного решения программы была осуществлена с помощью программы MS Excel. Результаты полностью совпадают.

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

1. ГОСТ 19.701-90 Схемы алгоритмов программ, данных и систем. М., 1992. 22 с.

2. ГОСТ 2.105-95. Общие требования к текстовым документам. М., 1996. 31 с..

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

4. Браун С., Visual Basic 6. Учебный курс.- СПб.: Питер, 2005.-574 с.: ил.

5. informatic.ugatu.ac.ru - официальный сайт кафедры информатики УГАТУ, отдел дистанционной помощи студентам по выполнению курсовых работ.

Размещено на Allbest.ru


Подобные документы

  • История развития алгоритмических языков. Создание языка С++. Разработка программы в Visual C++ для решения линейных уравнений методом Крамера. Структура данных, этапы тестирования программного обеспечения на работоспособность и корректность расчетов.

    курсовая работа [390,0 K], добавлен 29.12.2014

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

    курсовая работа [581,0 K], добавлен 15.06.2013

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

    курсовая работа [858,5 K], добавлен 01.12.2013

  • Общее понятие о линейных уравнениях и их системах. Разработка программного продукта в среде Delphi 7 для решения методом Крамера квадратных систем линейных алгебраических уравнений с ненулевым определителем основной матрицы. Описание конкретных примеров.

    курсовая работа [193,7 K], добавлен 07.07.2013

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

    курсовая работа [32,3 K], добавлен 19.01.2009

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

    курсовая работа [118,1 K], добавлен 13.11.2009

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

    курсовая работа [770,2 K], добавлен 27.01.2013

  • Численные методы линейной алгебры. Матричный метод. Методы Крамера и Гаусса. Интерации линейных систем. Интерации Якоби и Гаусса - Зейделя. Листинг программы. Численные методы в электронных таблицах Excel и программе MathCAD, Microsoft Visual Basic

    курсовая работа [1,2 M], добавлен 01.06.2008

  • Использование MS Excel для математических расчетов. Описание численных методов решения системы линейных алгебраических уравнений. Решение систем линейных алгебраических уравнений с методами Крамера и Зейделя и с помощью табличного процессора MS Excel.

    курсовая работа [1,6 M], добавлен 14.02.2021

  • Решение системы линейных алгебраических уравнений методом Гаусса с выборкой ведущего элемента. Изучение особенности программной реализации алгоритма, составленной средствами разработки Microsoft Visual Studio. Проведение сложения и умножения двух матриц.

    курсовая работа [702,6 K], добавлен 22.03.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.