powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Метод Последовательный приближений
4 сообщений из 4, страница 1 из 1
Метод Последовательный приближений
    #38581649
megaded14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, мне преподователь дал задание написать программу для расчета цикла ДВС. И я застопорился на нахождении одного параметра который ищется методом последовательных приближений или методом итераций. Найти нужно параметр n1, в формуле все остальные параметры известны.Вот фото уравнения для ясности http://www.radikal.ru][IMG] http://s020.radikal.ru/i723/1403/74/a7d29e100f09.jpg [/IMG]. Я лазил по форуму и вот что у меня получилось

Private Sub Command1_Click()
Dim sng0 As Single
Dim snqEps As Single
Dim lngCount As Long
Dim sngX As Single
Dim sngY As Single

sng0 = 1.34
snqEps = 0.0000001

sngX = sng0
lngCount = 0
sngY = (8.13 / (19.277 + (0.002515 * 344.836 * (1 + 14 ^ (sngX - 1))))) + 1 - sngX
Do
sngX = sngY
sngY = ((8.13 / (19.277 + (0.002515 * 344.836 * (1 + 14 ^ (sngX - 1))))) * sngX) + 1 - sngX
lngCount = lngCount + 0.000000001
Loop Until Abs(sngY - sngX) < snqEps
lbla.Caption = sngY
End Sub


Но но считает на правильно. Прошу помочь. Приделы числа n1=1,34...1,42
...
Рейтинг: 0 / 0
Метод Последовательный приближений
    #38581653
megaded14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub Command1_Click()
Dim sng0 As Single
    Dim snqEps As Single
    Dim lngCount As Long
    Dim sngX As Single
    Dim sngY As Single
    
    sng0 = 1.34
    snqEps = 0.0000001
    
    sngX = sng0
    lngCount = 0
    sngY = (8.13 / (19.277 + (0.002515 * 344.836 * (1 + 14 ^ (sngX - 1))))) + 1 - sngX
    Do
        sngX = sngY
        sngY = ((8.13 / (19.277 + (0.002515 * 344.836 * (1 + 14 ^ (sngX - 1))))) * sngX) + 1 - sngX
        lngCount = lngCount + 0.000000001
    Loop Until Abs(sngY - sngX) < snqEps
    lbla.Caption = sngY
End Sub
...
Рейтинг: 0 / 0
Метод Последовательный приближений
    #38581662
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Убрал из формул лишнее, получил 1,36 при 6 итерациях:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub Command1_Click()
Dim sng0 As Double
    Dim snqEps As Double
    Dim lngCount As Long
    Dim sngX As Double
    Dim sngY As Double
    
    sng0 = 1.34
    snqEps = 0.0000001
    
    sngX = sng0
    lngCount = 0
    sngY = 8.13 / (19.277 + 0.002515 * 344.836 * (1 + 14 ^ (sngX - 1))) + 1
    Do
        sngX = sngY
        sngY = 8.13 / (19.277 + 0.002515 * 344.836 * (1 + 14 ^ (sngX - 1))) + 1
        lngCount = lngCount + 1
    Loop Until Abs(sngY - sngX) < snqEps
    Debug.Print sngY, lngCount
End Sub

И забудьте про Single.
...
Рейтинг: 0 / 0
Метод Последовательный приближений
    #38581674
megaded14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский, спасибо большое за помощь, все сходиться))
а из-за параметра Sigle при удалении лишнего из формулы у меня программа зависала и из-за этого пол дня голову ломал
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Метод Последовательный приближений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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