Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2009, 21:34   #1
vfrc
 
Регистрация: 29.10.2009
Сообщений: 6
По умолчанию Программа на VBA выдаёт ошибки.

Помогите, прогдрамма работает.
Sub metod_Nyutona()
Dim x As Double, y As Double
Dim a As Double, b As Double, eps As Double
Dim Dx As Double, Dy As Double
Dim J As Double
Dim deltaX As Double, deltaY As Double
Dim n As Integer

Sheets("Лист1").Select

'ввод данных

Cells(6, 1) = "x="
Cells(7, 1) = "y="
Cells(8, 1) = "n="

a = 2.1928
b = 0.8223
eps = 0.001
n = 1

'решение системы уравнений

metka:
J = 4 - 16 * x
Dx = 8 * x ^ 2 - 3 * x - 32
Dy = 16 * x * y - 3 * x ^ 2 - 3 * y - 12

deltaX = Dx / J
deltaY = Dy / J

x = a + deltaX
y = b + deltaY


If Abs(deltaX) < eps And Abs(deltaY) < eps Then

'вывод корней уравнения

Cells(6, 2) = x
Cells(7, 2) = y
Cells(8, 2) = n

Else
a = x
b = y
n = n + 1

GoTo metka

End If

End Sub

Программа Выдаёт ошибку: Run-time error 5: Invalid procedure call or argument. Как исправить?


Sub metod_Nyutona()
Dim x As Double, y As Double
Dim a As Double, b As Double, eps As Double
Dim Dx As Double, Dy As Double
Dim J As Double
Dim deltaX As Double, deltaY As Double
Dim n As Integer

Sheets("Лист1").Select

'ввод данных

Cells(6, 1) = "x="
Cells(7, 1) = "y="
Cells(8, 1) = "n="

a = 2.1928
b = 0.8223
eps = 0.001
n = 1

'решение системы уравнений

metka:
J = 60 / 2 * x ^ 0.5 * y + 6 * x * 5 * Sin(y)
Dx = -6 * (10 * x ^ 0.5 - 5 * Cos(y)) / y + 5 * Sin(y) * (6 * Log(y) - 3 * x ^ 2)
Dy = 10 * (6 * Log(y) - 3 * x ^ 2) / 2 * x ^ 0.5 - 6 * x * (10 * x ^ 0.5 - 5 * Cos(y))

deltaX = Dx / J
deltaY = Dy / J

x = a + deltaX
y = b + deltaY


If Abs(deltaX) < eps And Abs(deltaY) < eps Then

'вывод корней уравнения

Cells(6, 2) = x
Cells(7, 2) = y
Cells(8, 2) = n

Else
a = x
b = y
n = n + 1

GoTo metka

End If

End Sub
vfrc вне форума Ответить с цитированием
Старый 29.10.2009, 21:53   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Ничего удивительного нет
выражение деленное на 0
и логарифм 0

Вот и ошибка
Добавте после метки

Код:

metka:

On Error Resume Next
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 29.10.2009 в 21:58.
doober вне форума Ответить с цитированием
Старый 05.11.2009, 15:02   #3
vfrc
 
Регистрация: 29.10.2009
Сообщений: 6
По умолчанию

Помогите! Кто нить может написать программу в VBA для решения системы линейных уравнений методом Гауса?
Система следующая:
1,84x1 +2.25x2+2.53x3=-6.09
2.32x1+2.60x2+2.82x3=-6.98
1.83x1+2.06x2+2.24x3=-5.52

Ход письменного её решения есть, а вот как программу для расчёта в Excel написать не знаю
vfrc вне форума Ответить с цитированием
Старый 05.11.2009, 20:56   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Для личного пользования решение системы уравнений с тремя неизвестными по методу Гауса.
Для студентов другой вопрос,такие курсовые в Инете денег стоят.
Поэтому код закрыт
Вложения
Тип файла: rar Решение Уравнений.rar (13.9 Кб, 61 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 05.11.2009, 21:17   #5
vfrc
 
Регистрация: 29.10.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Для личного пользования решение системы уравнений с тремя неизвестными по методу Гауса.
Для студентов другой вопрос,такие курсовые в Инете денег стоят.
Поэтому код закрыт
Это не то, такое решение я в инете в онлайне находил. А мне надо решить данную задачу методом Гауса и Зейделя. А именно текст программы, и это будет всего одно задание за семестр.
vfrc вне форума Ответить с цитированием
Старый 05.11.2009, 21:38   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от vfrc Посмотреть сообщение
методом Гауса и Зейделя. А именно текст программы, и это будет всего одно задание за семестр.

Можно и методом Гауса и Зейделя.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 05.11.2009, 22:35   #7
vfrc
 
Регистрация: 29.10.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Можно и методом Гауса и Зейделя.
Ну и сколько стоит текст программы VBA метода Гауса, методом Зейделя?
vfrc вне форума Ответить с цитированием
Старый 06.11.2009, 12:30   #8
vfrc
 
Регистрация: 29.10.2009
Сообщений: 6
По умолчанию

Помогите, пожалуйста, исправить программу для решения системы линейных уравнений методом Зейделя. (Если она вообще корректно составлена).

Sub metod_Zeydelya()

Dim a11 As Double, a21 As Double, a31 As Double
Dim a12 As Double, a22 As Double, a32 As Double
Dim a13 As Double, a23 As Double, a33 As Double
Dim b1 As Double, b2 As Double, b3 As Double
Dim x1 As Double, x2 As Double, x3 As Double
Dim x1k As Double, x2k As Double, x3k As Double
Dim eps As Double, n As Integer


Sheets("Лист1").Select

Cells(1, 6) = "Ввод исходных данных"
Cells(10, 6) = "Вывод результатов"
Cells(3, 1) = "a11 ="
Cells(4, 1) = "a21 ="
Cells(5, 1) = "a31 ="
Cells(3, 4) = "a12 ="
Cells(4, 4) = "a22 ="
Cells(5, 4) = "a32 ="
Cells(3, 7) = "a13 ="
Cells(4, 7) = "a23 ="
Cells(5, 7) = "a33 ="
Cells(3, 10) = "b1 ="
Cells(4, 10) = "b2 ="
Cells(5, 10) = "b3 ="
Cells(12, 1) = "x1 ="
Cells(12, 4) = "x2 ="
Cells(12, 7) = "x3 ="
Cells(12, 10) = "n ="
Cells(8, 5) = "eps="


a11 = Cells(3, 2)
a21 = Cells(4, 2)
a31 = Cells(5, 2)
a12 = Cells(3, 5)
a22 = Cells(4, 5)
a32 = Cells(5, 5)
a13 = Cells(3, 8)
a23 = Cells(4, 8)
a33 = Cells(5, 8)
b1 = Cells(3, 11)
b2 = Cells(4, 11)
b3 = Cells(5, 11)
eps = Cells(8, 6)


n = 1

x1k = 0
x2k = 0
x3k = 0

metka:

x1 = 1 / a11 * (b1 - a12 * x2k - a13 * x3k)
x2 = 1 / a22 * (b2 - a21 * x1 - a23 * x3k)
x3 = 1 / a33 * (b3 - a31 * x1 - a32 * x2)

If Abs(x1 - x1k) < eps And Abs(x2 - x2k) < eps And Abs(x3 - x3k) < eps Then


Cells(12, 2) = x1
Cells(12, 5) = x2
Cells(12, 8) = x3
Cells(12, 11) = n

Else

x1k = x1
x2k = x2
x3k = x3

n = n + 1

GoTo metka

End If

End Sub
vfrc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа на С++.помогите исправить ошибки Юлияw52 Помощь студентам 4 16.09.2009 22:25
Ошибки VBA nikolai_P Microsoft Office Excel 15 23.07.2009 17:54
Программа на VBA в виде функции пользователя Strel'nikova Помощь студентам 3 31.10.2008 13:53
Подскажите где ошибки? Не работает программа на Паскале ЯншинаВера Помощь студентам 1 21.05.2008 19:47