powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Метод итераций в VB6
7 сообщений из 7, страница 1 из 1
Метод итераций в VB6
    #37162222
Satanarchist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток) Нам задали, ничего не объясняя по данной теме, решить уравнение методом итераций. Типа "на самостоятельное изучение". Само уравнение выглядит так: X^3 - 3*(X^2) + 4*X - 9 = 0, интервал изоляции корня [2;3], точность 0.001. Дайте, пожалуйста, ссылку на какой-то учебник\мануал\еще что-то, где объясняется, как это решать! А то ничего не получается с программой... Гугл проверял, ничего толкового не нашел. Ну или, если найдется добрая душа, напишите программку:)
...
Рейтинг: 0 / 0
Метод итераций в VB6
    #37162411
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Satanarchist,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
' преобразуем исходную функцию к виду: 
'   f(x) = (x - 3)*(x^2 + 4) + 3
' формула для вычисления следующего приближения x:
'   [xi] = 3 - 3 / ([xi-1]^2 + 4), где
'   [xi] - следующее приближение для x
'   [xi-1] - приближение, полученное на предидущем шаге


' код:

Sub iteration_method()

Const epsilon! =  0 . 001     ' точность вычислений
Const MAXITER% =  1000      ' максимальное кол-во итераций
Const X0! =  2 !            ' нулевое приближение

Dim x!, x2!
Dim count%

x2 = X0

Debug.Print "Iter#", "xi", "delta"

Do Until Abs(x2 - x) < epsilon Or count >  1000 
    x = x2
    x2 =  3  -  3  / (x * x +  4 )
    count = count +  1 
    Debug.Print Format(count, "000"), x2, Format(Abs(x2 - x), "0.0000")
Loop
if Abs(x2 - x) > epsilon Then _
Debug.Print "(!) требуемая точность не достигнута. Ищите другую формулу для приближений."

End Sub
...
Рейтинг: 0 / 0
Метод итераций в VB6
    #37162414
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗЫ: про округление полученного результата позаботьтесь самостоятельно.
...
Рейтинг: 0 / 0
Метод итераций в VB6
    #37164489
Satanarchist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо) А все же, можно ссылочку на какой-то мануал, где объяснены принципы составления подобных программ? А то принцип работы метода итераций я понял, а принцип программы - не очень..
...
Рейтинг: 0 / 0
Метод итераций в VB6
    #37164553
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Satanarchist.., а принцип программы - не очень..
Вам это надеюсь понятно?
Код: plaintext
Const X0! =  2 !
...
Рейтинг: 0 / 0
Метод итераций в VB6
    #37164772
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Satanarchist,
со ссылками на маны, к сожалению, проблема. А принцип составления простой как двери:
1) задать нулевое приближение;
2) вычислить следующее приближение;
3) выполнять 2) до тех пор, пока не быдет достигнута требуемая точночть, либо не будет превышен допустимый предел итераций.

ЗЫ: в предложенном мной варианте проверку Until Abs(x2 - x) < epsilon Or count > 1000 лучше следует выполнять не в начале итерации, а в конце, т.е.:
Код: plaintext
1.
2.
Do
' ...
Loop Until
Чтобы избежать ошибки в случае нулевого приближения X0 = 0.
...
Рейтинг: 0 / 0
Метод итераций в VB6
    #37168579
Satanarchist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок, спасибо, понял;)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Метод итераций в VB6
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]