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 намного упрощает задачу. С помощью единожды созданной программы можно решать системы линейных уравнений, вводя минимум значений. Также эта программа может быть использована не только вами, но и простыми пользователями.

 

 

III. Литература

1) М. Додж, К. Кината, К. Стинсон "Эффективная работа в Microsoft Excel 97", издательство "Питер"; Санкт-Петербург, 1998г.2) Е.К. Овчаренко, О.П. Ильина, Е.В. Балыбердин "Финансово - экономические расчеты в Excel", Москва, 1999 г.3) Йорг Шиб, Excel 7,0: Сотни полезных рецептов, Дюссельдорф-Киев-Москва- Санкт-Петербург, 1997 г.

4) Симонович С.В. и др. Информатика Базовый курс: Учеб, для технических вузов. СПБ: Изд. «Питер», 2004.–640с

5) Калиткин Н.Н. и др. Численные методы. М.: Наука, 1982

6) Турчак Л.И. Основы численных методов. М.: Наука, 1987

7) Дьяконов В.П. Система MathCAD. М.: Радио и связь, 1993

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: