Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 27.11.2022
Сообщений: 14

Найти корни функции f(x)=sin(tg(1+x/1000)) методом деления пополам с точностью до 6-го знака после запятой

16.11.2025, 16:11. Показов 1003. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помощи с особо сложной задачей по pyton

Ограничение времени: 1 секунда
Ограничение памяти: 64.0 Мб
Ввод: стандартный ввод или input.txt
Вывод: стандартный вывод или output.txt
Требуется найти корни функции f(x)=sin(tg(1+x/1000))
методом деления пополам с точностью до 6-го знака после запятой.

Поскольку у этой функции бесконечное количество корней, на входа заданы промежутки [a,b], для которых гарантируется наличие только одного корня на промежутке, а также знакопеременность функции на границах промежутка, то есть f(a)*f(b)<0.

Формат ввода
В первой строке дано целое число N — количество промежутков для поиска корней. В последующих N строках по два вещественных числа, разделённых пробелом — границы промежутков.

Формат вывода
N строк со значениями корней функции f(x), найденных с точностью до 6 знака после запятой. При выводе чисел все знаки после 6-го должны быть отброшены, например, при помощи f-строки f"{root:.6F}", где root — найденный корень.

Пример
Ввод:
3
460 480
480 500
500 510

Вывод:
465.088530
491.386197
507.220145
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.11.2025, 16:11
Ответы с готовыми решениями:

Рекурсивная программа, которая методом деления отрезка пополам находит с точностью EPS корень уравнения
Напишите рекурсивную программу, которая по заданным A, B и EPS методом деления отрезка пополам...

Алгоритм нахождения корня нелинейного уравнения методом деления пополам
Всем привет) помогите решить задачу. Нужно найти - алгоритм нахождения корня нелинейного уравнения...

Найти приближенное значение квадратного корня из 2 методом половинного деления с точностью 0.000001
from math import sqrt(x) def f(x): return sqrt(x) - 10 left, right = 1.0, 2.0 accuracy...

5
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6115 / 2810 / 1038
Регистрация: 01.06.2021
Сообщений: 10,249
16.11.2025, 20:30
Лучший ответ Сообщение было отмечено Вова Щ как решение

Решение

Python
1
2
3
4
5
6
from mpmath import findroot, sin, tan
n = int(input())
for i in range(n):
    a, b = map(float, input().split())
    root = float(findroot(lambda x: sin(tan(1+x/1000)), (a, b), solver='bisect'))
    print(f"{root:.6f}")
Цитата Сообщение от Вова Щ Посмотреть сообщение
методом деления пополам с точностью до 6-го знака после запятой
solver='bisect' это и есть метод деления пополам

mpmath одна из крутейших библиотек, на которую обычно опираются другие математические модули
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,680
Записей в блоге: 14
17.11.2025, 06:28
Royal_X, изюм из булки...
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,680
Записей в блоге: 14
17.11.2025, 18:51
Python
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
from math import sin,tan
 
def root(f,a,b,eps=1.0e-6):
    fa=f(a)
    fb=f(b)
    if fa*fb > 0:
        return None
    while (b-a) >= eps:
        c=0.5*(a+b)
        fc=f(c)
        if abs(fc) < eps:
            break
        if fc*fa < 0:
            b=c
            fb=fc
        else:
            a=c
            fa=fc
    return 0.5*(a+b)        
    
def scan(f,a,b,eps=1.0e-6):
    res=[]
    d=(b-a)/10000
    x1=a
    while x1<b+d:
        x2=x1+d
        q=root(f,x1,x2,eps)
        if q != None:
            res.append(q)
        x1=x2
    return res    
 
print(scan(lambda x: sin(tan(1+x/100)),-2000,2000))
Результат:

Кликните здесь для просмотра всего текста
[-1984.9556640624965, -1858.6928710937182, -1843.6590789794566, -1838.4467391967405, -1835.8169723510368, -1834.2335777282337, -1833.176155471764, -1832.420113372765, -1831.8527355193705, -1831.4112625121684, -1831.0579837798687, -1826.3603141784274, -1825.886785125693, -1824.9830402373873, -1824.6939350127777, -1824.3406566619474, -1823.8991836547452, -1823.3318058013515, -1822.5757633208827, -1821.518341064413, -1819.9349464416096, -1817.305178832966, -1812.0928405761292, -1797.0590576171417, -1670.796289062425, -1544.5335937498965, -1529.4998107909087, -1524.2874740599505, -1521.6577072142468, -1520.0743125914432, -1519.0168899535038, -1518.2608478545048, -1517.693470001111, -1517.2519969939085, -1516.8987186430782, -1516.6096130369997, -1515.7058685301631, -1515.232339095959, -1514.7776874541132, -1513.7945201872672, -1513.219339370617, -1513.0394496916615, -1511.727519607433, -1511.2686458586531, -1510.5346698759872, -1510.1813911436873, -1509.739918136485, -1509.1725402830916, -1508.4164978026224, -1507.3590759276226, -1505.77568054188, -1503.1459136961762, -1497.9335754393392, -1482.8997802733197, -1356.6371093748535, -1230.3743408201371, -1215.3405456541182, -1210.1282073972811, -1207.4984420774567, -1205.915046691714, -1204.8576248167137, -1204.1015823362445, -1203.5342044828512, -1203.0927318571185, -1199.3679584501356, -1198.9786899564829, -1198.7616710661018, -1198.041783523377, -1197.2841785429082, -1196.6645099638063, -1195.5806529996948, -1195.0132751463016, -1194.2572326658324, -1193.199810790832, -1191.6164154050896, -1188.986648559386, -1183.7743103025487, -1168.740527343561, -1042.477734374782, -916.2150634763467, -901.1812805173633, -895.9689422605277, -893.3391769407036, -891.7557815549617, -890.6983596799616, -889.9423171994929, -889.3749393460995, -888.9334663388972, -888.5801876065976, -887.5199108121637, -886.8449253080133, -886.4249332425838, -886.0612995145566, -885.9769023893125, -885.0595371244198, -884.3713932035214, -883.9514011380917, -883.2764156339416, -882.2161388395081, -881.8628604886778, -881.4213874814757, -880.8540096280823, -880.0979675290833, -879.0405448911438, -877.4571502683411, -874.8273834226384, -869.6150451658024, -854.5812499997878, -728.3185546872949, -602.0558105466771, -587.0220153806623, -581.8096771238268, -579.1799110410632, -577.5965164182605, -576.539094161791, -575.7830516813225, -575.2156738279286, -574.1318172452872, -573.5121486661857, -572.7545436857171, -571.9623172758048, -571.525662612719, -570.7566143033929, -567.703595351977, -567.2621219633053, -566.6947444913814, -565.9387020109126, -564.8812797544431, -563.2978851316404, -560.6681182859372, -555.4557800291017, -540.4219970701181, -414.1591796873128, -287.896533202945, -272.8627502439615, -267.6504119871259, -265.0206451414229, -263.43725051862026, -262.37982864362044, -261.62378654462145, -261.0564086912279, -260.6149356840257, -260.26165733319567, -259.52768135052963, -259.06880683881093, -257.78697624188726, -257.3171772001391, -256.67671089154544, -256.0186397550708, -255.56398735028566, -255.09045829755132, -254.18671379071534, -253.89760818463628, -253.5443298338062, -253.102856826604, -252.53547897321045, -251.7794364927417, -250.7220146177417, -249.13861999493895, -246.50885314923573, -241.29651489239976, -226.2627197263839, -100.00009765606961, 26.262719726743214, 41.296514892758786, 46.5088531495947, 49.1386199952978, 50.72201461810053, 51.77943649310053, 52.53547897356928, 53.102856826962835, 53.54432983416499, 53.897608184995065, 54.18671379107416, 55.090458297910104, 55.563987350644474, 56.018639755429625, 56.676710891904236, 57.31717720049798, 57.78697624224603, 59.068806839169845, 59.52768135088861, 60.261657333554616, 60.61493568438468, 61.05640869158684, 61.6237865449804, 62.37982864397942, 63.43725051897941, 65.02064514178217, 67.6504119874853, 72.86275024432132, 87.8965332033059, 214.15917968768264, 340.421997070491, 355.45578002947457, 360.6681182863101, 363.2978851320131, 364.8812797548158, 365.9387020112854, 366.69474449175414, 367.26212196367794, 367.7035953523497, 370.75661430376556, 371.52566261309164, 371.9623172761776, 372.7545436860896, 373.51214866655835, 374.13181724565993, 375.2156738283015, 375.78305168169504, 376.5390941621638, 377.5965164186334, 379.17991104143607, 381.80967712419954, 387.0220153810352, 402.05581054704993, 528.3185546876678, 654.5812500001607, 669.6150451661753, 674.827383423011, 677.4571502687138, 679.0405448915164, 680.0979675294561, 680.854009628455, 681.4213874818483, 681.8628604890507, 682.2161388398807, 683.2764156343143, 683.9514011384646, 684.3713932038943, 685.0595371247927, 685.9769023896852, 686.0612995149295, 686.4249332429566, 686.8449253083862, 687.5199108125366, 688.5801876069703, 688.9334663392701, 689.3749393464722, 689.9423171998656, 690.6983596803344, 691.7557815553344, 693.3391769410763, 695.9689422609003, 701.1812805177361, 716.2150634767196, 842.4777343751499, 968.7405273438927, 983.7743103028763, 988.986648559712, 991.6164154054147, 993.1998107911569, 994.2572326661567, 995.0132751466257, 995.5806530000193, 996.6645099641304, 997.284178543232, 998.0417835237006, 998.7616710664252, 998.9786899568061, 999.3679584504584, 1003.0927318574405, 1003.534204483173, 1004.1015823365666, 1004.8576248170352, 1005.915046692035, 1007.4984420777772, 1010.1282073976013, 1015.340545654437, 1030.3743408204532, 1156.6371093751695, 1282.8997802736358, 1297.9335754396552, 1303.1459136964922, 1305.7756805421961, 1307.3590759279386, 1308.4164978029385, 1309.1725402834077, 1309.739918136801, 1310.1813911440033, 1310.5346698763033, 1311.2686458589692, 1311.727519607749, 1313.0394496919776, 1313.219339370933, 1313.7945201875832, 1314.7776874544293, 1315.2323390962752, 1315.7058685304792, 1316.6096130373157, 1316.8987186433942, 1317.2519969942246, 1317.6934700014272, 1318.260847854821, 1319.0168899538198, 1320.0743125917593, 1321.6577072145628, 1324.2874740602665, 1329.4998107912247, 1344.5335937502125, 1470.7962890627412, 1597.0590576174577, 1612.0928405764453, 1617.305178833282, 1619.9349464419256, 1621.5183410647292, 1622.5757633211988, 1623.3318058016675, 1623.8991836550613, 1624.3406566622634, 1624.6939350130938, 1624.9830402377033, 1625.886785126009, 1626.3603141787435, 1631.0579837801847, 1631.4112625124844, 1631.8527355196866, 1632.420113373081, 1633.1761554720802, 1634.2335777285498, 1635.816972351353, 1638.4467391970566, 1643.6590789797726, 1658.6928710940342, 1784.9556640628125, 1911.2183105472166, 1926.2521057132353, 1931.4644454959512, 1934.0942123416553, 1935.6776069644577, 1936.7350288394584, 1937.4910713199272, 1938.0584491733212, 1938.499921799053, 1940.8110172275215, 1941.495721817365, 1942.0926815036441, 1943.5508701327954, 1944.3084751132642, 1944.9281436923657, 1946.012000656477, 1946.579378509871, 1947.33542099034, 1948.3928428653403, 1949.9762374881434, 1952.606004333847, 1957.818344116563, 1972.8521240237928]
2
0 / 0 / 0
Регистрация: 27.11.2022
Сообщений: 14
21.11.2025, 18:39  [ТС]
Catstail, Здравствуйте, попробовал ваш код с числами из примеров и он выдает пустое множество, в чем может быть проблема?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,680
Записей в блоге: 14
22.11.2025, 13:54
Вова Щ, Дело в том, что я пропустил нулик в определении функции!

Python
1
print(scan(lambda x: sin(tan(1+x/1000)),460,480))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.11.2025, 13:54
Помогаю со студенческими работами здесь

Найти корень уравнения методом деления отрезка пополам
Найти какой-нибудь корень уравнения 2*cos(5+x)–3sin(2–x)=0 на отрезке с заданной точностью E =...

Найти корень уравнения методом дихотомии (делением отрезка пополам)
Найти корень уравнения f(x)=0 на интервале . Длина конечного интервала неопределенности не должна...

Вывести результат вычисления в виде действительного числа c точностью до 5 знаков после запятой
По данному натуральному числу N найдите сумму чисел 1+1/1!+1/2!+1/3!+...+1/N!. Количество действий...

Квадратный корень введенного с клавиатуры числа, с точностью до трех знаков после запятой
Помогите пожалуйста Напишите программу, которая вычисляет квадратный корень введенного с...

Вывести 5 последних знаков до десятичной запятой и 5 первых знаков числа
Собсна сабж: 5 последних знаков до десятичной запятой и 5 первых знаков после десятичной запятой ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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