Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Basic


Ответ
 
Опции темы Опции просмотра
Старый 13.11.2014, 20:08   #1 (permalink)
Дмитрий199
Новичок
 
Регистрация: 08.11.2014
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Решить уравнение методом половинного деления

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
Дмитрий199 вне форума   Ответить с цитированием

Старый 13.11.2014, 20:08
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Эти топики схожи с вашим, вам будет интересно ознакомиться

Решить линейное уравнение ax+b=0 в Паскале
Метод половинного деления и метод Рунтге-Кутта
Решение нелинейного уравнения методом деления отрезка пополам
Помогите решить уравнение. Паскаль
Решить дифференциальное уравнение
Решить дифференциальное уравнение в Паскале

Старый 14.11.2014, 20:27   #2 (permalink)
Дмитрий199
Новичок
 
Регистрация: 08.11.2014
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Помогите пожалуйста решить программу
Дмитрий199 вне форума   Ответить с цитированием
Старый 22.10.2016, 16:03   #3 (permalink)
iks2
Member
 
Регистрация: 22.10.2016
Сообщений: 62
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ваша функция не имеет корней на заданном вами интервале. Но я привожу вам код на 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
iks2 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 06:42.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.