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

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    317,60 kb
  • Опубликовано:
    2011-06-29
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

ГОУ ВПО

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

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











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

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

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

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








Уфа 2011 г.

Содержание

Введение

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

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

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

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

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

.3       Основная форма

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

.5       Информационные формы

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

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

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

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

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

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

Заключение

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

Введение


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

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

 

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


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

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

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

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


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


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. Создание программ

 

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


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

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


Текст программы: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

End If

End If

Sub

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


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

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


Текст программы:Sub Command1_Click().Clsk = 1 To n(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)m1 = 0 Then

For j = 1 To n

t = a(n, j)

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

c(i, j) = t

NextIfWhile 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)= c(n - 1, n - 1) * c(n, n) - c(n - 1, n) * c(n, n - 1)(k) = d(k) * m1

'Picture2.Print d(k)

'----------------------------= 1= a(n - 1, n - 1) * a(n, n) - a(n - 1, n) * a(n, n - 1)m1 = 0 Then

For j = 1 To n

t = a(n, j)

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

a(i, j) = t

NextIfWhile m1 = 0

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

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

'Picture4.Print mx = 1 To n(x) = d(x) / m.Print Format(d(x), "#0.0##")

NextSub

 

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


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

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

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

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

Текст программы: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= Picture1.Width= Picture1.Height

'точка пересечения= (a(2, 3) * a(1, 1) - a(1, 3) * a(2, 1)) / (a(2, 2) * a(1, 1) - a(1, 2) * a(2, 1))= (a(1, 3) - a(1, 2) * X2) / a(1, 1)

'шаг= Int((l - 500) / (Abs(X1) + 2))= Int((p - 500) / (Abs(X2) + 2))h1 > h2 Then h = h2 Else h = h1

'начала координатX1 > 0 Then

If X2 > 0 Then

x0 = 500

y0 = p - 500

Else

x0 = 500

y0 = 500

End If

If X2 > 0 Then

x0 = l - 500

y0 = p - 500

Else

x0 = l - 500

y0 = 500

End IfIf

'координатные оси.Line (x0, 0)-(x0, p).Line (0, y0)-(l, y0)

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

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

k = (Int(x0 / h) + 1) * (-1)= (a(1, 3) - a(1, 1) * k) / a(1, 2)= (a(2, 3) - a(2, 1) * k) / a(2, 2)= k * h

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

'Picture1.Print r, k, f1, f2, i1i = k To r Step 0.1= i * h= h * (a(1, 3) - a(1, 1) * i) / a(1, 2)= h * (a(2, 3) - a(2, 1) * i) / a(2, 2).Line (x0 + i0, y0 - f1)-(x0 + i1, y0 - fx1), RGB(0, 0, 200).Line (x0 + i0, y0 - f2)-(x0 + i1, y0 - fx2), RGB(0, 200, 0)= fx1= fx2= i1

'цифры.Line (x0, y0)-(x0 - 175, y0).Print 0Abs(k) > r Then z = k Else z = (-1) * ri = z To (-1) * zi <> 0 Then.Line (x0, y0 - i * h)-(x0 + 100, y0 - i * h).Print i.Line (x0 - i * h, y0)-(x0 - i * h, y0 + 100).Print -iIf.Line (x0 + X1 * h, y0)-(x0 + X1 * h, y0 - X2 * h), RGB(200, 0, 0).Line (x0, y0 - X2 * h)-(x0 + X1 * h, y0 - X2 * h), RGB(200, 0, 0) Sub

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


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

Текст программы:Sub exit_Click()

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

Exit Sub

End IfSub

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

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

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

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

Private Sub metod1_Click().ShowSubSub prog1_Click().Show.HideSubSub sozd1_Click().Show Sub

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

Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)KeyCode = 13 Then.Show.Picture1.Cls.Picture2.Cls.Picture3.Cls.HideIfSub

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

Private Sub Command2_Click().ShowSubSub glav3_Click().Show.HideSubSub metod3_Click().Show.HideSubSub sozd3_Click().Show.HideSubSub vrazm3_Click().Show3.Hide

End Sub

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

Private Sub glav4_Click().Show.HideSubSub prog4_Click().Show.HideSubSub sozd4_Click().Show

Form4.HideSub

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

Private Sub glav5_Click().Show

Form5.HideSub

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

Private Sub glav6_Click().Show.HideSubSub metod6_Click().Show.HideSubSub Prog6_Click().Show

Form6.HideSubы

Заключение

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

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

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

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


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

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

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

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


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!