Решение систем линейных уравнений на 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Использование MS Excel для математических расчетов. Описание численных методов решения системы линейных алгебраических уравнений. Решение систем линейных алгебраических уравнений с методами Крамера и Зейделя и с помощью табличного процессора MS Excel.
курсовая работа [1,6 M], добавлен 14.02.2021Численные методы линейной алгебры. Матричный метод. Методы Крамера и Гаусса. Интерации линейных систем. Интерации Якоби и Гаусса - Зейделя. Листинг программы. Численные методы в электронных таблицах Excel и программе MathCAD, Microsoft Visual Basic
курсовая работа [1,2 M], добавлен 01.06.2008Решение системы линейных алгебраических уравнений методом Гаусса с выборкой ведущего элемента. Изучение особенности программной реализации алгоритма, составленной средствами разработки Microsoft Visual Studio. Проведение сложения и умножения двух матриц.
курсовая работа [702,6 K], добавлен 22.03.2015