• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Решить уравнение методом половинного деления

Дмитрий199

Ученик
Регистрация
8 Ноя 2014
Сообщения
4
Реакции
0
Баллы
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, y1 As Integer, b As Integer
'Range(a,b)
a=-3
b=3
h=1
For x=a To b Step h
y1=y2
y2=f(x+h)
If y1*y2<=0 Then
Debug.Print x, x+h
'For x=a To x+h
End If
Next
y=f(x)'=(1+Cos(x))/(3-Sin(x) -0.5)
End Sub
Sub coren()

e=0.0001
y1=f(a)
While (b-a)>2*e
x=(a+b)/2
y=f(x)
If y*y1<=0 Then b=x Else a=x
y1=y
Debug.Print x
End Sub
 
Ваша функция не имеет корней на заданном вами интервале. Но я привожу вам код на QBasic, где реализован метод половинного деления.

Код:
REM
REM   QBASIC
REM

DECLARE FUNCTION f! (x!)

CLS
a = -3
b = 3
eps = .0001

DO
   x = (a + b) / 2
   IF f(a) * f(x) > 0 THEN a = x ELSE b = x
LOOP UNTIL ABS(a - b) < eps

PRINT "X ="; x
END

FUNCTION f (x)
   f = 1 + COS(x) / (2.5 - SIN(x))
END FUNCTION
 
Назад
Сверху