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

Метод деления отрезка пополам

25.02.2024, 21:03. Показов 2354. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вася бросает мяч со скоростью 12 м/с. Под каким углом к горизонту ему нужно бросить мяч, чтобы попасть в мишень на высоту 4 м на расстоянии 10 м от Васи? В момент броска мяч находился на высоте 2 м. Используйте метод деления отрезка пополам. На python
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.02.2024, 21:03
Ответы с готовыми решениями:

Метод деления отрезка пополам
Напишите функцию реализующую алгоритм поиска минимума функции методом деления отрезка пополам. С помощью функции найдите максимальное...

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

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

33
27.02.2024, 10:46
Студворк — интернет-сервис помощи студентам

Не по теме:

А на первый взгляд задачка казалась простой…)

0
27.02.2024, 11:21

Не по теме:

Gdez, Задача неопределенно сформулирована и открывает простор для фантазии. Вот мы и перемудрили.

0
3750 / 1944 / 613
Регистрация: 21.11.2021
Сообщений: 3,706
27.02.2024, 12:17
Цитата Сообщение от palva Посмотреть сообщение
а залетевший под нее рискует быть пораженным стоящей на земле зениткой
Зенитка-то здесь откуда взялась???!!! Ее вроде в условии не было?

Цитата Сообщение от palva Посмотреть сообщение
Задача неопределенно сформулирована и открывает простор для фантазии. Вот мы и перемудрили.
Да нет, вроде наоборот в условии все четко. А в чем перемудрили-то? Решение полностью соответствует условию.

А, хотя да, в условии не сказано какое из двух решений нужно выбирать. Ну, раз не сказано, значит надо оба приводить.

Цитата Сообщение от palva Посмотреть сообщение
При данной начальной скорости точки (x, y), для которых ровно одно решение, составляют так называемую "параболу безопасности". Можно набрать ее в гугле. А можно взять квадратное уравнение для тангенса из #14 выше и приравнять нулю его детерминант. Получится соотношение между x и y, которое задает эту кривую.
Не, против единственности решения для точек траектории броска под 45 градусов я ничего не имею, эта единственность вроде бы самоочевидна. А вот что оба решения могут иметь угол больше 45 градусов - несколько неожиданный результат.
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
27.02.2024, 12:57
Цитата Сообщение от palva Посмотреть сообщение
точки (x, y), для которых ровно одно решение, составляют так называемую "параболу безопасности"
Это я погорячился. Множество таких точек содержит параболу безопасности, но есть и другие точки. Все точки над "зениткой" также имеют одно решение, в смысле единственный угол для поражения. Но два времени полета. Снаряд может разорваться на восходящем движении и на нисходящем.
Цитата Сообщение от idealist Посмотреть сообщение
Зенитка-то здесь откуда взялась???!!! Ее вроде в условии не было?
Вот и пилот так думал.
Цитата Сообщение от idealist Посмотреть сообщение
против единственности решения для точек траектории броска под 45 градусов я ничего не имею
45 градусов это решение для наиболее удаленной уязвимой цели находящейся на той же высоте, что и "зенитка". А если цель выше или ниже, то здесь может быть другой угол.
0
3750 / 1944 / 613
Регистрация: 21.11.2021
Сообщений: 3,706
27.02.2024, 13:27
Цитата Сообщение от palva Посмотреть сообщение
Сообщение от palva
точки (x, y), для которых ровно одно решение, составляют так называемую "параболу безопасности"
Это я погорячился.
А, понял про зенитку! Я что-то вначале подумал, что это самолет должен по параболе двигаться
На самом деле единственное решение имеют точки только правой части "параболы безопасности". Эта правая часть действительно является границей, выше которой зенитка не дострелит. А точки левой части этой параболы имеют по два решения. И в левой части зенитка достреливает выше параболы. Интересно какая кривая здесь является границей безопасности выше которой зенитка не дострелит?
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,931
Записей в блоге: 5
27.02.2024, 13:39
Цитата Сообщение от idealist Посмотреть сообщение
И в левой части зенитка достреливает выше параболы.
Да не может быть! Казалось бы полная симметрия.
0
3750 / 1944 / 613
Регистрация: 21.11.2021
Сообщений: 3,706
27.02.2024, 14:16
Цитата Сообщение от palva Посмотреть сообщение
Да не может быть! Казалось бы полная симметрия.
Это вы в смысле иронически?
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
27.02.2024, 16:57
Цитата Сообщение от idealist Посмотреть сообщение
Зенитка-то здесь откуда взялась???!!! Ее вроде в условии не было?
а она под масксетью пряталась

Python
1
2
3
4
5
6
7
8
9
from math import pi, tan, cos, degrees
 
eps = .0001
al, d, s, v, h, g = 0, 2*eps, 10, 12, 2, 9.81
f = lambda a: s*tan(a) - (g*s**2)/(2*(v*cos(a))**2) - h
while al<pi/2:
    if f(al) * f(al+d) <= 0:
        print(degrees(al+eps))
    al += d
1
3750 / 1944 / 613
Регистрация: 21.11.2021
Сообщений: 3,706
28.02.2024, 09:34
Цитата Сообщение от idealist Посмотреть сообщение
Интересно какая кривая здесь является границей безопасности выше которой зенитка не дострелит?
Для границы безопасности над левой частью "параболы безопасности" у меня вот такое уравнение получилось:
https://www.cyberforum.ru/cgi-bin/latex.cgi?y = \frac{v{}^{2}}{4g} + \sqrt{(\frac{v{}^{2}}{4g}){}^{2} - \frac{x{}^{2}}{4}

Цитата Сообщение от palva Посмотреть сообщение
Цитата Сообщение от idealist
И в левой части зенитка достреливает выше параболы.
Да не может быть! Казалось бы полная симметрия.
Да. Например в самую высокую точку "параболы безопасности" можно стрельнуть не только под углом 45 градусов, но и 71.57.
Python
1
2
3
4
x = 7.3394
y = 3.6697
71.57
45.0
Это результат работы вот этой программы:
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
34
35
36
37
38
39
40
41
42
from math import degrees, cos, pi, tan
 
vo = 12
s = float(input('x = '))
h = float(input('y = '))
g = 9.81
eps = 1e-6
 
left = pi / 4
right = pi / 2
alpha = (right + left) / 2
y = lambda x: s * tan(x) - g * (s / (vo * cos(x))) ** 2 / 2
res = []
while abs(y(alpha) - h) > eps:
    if y(alpha) > h:
        res.append(True)
        left = alpha
    else:
        res.append(False)
        right = alpha
    if len(res) == 2 and res[0] == res[1]:
        res = None
        print('Не добросить')
        break
    alpha = (right + left) / 2
if res is not None:
    print(round(degrees(alpha), 2))
 
if res is not None:
    left = -pi / 2
    right = pi / 3
    alpha = (right + left) / 2
    res = []
    while abs(y(alpha) - h) > eps:
        if y(alpha) > h:
            res.append(True)
            right = alpha
        else:
            res.append(False)
            left = alpha
        alpha = (right + left) / 2
    print(round(degrees(alpha), 2))
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
28.02.2024, 10:25
Цитата Сообщение от idealist Посмотреть сообщение
Для границы безопасности над левой частью "параболы безопасности"
Зачем усложнять...
Цитата Сообщение от palva Посмотреть сообщение
Снаряд может разорваться на восходящем движении и на нисходящем.
вот же, верное направление...

Рассматриваем угол от 0 до 90 градусов, грубым перебором... находим отрезки с двумя корнями, нужны отрезки меняющие знаки в начальной и конечной точке. На этих отрезках и будет находиться ответ на задачу. Затем уточняем корни методом бисекции, который требуется в задаче...
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from math import pi, tan, cos, degrees
 
eps,stp = 1e-6,.1
al,d,s,v,h,g,arr,out = 0,2*eps,10,12,2,9.81,[],[]
sign = lambda x : (x > 0) - (x < 0)
f = lambda x: s*tan(x) - (g*s**2)/(2*(v*cos(x))**2) - h
# Отделяем отрезки с корнями (грубо, с шагом stp):
while al<pi/2:
    if f(al) * f(al+stp) <= 0:
        arr.append((al,al+stp))
    al += stp
#print(arr)
 
# Уточняем корни в выбранных отрезках (бисекции):
for a,b in arr:
    while b-a>d:
        c = (a+b)/2
        if sign(f(a)) != sign(f(c)):
            b = c
        else:
            a = c
    out.append(degrees((a+b)/2))
print(*out,sep='\n')
всё...
1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
28.02.2024, 10:53
YuS_2,
Рассматриваем угол от 0 до 90 градусов
Только для всех вариантов (мишень ниже горизонта, бросок(стрельба) с возвышенности) угол от -90 до +90…
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
28.02.2024, 11:24
Цитата Сообщение от Gdez Посмотреть сообщение
Только для всех вариантов (мишень ниже горизонта, бросок(стрельба) с возвышенности) угол от -90 до +90…
Да. Если ниже горизонта, то от -pi/2 до pi/2
Но у нас-то конкретная задача с определенными данными, поэтому и решение соответствующее... 0 - 90
0
3750 / 1944 / 613
Регистрация: 21.11.2021
Сообщений: 3,706
28.02.2024, 12:12
Цитата Сообщение от YuS_2 Посмотреть сообщение
Зачем усложнять
Ну, мне сама форма кривой была интересна, за которую уже не вылетают снаряды. И, как видно, это отнюдь не парабола, как в правой части, а четвертушка эллипса, что довольно неожиданно.

Цитата Сообщение от Gdez Посмотреть сообщение
Только для всех вариантов (мишень ниже горизонта, бросок(стрельба) с возвышенности) угол от -90 до +90…
Ну, от 45 градусов до -90 - граница безопасности парабола, а самый интересный участок - это от 90 до 45, - там эллипс.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
28.02.2024, 12:39
Цитата Сообщение от idealist Посмотреть сообщение
И, как видно, это отнюдь не парабола, как в правой части, а четвертушка эллипса, что довольно неожиданно.
а если ещё учесть параметры, которые в расчетах обычно опускают (сопротивление воздуха, площадь поверхности), то и эллипс может оказаться не тем, который был изначально
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.02.2024, 12:39

Решение уравнений методом деления отрезка пополам
Уровень B. Составить две программы, одна из которых выделяет все интервалы, на которых находятся корни, а вторая запрашивает границы...

Решение уравнения методом деления отрезка пополам
Найти корень уравнения 0.1(x^2)-x*ln(x) = 0 на отрезке с точностью e = 10^(-5) , используя метод деления отрезка пополам.

Вычислите корень n-й степени методом деления отрезка пополам
Дано действительное число a и натуральное n. Вычислите корень n-й степени из числа Для решения используйте метод деления отрезка...

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

Метод деления пополам
здраствуйте, помогите с заданием пожалуйста. нужно решить уровнение методом деления пополам с точностью 1е-5


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru