Skip to content

Building dual numbers(Extra task)#11

Open
maxkway wants to merge 2 commits intoev-br:masterfrom
maxkway:dual_nb
Open

Building dual numbers(Extra task)#11
maxkway wants to merge 2 commits intoev-br:masterfrom
maxkway:dual_nb

Conversation

@maxkway
Copy link
Copy Markdown

@maxkway maxkway commented Apr 18, 2020

No description provided.

@ev-br
Copy link
Copy Markdown
Owner

ev-br commented Apr 18, 2020

Максим, как доп задание это 9 "отлично" @pshustov @Alexander-Lukin.

Если про python:

  • проверки на тип принято делать if isinstance(...), а не type(..) == ...

  • надо бы добавить iadd, imul и т.п.

  • dsin, dexp лучше называть просто sin, exp --- юзер сделает from dual import sin, exp

@ev-br
Copy link
Copy Markdown
Owner

ev-br commented Apr 18, 2020

Развитие темы:

  • для вопроса по выбору на экзамене было бы любопытно проверить, что производные аппроксимаций Паде дифференцируются правильно.

  • (per aspers ad astra) любопытно было бы сделать прототип dtype. Чтобы иметь numpy массивы с автодифференцированием. По мотивам https://github.com/numpy/numpy-dtypes/tree/master/npytypes/quaternion
    Это намного сложнее, масштаб это проект на семестр на пять з.е. или больше. Результат может оказаться полезным, и точно автор станет широко известен в около-numpy кругах

@maxkway
Copy link
Copy Markdown
Author

maxkway commented Apr 19, 2020

Спасибо!
Пару вопросов:
Для перегрузки a**b стоит сразу построить "dualdual" или достаточно "dual{usual dtype}"?
Вопрос в сложности операции (первое использует ln и exp, когда второе реализуется {usual dtype}'м **)

Сейчас совсем не реализованы методы 'округления' и преобразования к int, float.. они нужны/полезны?

@ev-br
Copy link
Copy Markdown
Owner

ev-br commented Apr 20, 2020

Это разные операции. Возведение в дуальную степень не знаю нужно ли где-то в приложениях. Округление... Тоже, пока нет нужды, и не нужно.

@maxkway
Copy link
Copy Markdown
Author

maxkway commented Apr 20, 2020

Спасибо, @ev-br !
Пару вопросов:

  1. Про Паде не очень понял..
  • беру голоморфную функцию(и) в точке z_0
  • получаю несколько(одной хватит) аппроксимаций [m/n] для неё
  • строю на графике 'настояющую' производную функции и рядом дуальную часть простой подстановки в полученную аппроксимацию (на другом subplot строю для этих же [m,n] аппроксимацию и 'настоящую' функцию - контроль качества аппроксимации а не нашего метода)
    Таков план?
  1. dtype по мотивам = смотреть в код на Си(довольно старый) и пытаться понять что происходит, или Вы подскажете где можно про это 'почитать'? (Наивное гугление ни к чему не привело, возможно из-за скудного английского:( )

@ev-br
Copy link
Copy Markdown
Owner

ev-br commented Apr 20, 2020

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

  2. Да. Есть улучшение (в issues репозитория ссылки), но там много наворотов, я не уверен, что будет понятнее.

В numpy идёт работа по существенной переработке, см https://numpy.org/neps/nep-0040-legacy-datatype-impl.html и nep 41, но это пока светлое будущее

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants