All streams
Search
Write a publication
Pull to refresh
0
max7 @max7read⁠-⁠only

User

Send message
Как эмпирический метод это конечно круто.

Но к комплексным числам это не имеет никакого отношения, даже по аналоги. Чисел (действительных) являющихся решением уравнения x^2 + 1 = 0 не существует, мы вводим «другие» числа, в которых оно имеет решение. Действительные и мнимые числа нигде не порождают противоречий, поэтому их можно использовать «совместно». Уравнение x^2 = 0 имеет решение в действительных числах x=0, при введении «дуальных» чисел оно имеет решение и в них x=d.

В коде, по-моему, (в том числе и для C++) видно, что нигде не применяется условие d^=0. «Просто» эмулируются символьные вычисления, т.е. не производится «умножение/сложение» на d, до этапа вычисление второго коэффициента в разложении Тейлора, т.е. первой производной, остальные просто игнорируются. И похоже у функциональных языков здесь явное преимущество именно в предварительной оптимизации, и как мне кажется, в данном случае, отсечение/сокращение лишних вычислений (шаблоны в C++ в таком применении выглядят как костыль).

Аналогичным методом можно ввести (n+1)-арные (раз эти дуальные) числа, т.е. не вычислять d, d^2, d^3,...,d^n, и соответственно получить n-ю производную (учитывая конечно дополнительные множители в коэффициентах).

n-арное число в данном рассмотрении по сути и есть набор коэффициентов разложения Тейлора. Т. е. коэффициентов при d^0, d^1, (1/2)*d^2, (1/6)*d^3,...,(1/(n!)*d^n.

Для константы a это будет: (a,0,0,...,0).
Для x: (x,1,0,0,...,0).
Для x^2: (x^2,2*x,2,0,0,...).
Для sin(x): (sin(x), cos(x),-sin(x),...).
И т.д.
По-моему, так и работают системы символьных вычислений.

В данном посте рассматриваются два первых коэффициента. И применяется «рекурсивное» вычисление n-ой производной. (А введение d^2=0, по-моему бред сивой кобылы).

В общем, спасибо за наводку, поразмышляю над этим на досуге.
Дополнение к предыдущему моему комменту.

n-арное число в данном рассмотрении по сути и есть набор коэффициентов разложения Тейлора. Т. е. коэффициентов при d^0, d^1, (1/2)*d^2, (1/6)*d^3,...,(1/(n!)*d^n.

Для константы a это будет: (a,0,0,...,0).
Для x: (x,1,0,0,...,0).
Для x^2: (x^2,2*x,2,0,0,...).
Для sin(x): (sin(x), cos(x),-sin(x),...).
И т.д.
По-моему, так и работают системы символьных вычислений.

В данном посте рассматриваются два первых коэффициента. И применяется «рекурсивное» вычисление n-ой производной. (А введение d^2=0, по-моему бред сивой кобылы).

В общем, спасибо за наводку, поразмышляю над этим на досуге.
Как эмпирический метод это конечно круто.

Но к комплексным числам это не имеет никакого отношения, даже по аналоги. Чисел (действительных) являющихся решением уравнения x^2 + 1 = 0 не существует, мы вводим «другие» числа, в которых оно имеет решение. Действительные и мнимые числа нигде не порождают противоречий, поэтому их можно использовать «совместно». Уравнение x^2 = 0 имеет решение в действительных числах x=0, при введении «дуальных» чисел оно имеет решение и в них x=d.

В коде, по-моему, (в том числе и для C++) видно, что нигде не применяется условие d^=0. «Просто» эмулируются символьные вычисления, т.е. не производится «умножение/сложение» на d, до этапа вычисление второго коэффициента в разложении Тейлора, т.е. первой производной, остальные просто игнорируются. И похоже у функциональных языков здесь явное преимущество именно в предварительной оптимизации, и как мне кажется, в данном случае, отсечение/сокрашение лишних вычислений (шаблоны в C++ в таком применении выглядят как костыль).

Аналогичным методом можно ввести (n+1)-арные (раз эти дуальные) числа, т.е. не вычислять d, d^2, d^3,...,d^n, и соответственно получить n-ю производную (учитывая конечно дополнительные множители в коэффициентах).

Ну всё, дошёл. Можно ещё один глупый вопрос? Сколько будет d^3?
Начал разбираться. Насколько хорошо здесь работает оптимизация?
До этого я вроде дошёл. «Похоже мне кажется». Просто с непривычке, трудно проследить ход вычислений. Распишите, пожалуйста, подробней.

О, не знал, что может быть такое практическое применение, но d^2 = 0 меня сильно смущает.

P.S.: Мне кажется или дейстивительно здесь ошибка:

df(a: double): double
{
f(Dual(a,1)).Imaginary
}
Если «правильно» заточить карандаш и немного набить руку, можно писать в стиле «Comic Sans». По-этому, видимо, он и нравится детям — очень похож на рукописный.
Вот бы мне такой комп… на дачу.
Мало того, что есть стопитсот (около 7 наиболее распространённых, да еще и разные версии) браузеров (тоже кстати RIA), так еще будет и стопитсот всяких «и другие». Ух…
Там для ultimate указан «Subsystem for UNIX-based Applications». Кто-нибуть знает, что это значит?
Жуть какая!!! Нормальные люди (и технологии) идут к «единому вебу», а вы меня тут пугаете. Бррр…
Кто же их распускает то, интересно?
С реальными примерами применения.
Интересно, сейчас потестю.
«Это упрощение конструкции позволило ему расширить свой ареал, т.е. с точки зрения отбора — стать более успешным», нет, не «ему» и не «позволило». Получился новый вид червей в новой среде обитания (довольно ограниченной по численности), и из-за общей деградации потерявший способность жить в среде предка (т.е. в двух разных средах). С изначальным видом ничего особого видимо не произошло и он продолжил эволюцию, и его численность наверняка в разы больше. В этом фишка расширения ареала среды обитания в данном случае.
По подробней, пожалуйста.
Иногда интерес или любопытство преодолевают любые преграды.
Я, извиняюсь, но с обезьянкой забавно вышло. Так и вижу нашего манагера висящем на патчкорде.
Для облегчения этого процесса, полагаю, можно приминить фиьтрами сообщений по различным критериям, например: за период, по автору, по авторам входящим в определённую группу, по количеству ответов, сообщения в ответах на которые присутствую определённые авторы, по тегам, если ввести голосование (+1\-1\0), сообщения с наибольшим весом, банально наличию заданных слов, и т.д.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity