Численные методы решения систем линейных уравнений
Численные методы линейной алгебры. Матричный метод. Методы Крамера и Гаусса. Интерации линейных систем. Интерации Якоби и Гаусса - Зейделя. Листинг программы. Численные методы в электронных таблицах Excel и программе MathCAD, Microsoft Visual Basic
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 01.06.2008 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3840
TabIndex = 27
Top = 2640
Width = 375
End
Begin VB.Label Метка19
Caption = "А23"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3840
TabIndex = 26
Top = 2040
Width = 375
End
Begin VB.Label Метка18
Caption = "А13"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3840
TabIndex = 25
Top = 1440
Width = 375
End
Begin VB.Label Метка17
Caption = "А32"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1920
TabIndex = 21
Top = 2640
Width = 375
End
Begin VB.Label Метка16
Caption = "А22"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1920
TabIndex = 20
Top = 2040
Width = 375
End
Begin VB.Label Метка15
Caption = "А12"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1920
TabIndex = 19
Top = 1440
Width = 375
End
Begin VB.Line Строка2
X1 = 0
X2 = 7800
Y1 = 3360
Y2 = 3360
End
Begin VB.Label Метка12
Alignment = 2 'Выравнивание по Центру
Caption = "Метод обратной матрицы"
BeginProperty Font
Name = "Times New Roman"
Size = 11.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 855
Left = 0
TabIndex = 15
Top = 5280
Width = 1095
End
Begin VB.Label Метка11
Alignment = 2 'Выравнивание по Центру
Caption = "Метод Гаусса"
BeginProperty Font
Name = "Times New Roman"
Size = 11.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 615
Left = 0
TabIndex = 14
Top = 4560
Width = 1095
End
Begin VB.Label Метка10
Alignment = 2 'Выравнивание по Центру
Caption = "Метод Крамера"
BeginProperty Font
Name = "Times New Roman"
Size = 11.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 615
Left = 0
TabIndex = 13
Top = 3840
Width = 1095
End
Begin VB.Label Метка7
Caption = "В3"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 6000
TabIndex = 6
Top = 2640
Width = 255
End
Begin VB.Label Метка6
Caption = "В2"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 6000
TabIndex = 5
Top = 2040
Width = 255
End
Begin VB.Label Метка5
Caption = "В1"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 6000
TabIndex = 4
Top = 1440
Width = 255
End
Begin VB.Label Метка4
Caption = "А31"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 0
TabIndex = 3
Top = 2640
Width = 375
End
Begin VB.Label Метка3
Caption = "А21"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 0
TabIndex = 2
Top = 2040
Width = 375
End
Begin VB.Label Метка2
Caption = "А11"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 0
TabIndex = 1
Top = 1440
Width = 375
End
Begin VB.Label Метка1
Caption = $"frmSlay.frx":0000
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 855
Left = 120
TabIndex = 0
Top = 120
Width = 7575
End
End
Attribute VB_Name = "frmAriel"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub cmdClean_Click()
Dim с As Byte
с = MsgBox("Хотите очистить?", 33, "Очистка")
If с = 1 Then
txtA11.Text = ""
txtA12.Text = ""
txtA13.Text = ""
txtA21.Text = ""
txtA22.Text = ""
txtA23.Text = ""
txtA31.Text = ""
txtA32.Text = ""
txtA33.Text = ""
txtB1.Text = ""
txtB2.Text = ""
txtB3.Text = ""
txtMKX.Text = ""
txtMGX.Text = ""
txtMOMX.Text = ""
txtMKY.Text = ""
txtMGY.Text = ""
txtMOMY.Text = ""
txtMKZ.Text = ""
txtMGZ.Text = ""
txtMOMZ.Text = ""
End If
End Sub
Private Sub cmdCount_Click()
If (Val(txtA11) * Val(txtA22) * Val(txtA33) + Val(txtA12) * Val(txtA23) * Val(txtA31) + Val(txtA21) * Val(txtA32) * Val(txtA13) - Val(txtA13) * Val(txtA22) * Val(txtA31) - Val(txtA12) * Val(txtA21) * Val(txtA33) - Val(txtA23) * Val(txtA32) * Val(txtA11)) = 0 Then
Dim g As Byte
g = MsgBox("Решить данную систему методом Крамера и методом обратной матрицы невозможно", 32, "Определитель системы равен 0")
Else
ds = (Val(txtA11) * Val(txtA22) * Val(txtA33) + Val(txtA12) * Val(txtA23) * Val(txtA31) + Val(txtA21) * Val(txtA32) * Val(txtA13) - Val(txtA13) * Val(txtA22) * Val(txtA31) - Val(txtA12) * Val(txtA21) * Val(txtA33) - Val(txtA23) * Val(txtA32) * Val(txtA11))
dx = (Val(txtB1) * Val(txtA22) * Val(txtA33) + Val(txtA12) * Val(txtA23) * Val(txtB3) + Val(txtB2) * Val(txtA32) * Val(txtA13) - Val(txtA13) * Val(txtA22) * Val(txtB3) - Val(txtA12) * Val(txtB2) * Val(txtA33) - Val(txtA23) * Val(txtA32) * Val(txtB1))
dy = (Val(txtA11) * Val(txtB2) * Val(txtA33) + Val(txtB1) * Val(txtA23) * Val(txtA31) + Val(txtA21) * Val(txtB3) * Val(txtA13) - Val(txtA13) * Val(txtB2) * Val(txtA31) - Val(txtB1) * Val(txtA21) * Val(txtA33) - Val(txtA23) * Val(txtB3) * Val(txtA11))
dz = (Val(txtA11) * Val(txtA22) * Val(txtB3) + Val(txtA12) * Val(txtB2) * Val(txtA31) + Val(txtA21) * Val(txtA32) * Val(txtB1) - Val(txtB1) * Val(txtA22) * Val(txtA31) - Val(txtA12) * Val(txtA21) * Val(txtB3) - Val(txtB2) * Val(txtA32) * Val(txtA11))
txtMKX.Text = (dx / ds)
txtMKY.Text = (dy / ds)
txtMKZ.Text = (dz / ds)
txtMOMX.Text = (((Val(txtA22) * Val(txtA33) - Val(txtA23) * Val(txtA32)) / ds) * Val(txtB1) + ((Val(txtA13) * Val(txtA32) - Val(txtA12) * Val(txtA33)) / ds) * Val(txtB2) + ((Val(txtA12) * Val(txtA23) - Val(txtA13) * Val(txtA22)) / ds) * Val(txtB3))
txtMOMY.Text = (((Val(txtA23) * Val(txtA31) - Val(txtA21) * Val(txtA33)) / ds) * Val(txtB1) + ((Val(txtA11) * Val(txtA33) - Val(txtA13) * Val(txtA31)) / ds) * Val(txtB2) + ((Val(txtA13) * Val(txtA21) - Val(txtA11) * Val(txtA23)) / ds) * Val(txtB3))
txtMOMZ.Text = (((Val(txtA21) * Val(txtA32) - Val(txtA22) * Val(txtA31)) / ds) * Val(txtB1) + ((Val(txtA12) * Val(txtA31) - Val(txtA11) * Val(txtA32)) / ds) * Val(txtB2) + ((Val(txtA11) * Val(txtA22) - Val(txtA12) * Val(txtA21)) / ds) * Val(txtB3))
End If
If Val(txtA11) = 0 Then
Dim gg As Byte
gg = MsgBox("Решить данную систему методом Гаусса невозможно. Поменяйте уравнения местами, и попробуйте снова", 48, "Коэффициент при х в первом уравнении равен 0")
Else
s1 = ((Val(txtB3) * Val(txtA11)) - (Val(txtB1) * Val(txtA31)))
s2 = ((Val(txtA22) * Val(txtA11)) - (Val(txtA12) * Val(txtA21)))
s3 = ((Val(txtB2) * Val(txtA11)) - (Val(txtB1) * Val(txtA21)))
s4 = ((Val(txtA32) * Val(txtA11)) - (Val(txtA12) * Val(txtA31)))
s5 = ((Val(txtA33) * Val(txtA11)) - (Val(txtA12) * Val(txtA31)))
s6 = s2
s7 = ((Val(txtA23) * Val(txtA11)) - (Val(txtA13) * Val(txtA21)))
s8 = s4
s12 = s1 * s2
s34 = s3 * s4
s56 = s5 * s6
s78 = s7 * s8
sh = s12 - s34
sz = s56 - s78
If sz = 0 Then
Dim с As Byte
с = MsgBox("Делить на ноль нельзя.", 48, "Ошибка")
Else
txtMGZ.Text = (sh / sz)
End If
sy1 = s3
sy2 = s2
sy3 = ((Val(txtA23) * Val(txtA11)) - (Val(txtA13) * Val(txtA21)))
sy4 = s2
sy12 = (sy1) / (sy2)
sy34 = (sy3) / (sy4)
txtMGY.Text = ((sy12) - ((sy34) * (sh / sz)))
sx1 = ((Val(txtB1)) / (Val(txtA11)))
sx2 = ((Val(txtA13)) / (Val(txtA11)))
sx3 = ((Val(txtA12)) / (Val(txtA11)))
txtMGX.Text = ((sx1) - ((sx2) * (sh / sz)) - ((sx3) * ((sy12) - ((sy34) * (sh / sz)))))
End If
End Sub
Private Sub cmdExit_Click()
Dim a As Byte
a = MsgBox("Хотите выйти?", 33, "Выход")
If a = 1 Then
End
End If
End Sub
Польза введения расчетов.
Огромное количество численных методов ставит актуальной задачей не столько создание новых, сколько исследование и классификацию старых, выявление лучших. Анализ влияния ошибок показал, что между лучшими методами нет принципиальной разницы с точки зрения устойчивости к ошибкам округления. Создание мощных компьютеров существенно ослабило значение различия между методами (в таких характеристиках, как объём требуемой памяти, количество арифметических операций). В этих условия наиболее предпочтительными становятся те методы, которые не очень отличаются от лучших по скорости и удобству реализации на компьютерах, позволяют решать широкий класс задач как хорошо, так и плохо обусловленных и давать при этом оценку точности вычислительного решения.
В MathCAD и Excel численные методы представляют собой те же самые общепринятые ручные расчёты, но выполняемые не человеком, а компьютером, что понижает возможность ошибки до нуля. Программа на Visual Basic намного упрощает задачу. С помощью единожды созданной программы можно решать системы линейных уравнений, вводя минимум значений. Также эта программа может быть использована не только вами, но и простыми пользователями.
I. III. Литература
1) М. Додж, К. Кината, К. Стинсон "Эффективная работа в Microsoft Excel 97", издательство "Питер"; Санкт-Петербург, 1998г.
2) Е.К. Овчаренко, О.П. Ильина, Е.В. Балыбердин "Финансово - экономические расчеты в Excel", Москва, 1999 г.
3) Йорг Шиб, Excel 7,0: Сотни полезных рецептов, Дюссельдорф-Киев-Москва- Санкт-Петербург, 1997 г.
4) Симонович С.В. и др. Информатика Базовый курс: Учеб, для технических вузов. СПБ: Изд. «Питер», 2004.-640с
5) Калиткин Н.Н. и др. Численные методы. М.: Наука, 1982
6) Турчак Л.И. Основы численных методов. М.: Наука, 1987
7) Дьяконов В.П. Система MathCAD. М.: Радио и связь, 1993
Подобные документы
Численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений, определенных интегралов. Методы аппроксимации дискретных функций и методы решения задач линейного программирования.
методичка [185,7 K], добавлен 18.12.2014Метод Гаусса-Зейделя как модификация метода Якоби, его сущность и применение. Разработка программы решения системы линейных алгебраических уравнений на языке VB, проверка правильности работы программы в MS Excel и математических пакетах MathCad и MatLab.
курсовая работа [325,5 K], добавлен 27.10.2013Использование MS Excel для математических расчетов. Описание численных методов решения системы линейных алгебраических уравнений. Решение систем линейных алгебраических уравнений с методами Крамера и Зейделя и с помощью табличного процессора MS Excel.
курсовая работа [1,6 M], добавлен 14.02.2021Системы линейных алгебраических уравнений. Код программы для решения систем линейных алгебраических уравнений. Математические и алгоритмические основы решения задачи методом Гаусса. Программная реализация решения. Алгоритмы запоминания коэффициентов.
лабораторная работа [23,5 K], добавлен 23.09.2014Решение систем линейных уравнений на ЭВМ методом Крамера. Запуск Microsoft Visual Basic. Форма ввода размерности системы. Форма графика системы линейного уравнения. Матрица с неизвестными переменными. Программы построения графика и перехода между формами.
курсовая работа [743,7 K], добавлен 29.06.2011Возможности математического пакета MathCad в среде Windows 98 для использования матричной алгебры и решения системы линейных алгебраических уравнений. Методы решения систем линейных алгебраических уравнений. Сравнение метода Гаусса с методом MathCad.
практическая работа [62,6 K], добавлен 05.12.2009Методы решения систем линейных алгебраических уравнений. Метод простых итераций и метод Зейделя. разработка программы для решения СЛАУ с произвольным количеством уравнений. Реализация методов Зейделя и простых итераций для получения вектора решений СЛАУ.
курсовая работа [25,0 K], добавлен 20.11.2008Объектно-ориентированное программирование: основная идея, сопровождение, модификация, термины и положения. Понятие объекта как логической единицы, правила (методы) обработки данных. Метод Гаусса для решения систем линейных алгебраических уравнений.
курсовая работа [125,1 K], добавлен 22.04.2009Рассмотрение двух способов решения систем линейных алгебраических уравнений: точечные и приближенные. Использование при программировании метода Гаусса с выбором главного элемента в матрице и принципа Зейделя. Применение простой итерации решения уравнения.
курсовая работа [879,8 K], добавлен 05.06.2012Понятия систем линейных уравнений и матриц. Решение общей системы линейных уравнений по методу Гаусса. Системные требования, методы установки, удаления и работы с программой. Методы защиты от неверного ввода данных. Тестирование и опытная эксплуатация.
курсовая работа [751,0 K], добавлен 25.02.2011