Отделить корень уравнения графически и аналитически. Метод бисекций - QBasic

Узнай цену своей работы

Формулировка задачи:

Добрый день! ребята помогите пожалуйста с программой. только начинаю изучать. Отделить корень уравнения графически и аналитически (если в уравнении корней несколько, взять наименьший положительный); уточнить корень указанным методом с точностью ε=0,001 составить программу расчетов на языке БЕЙСИК. а) 5sinx – x + 1 = 0 метод бисекций Вариант программы соответствующей алгоритму решения задачи определения корня уравнения 5sinx-x=1:
Листинг программы
  1. 10 СLS
  2. 20 REM Метод деления отрезка пополам
  3. 30 INPUT “Введите точность Е”, E
  4. 40 INPUT “Введите значение левого конца отрезка A”, A
  5. 50 INPUT “Введите значение левого конца отрезка B”, B
  6. 60 XN=A: XK=B
  7. 70 XS=(XN+XK)/2
  8. 80 FX=5*SIN(XS)-XS +1
  9. 90 FN1=5*SIN(XN)-XN+1
  10. 100 IF FN1*FX<0 THEN XK=XS ELSE XN=XS
  11. 110 IF ABS(XN-XK)> E THEN 70
  12. 120 PRINT “Значение корня Х=”; Х
  13. 130 END
Заранее всем спасибо!

Решение задачи: «Отделить корень уравнения графически и аналитически. Метод бисекций»

textual
Листинг программы
  1. DECLARE FUNCTION Div2! (A!, B!, Eps!)
  2. DECLARE FUNCTION Fx! (x!)
  3.  
  4.     DIM A!, B!, Eps!, Tmp!
  5.  
  6.     CLS
  7.     A = 2.5
  8.     B = 3
  9.     Eps = .001
  10.     Tmp = Div2(A, B, Eps)
  11.     PRINT "x= "; Tmp
  12.     PRINT "F(x)="; Fx(Tmp)
  13.  
  14. FUNCTION Div2! (A!, B!, Eps!)
  15.     DIM x!, Fa!, Fxx!
  16.     Fa = Fx(A)
  17.     WHILE ABS(Fa) > Eps
  18.     x = (A + B) / 2
  19.     Fxx = Fx(x)
  20.     IF Fa * Fxx <= 0 THEN
  21.        B = x
  22.     ELSE
  23.        A = x
  24.        Fa = Fxx
  25.     END IF
  26.     WEND
  27.     Div2 = A
  28. END FUNCTION
  29.  
  30. FUNCTION Fx! (x!)
  31.     Fx = 5 * SIN(x) - x + 1
  32. END FUNCTION

Объяснение кода листинга программы

  1. Объявлены функции Div2!, Fx!
  2. В основной программе определены переменные A!, B!, Eps!, Tmp!
  3. Заданы начальные значения A=2.5, B=3, Eps=.001
  4. Вызвана функция Div2!(A!, B!, Eps!) с передачей текущих значений переменных A!, B!, Eps!
  5. Результат вычисления функции Div2! сохранен в переменную Tmp!
  6. Выведено на экран значение переменной Tmp!
  7. Вычислено значение функции Fx!(Tmp!) и выведено на экран
  8. В функции Div2! определены дополнительные переменные x!, Fa!, Fxx!
  9. При вычислении функции Div2! в цикле пока выполняется условие ABS(Fa) > Eps
  10. В каждой итерации цикла переменная x! принимает значение (A + B) / 2
  11. Вычисляется значение функции Fx!(x!) и сохраняется в переменную Fxx!
  12. Проверяется условие Fa * Fxx <= 0
  13. Если условие истинно, то переменная B присваивается значение x!, иначе переменной A присваивается значение x!, а переменной Fa значение Fxx!
  14. Цикл выполняется до тех пор, пока условие ABS(Fa) > Eps истинно
  15. В результате выполнения функции Div2! возвращается значение переменной A
  16. В функции Fx! определена формула для вычисления значения функции Fx(x) = 5 * SIN(x) - x + 1
  17. В основной программе вызывается функция Fx!(Tmp)! для вычисления значения функции Fx(Tmp)
  18. Завершается выполнение основной программы
  19. Значения переменных A!, B!, Eps!, Tmp!, x!, Fa!, Fxx! не используются после выполнения функций Div2!, Fx!
  20. Значение переменной Tmp! не используется после вывода на экран

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы