Форум сайта python.su
Ну маловато это 10 членов бесконечного ряда.
Офлайн
py.user.nextВполне достаточно для нахождения синуса разложением в ряд Тейлора
Ну маловато это 10 членов бесконечного ряда.
import math def mysin(x): return x - math.pow(x, 3)/math.factorial(3) + math.pow(x, 5)/math.factorial(5) - math.pow(x, 7)/math.factorial(7) + math.pow(x, 9)/math.factorial(9) print(math.sin(math.pi / 3) - mysin(math.pi / 3))
>>> -4.131534248053015e-08
Офлайн
FishHookА почему ты использовал пять членов ряда, а не один, два, три или пятнадцать? Ведь можно просто написать x и всё.
Вполне достаточно для нахождения синуса
Отредактировано py.user.next (Янв. 25, 2017 15:42:00)
Офлайн
py.user.next
Потому что для моей задачи столько членов ряда является достаточным для достижения необходимой точности.
Офлайн
FishHookНу, программы же пишутся не для одной задачи. Про реюз кода забыл? Почему точность эпсилон в данной задаче должна подаваться на вход в виде параметра, а не должна быть зашита внутри функции? Да потому что в разных случаях может понадобиться разная точность. И чтобы несколько функций, похожих друг на друга, не писать, пишут одну функцию с параметром. (В программировании, вообще, это называют абстрагированием кода.)
Потому что для моей задачи столько членов ряда является достаточным
Отредактировано py.user.next (Янв. 26, 2017 05:00:53)
Офлайн
py.user.nextНе для одной задачи, а для класса задач. Придумай инженерную задачу, где нужна точность выше третьего знака после запятой.
Ну, программы же пишутся не для одной задачи.
py.user.nextВ сферических случаях в вакууме. Если мне по причинам специфики предметной области не нужна и никогда не понадобится прецизионная точность вычислений, нет никакой необходимости усложнять код в угоду академическим абстракциям. Как я показал выше, пять членов ряда Тейлора обеспечивают точность вычислений до восьмого знака, что с большим запасом покрывает потребность инженерных вычислений. Ты предлагаешь переписать эту функцию таким образом, чтобы точность покрывала все мыслимые и немыслимые возможные случаи применения этой функции. Но мне это не нужно.
Да потому что в разных случаях может понадобиться разная точность.
Офлайн
FishHookА ты никогда не имел дело с сумасшедшими учёными, которые вычисляют периоды вращения звёзд и галактик, где после запятой вообще сотня знаков? В России - да, нет такого, а там они постоянно что-то вычисляют или ДНК просчитывают. Типа какая разница 1.1234 световых года или 1.1234001 световых года.
Придумай инженерную задачу, где нужна точность выше третьего знака после запятой.
FishHookА где ты доказал, что для любой функции этого будет достаточно? Про синус я тебе скажу даже, как ты это узнал: ты просто взял и проверил и сравнил. А если тебе просто функцию дать, ты по ней можешь сказать, сколько там членов надо суммировать для получения определённой точности? Нет, ты можешь только догадываться. А моя функция посчитает всё правильно. Я ей точность передал - и она выдала мне результат сразу.
Как я показал выше, пять членов ряда Тейлора обеспечивают точность вычислений до восьмого знака
Отредактировано py.user.next (Янв. 26, 2017 15:37:33)
Офлайн
py.user.next
А ты никогда не имел дело с сумасшедшими учёными, которые вычисляют периоды вращения звёзд и галактик, где после запятой вообще сотня знаков?
Речь шла про факториал. Ты продолжаешь настаивать, что применение факториала не обосновано ни в каком случае?
Офлайн
FishHookПотому что ты никогда с ними не работал. Он тебе даёт какой-нибудь csv на 1000 полей и на миллион строк и везде такие числа. И он тебе говорит “давай, найди мне среднее” и что ты сделаешь питоном одним? Там думать надо. И там такое “я вот там закеширую что-то” не прокатит, потому что ты найдёшь что-то неправильное - и у него из-за этого космический корабль врежется куда-то там.
Слушай, да мне насрать на сумасшедших ученых
FishHookА ты подумал, что я сказал, что факториал никогда не стоит вычислять? Нет, я сказал, что факториал никогда не стоит вычислять в таком классе задач. Потому что факториал в таких задачах - это как пузырьковой сортировкой сортировать какие-нибудь большие данные. Да, её написать просто и она сортирует всё нормально, но это не значит, что эта квадратная хрень вообще для этого подходит. Ты просто не дождёшься, когда она досортирует. Поэтому для этого применяют линейно-логарифмические сортировки, как бы тебе там не хотелось пузырёк свой накидать.
Ты продолжаешь настаивать, что применение факториала не обосновано ни в каком случае?
Отредактировано py.user.next (Янв. 27, 2017 10:13:52)
Офлайн