Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 25, 2017 10:33:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9894
Репутация: +  854  -
Профиль   Отправить e-mail  

Ошибка в коде

Ну маловато это 10 членов бесконечного ряда.



Офлайн

#2 Янв. 25, 2017 11:05:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ошибка в коде

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



Офлайн

#3 Янв. 25, 2017 15:41:29

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9894
Репутация: +  854  -
Профиль   Отправить e-mail  

Ошибка в коде

FishHook
Вполне достаточно для нахождения синуса
А почему ты использовал пять членов ряда, а не один, два, три или пятнадцать? Ведь можно просто написать x и всё.



Отредактировано py.user.next (Янв. 25, 2017 15:42:00)

Офлайн

#4 Янв. 25, 2017 16:45:35

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ошибка в коде

py.user.next
Потому что для моей задачи столько членов ряда является достаточным для достижения необходимой точности.



Офлайн

#5 Янв. 26, 2017 04:59:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9894
Репутация: +  854  -
Профиль   Отправить e-mail  

Ошибка в коде

FishHook
Потому что для моей задачи столько членов ряда является достаточным
Ну, программы же пишутся не для одной задачи. Про реюз кода забыл? Почему точность эпсилон в данной задаче должна подаваться на вход в виде параметра, а не должна быть зашита внутри функции? Да потому что в разных случаях может понадобиться разная точность. И чтобы несколько функций, похожих друг на друга, не писать, пишут одну функцию с параметром. (В программировании, вообще, это называют абстрагированием кода.)



Отредактировано py.user.next (Янв. 26, 2017 05:00:53)

Офлайн

#6 Янв. 26, 2017 05:48:33

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ошибка в коде

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

py.user.next
Да потому что в разных случаях может понадобиться разная точность.
В сферических случаях в вакууме. Если мне по причинам специфики предметной области не нужна и никогда не понадобится прецизионная точность вычислений, нет никакой необходимости усложнять код в угоду академическим абстракциям. Как я показал выше, пять членов ряда Тейлора обеспечивают точность вычислений до восьмого знака, что с большим запасом покрывает потребность инженерных вычислений. Ты предлагаешь переписать эту функцию таким образом, чтобы точность покрывала все мыслимые и немыслимые возможные случаи применения этой функции. Но мне это не нужно.
Вообще, это какое-то словоблудие начинается. Речь шла про факториал. Ты продолжаешь настаивать, что применение факториала не обосновано ни в каком случае?



Офлайн

#7 Янв. 26, 2017 15:35:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9894
Репутация: +  854  -
Профиль   Отправить e-mail  

Ошибка в коде

FishHook
Придумай инженерную задачу, где нужна точность выше третьего знака после запятой.
А ты никогда не имел дело с сумасшедшими учёными, которые вычисляют периоды вращения звёзд и галактик, где после запятой вообще сотня знаков? В России - да, нет такого, а там они постоянно что-то вычисляют или ДНК просчитывают. Типа какая разница 1.1234 световых года или 1.1234001 световых года.

FishHook
Как я показал выше, пять членов ряда Тейлора обеспечивают точность вычислений до восьмого знака
А где ты доказал, что для любой функции этого будет достаточно? Про синус я тебе скажу даже, как ты это узнал: ты просто взял и проверил и сравнил. А если тебе просто функцию дать, ты по ней можешь сказать, сколько там членов надо суммировать для получения определённой точности? Нет, ты можешь только догадываться. А моя функция посчитает всё правильно. Я ей точность передал - и она выдала мне результат сразу.

Так я ещё могу её абстрагировать относительно самой функции, а не только точности конкретной функции (синуса или е в степени икс).



Отредактировано py.user.next (Янв. 26, 2017 15:37:33)

Офлайн

#8 Янв. 26, 2017 16:18:42

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ошибка в коде

py.user.next
А ты никогда не имел дело с сумасшедшими учёными, которые вычисляют периоды вращения звёзд и галактик, где после запятой вообще сотня знаков?

Слушай, да мне насрать на сумасшедших ученых, ты не ответил на вопрос
Речь шла про факториал. Ты продолжаешь настаивать, что применение факториала не обосновано ни в каком случае?



Офлайн

#9 Янв. 27, 2017 10:07:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9894
Репутация: +  854  -
Профиль   Отправить e-mail  

Ошибка в коде

FishHook
Слушай, да мне насрать на сумасшедших ученых
Потому что ты никогда с ними не работал. Он тебе даёт какой-нибудь csv на 1000 полей и на миллион строк и везде такие числа. И он тебе говорит “давай, найди мне среднее” и что ты сделаешь питоном одним? Там думать надо. И там такое “я вот там закеширую что-то” не прокатит, потому что ты найдёшь что-то неправильное - и у него из-за этого космический корабль врежется куда-то там.

FishHook
Ты продолжаешь настаивать, что применение факториала не обосновано ни в каком случае?
А ты подумал, что я сказал, что факториал никогда не стоит вычислять? Нет, я сказал, что факториал никогда не стоит вычислять в таком классе задач. Потому что факториал в таких задачах - это как пузырьковой сортировкой сортировать какие-нибудь большие данные. Да, её написать просто и она сортирует всё нормально, но это не значит, что эта квадратная хрень вообще для этого подходит. Ты просто не дождёшься, когда она досортирует. Поэтому для этого применяют линейно-логарифмические сортировки, как бы тебе там не хотелось пузырёк свой накидать.
wiki. виды сложности

А ты говоришь “не, я вот факториал закеширую для своей задачи, где мне нужна низкая точность, и то я не знаю, где она получится низкой, а где размытой - и вот тогда я буду прав в этом разговоре”. Ты пойми, что речь идёт о целом классе задач, там нельзя выбирать “вот эти я буду факториалами делать, а вот эти - рекуррентными соотношениями”, тебе в любом случае придётся их делать по-нормальному.



Отредактировано py.user.next (Янв. 27, 2017 10:13:52)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version