Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
LowBear

Отделение корней уравнения методом половинного деления

03.10.2014, 20:17. Показов 2465. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста мне в Visual Basic надо сделать Отделение корней уравнения y=(1/5)*x^5+0.3*x^4-(5/3)*x^3-x^2+4*x-1.7 на отрезке [-3;3] с шагом h=1 и решить один из корней методом половинного деления. Помогите пожалуйста!
 Комментарий модератора 
LowBear, пишите свои вопросы в своей теме...


Добавлено через 5 часов 40 минут
Visual Basic
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Private Sub cmdDetect_Click()
PicDetect.Cls
Dim a As Integer, b As Integer, h As Integer
a = Val(txtMinX.Text)
b = Val(txtMaxX.Text)
h = Val(stepX.Text)
Dim x1 As Integer, x2 As Integer, y1 As Integer, y2 As Integer
Dim k As Integer
k = 0
x1 = a
x2 = a + h
y1 = y(x1)
Do
y2 = y(x2)
If y1 * y2 < 0 Then
k = k + 1
Pic.Detect.Print k; "-é êîðåíü ["; x1; ";"; x2; "]"
End If
x1 = x2
x2 = x1 + h
y1 = y2
loopwhile x2 <= b
If k = 0 Then Pic.Detect.Print "Êîðíåé íåò"
End Sub
 
Private Sub cmdStart_Click()
Dim minX As Integer, maxX As Integer, minY As Integer, maxY As Integer
minX = Val(txtMinX.Text)
maxX = Val(txtMaxX.Text)
minY = Val(txtMinY.Text)
maxY = Val(txtMaxY.Text)
Pic.Scale (minX, maxY)-(maxX, minY)
Pic.Cls
Dim stepX As Single, stepY As Single
stepX = Val(txtStepX.Text)
stepY = Val(txtStepY.Text)
For x = minX To maxX Step stepX
Pic.Line (x, minY)-(x, maxY), vbGreen
Pic.PSet (x, 0), vbBlack
Pic.Print x
Next x
For t = minY To maxY Step stepY
Pic.Line (minX, y)-(maxX, y), vbGreen
Pic.PSet (0, y), vbBlack
Pic.Print y
Next
Pic.Line (minX, 0)-(maxX, 0), vbBlack
Pic.Line (0, minY)-(0, maxY), vbBlack
Pic.DrawWidth = 2
For x = minX To maxX Step stepX / 1000
y = (1 / 5) * x ^ 5 + 0.3 * x ^ 4 - (5 / 3) * x ^ 3 - x ^ 2 + 4 * x - 1.7
Pic.PSet (x, y), vbBlue
Next x
Pic.DrawWidth = 1
End Sub
вот написал код и выдает ошибку пожалуйста помогите её исправить
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2014, 20:17
Ответы с готовыми решениями:

Методом половинного деления найти корень уравнения
Доброго времени суток. Пожалуйста помогите с решением данной задачи ^ Создать пользовательскую форму, которая позволит методом...

Найти корень уравнения методом половинного деления
найти корень уравнения 8*x^2 -12*x +5=0 в интервале методом половинного деления

Методом половинного деления найти корень уравнения
Есть такая вот методичка: Мой бедный мозг кричит, что это решить нельзя. Из исходных данных нашел это: Ra 100 Rb 200 ...

2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
06.10.2014, 18:06
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Visual Basic
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Function SearchInt(a As Double, b As Double, h As Double) As Double()
 
Dim R() As Double
 
    ReDim R(1 To 10) As Double
 
    k% = 0
 
    f1# = (1 / 5) * a ^ 5 + 0.3 * a ^ 4 - (5 / 3) * a ^ 3 - a ^ 2 + 4 * a - 1.7
 
    For X# = a + h To b Step h
        
        f2# = (1 / 5) * X# ^ 5 + 0.3 * X# ^ 4 - (5 / 3) * X# ^ 3 - X# ^ 2 + 4 * X# - 1.7
        
        If Sgn(f1#) * Sgn(f2#) < 0 Then
           k% = k% + 1
           R(k%) = X# - h
           k% = k% + 1
           R(k%) = X#
        End If
           
        f1# = f2#
        
     Next X#
 
     If k% < 10 Then ReDim Preserve R(1 To k%) As Double
     
     SearchInt = R
 
End Function
 
Function BinSearch(a As Double, b As Double, eps As Double) As Double
 
    fa# = (1 / 5) * a ^ 5 + 0.3 * a ^ 4 - (5 / 3) * a ^ 3 - a ^ 2 + 4 * a - 1.7
    fb# = (1 / 5) * b ^ 5 + 0.3 * b ^ 4 - (5 / 3) * b ^ 3 - b ^ 2 + 4 * b - 1.7
 
    Do
    
      c# = 0.5 * (a + b)
    
      If Abs(b - a) <= eps Then
         BinSearch = c#
         Exit Function
      End If
    
      fc# = (1 / 5) * c# ^ 5 + 0.3 * c# ^ 4 - (5 / 3) * c# ^ 3 - c# ^ 2 + 4 * c# - 1.7
    
      If Sgn(fa#) * Sgn(fc#) < 0 Then
         b = c#
         fb# = fc#
      Else
         a = c#
         fa# = fc#
      End If
    
    Loop
 
End Function
 
Sub Test_2()
 
Dim Z() As Double
 
    Z = SearchInt(-3, 3, 0.1)
    
    n% = UBound(Z, 1) \ 2
    
    For ir% = 1 To n%
        p% = (ir% - 1) * 2 + 1
        a# = Z(p%)
        b# = Z(p% + 1)
        Debug.Print "Интервал корня: ["; a#; ","; b#; "] корень=";
        R# = BinSearch(a#, b#, 0.000001)
        Debug.Print R#
    Next ir%
        
End Sub
Результат:


Code
1
2
3
4
5
Интервал корня: [-2,8 ,-2,7 ] корень=-2,77358131408691 
Интервал корня: [-2,4 ,-2,3 ] корень=-2,39765586853027 
Интервал корня: [ 0,5 , 0,6  ] корень= 0,576378250122072 
Интервал корня: [ 1,1  , 1,2 ] корень= 1,12679176330567 
Интервал корня: [ 1,9     , 2 ] корень= 1,96806678771973
2
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
08.10.2014, 00:10
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Function f#(x)
f = (1 / 5) * x ^ 5 + 0.3 * x ^ 4 - (5 / 3) * x ^ 3 - x ^ 2 + 4 * x - 1.7
End Function
 
Sub k(x, b, h, eps)
    Do
    a = x:         f1 = f(x)
    x = x + h:     f2 = f(x)
        If f1 * f2 < 0 Then
           b1 = x
                Do
                   c = (b1 + a) / 2
                   If f(a) * f(c) > 0 Then a = c Else b1 = c
                Loop While Abs(a - b1) > eps
i = i + 1: Print "x"; i; "="; c
        End If
     Loop While x <= b
End Sub
 
Private Sub Command1_Click()
k -100, 100, 0.1, 0.0001
End Sub
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2014, 00:10
Помогаю со студенческими работами здесь

Решение уравнения методом половинного деления (бисекций)
Помогите пожалуйста найти ошибку в программе Sub отделение_корней() Dim a As Single, b As Single, h As Single, y2 As Single, x As...

Написать программу решения квадратного уравнения методом половинного деления
Пожалуйста, помогите написать программу решения любого квадратного уравнения, например х2+х-12, чтобы понять как вообще пишется такая...

Уравнение методом половинного деления 1+Cos(x)/(3-Sin(x)-0.5=0
Function f(x As Single) As Single f=(1+Cos(x))/(3-Sin(x))-0.5 End Functioin Sub решениеуравнения() Dim x As Integer, y As Integer,...

Вычислить значение функции методом половинного деления
Добрый день! столкнулся с проблемой создания программы для вычисления функции tg(x/2)-ctg(x/2) +x =0,на промежутке от 1 до 2 методом...

Решить уравнение методами половинного деления, хорда, касательных (Ньютона) и методом итераций
решить уравнение sinx + x - 1 = 0 методами половинного деления, методом хорда, методом касательных(Ньютона) и методом итераций. У меня есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru