Поредицата “Coding Druid” е моите практически бележки за хоризонтално програмиране, всяка част около тема като математика, физика, електроника, графики, звук и т.н., реализирани на няколко езика за програмиране .
Coding Druid
Част: Математика
Глава: Серии на Фурие
Секция : Javascript (React)
В предишната глава визуализирах тригонометрична функция (синус и единична окръжност) отделно с помощта на MaxMSP, JavaScript (React), Python и Unity:
В тази глава прилагам визуализация на кривата на серия на Фурие.
И започнете с JavaScriptи React този раздел.
Математика
В математиката редът на Фурие е периодична функция, съставена от хармонично свързани синусоиди, комбинирани от претеглено сумиране.
(wikipedia)
И може да се обясни като изразяване на повтаряща се крива като сбор от синусовидни криви. (Поредица Purrier (Мяу) и каране на изображенията да говорят)
Да предположим например, че има квадратна вълна и тя може да се интерпретира като синусоида:
Колкото повече синусоиди имате, толкова по-прецизна квадратна вълна ще получите.
Сега нека видим процеса на разширение в ред на Фурие.
Да приемем, че f(x) е периодична функция за x∈[−π,π], а периодът му е 2π.
Изразът му:
Тогава неговият тригонометричен израз на ред на Фурие (синус-косинус форма) е като:
И коефициентите на Фурие на f(x)f(x) са:
Накрая:
Съдържанието по-горе се отнася до „Математика за напреднали — (Инженерен курс) (том 2)“
И оригиналната дефиниция на реда на Фурие и подробното обяснение ще бъдат намерени в wikipedia.
Суми от дължините на първите четири термина и показващи как се прави приближението до квадратна вълна:
Визуализация
Сега да визуализирам тази крива с помощта на React.
Разклоних и преработих синусова визуализация:
Ще направя нещата на Фурие въз основа на горния код.
Наистина е ясно да пишете код с помощта на React:
Все още използвайте React Hooks, за да актуализирате данните, обвързани с компоненти:
Крайна крива:
С увеличаването на n, т.е. синусоидата се увеличава, синтезираната форма на вълната се доближава до квадратната вълна.
Препратки
- Уикипедия
- Поредица Purrier (Мяу) и каране на образите да говорят
- „CodingChallenges от Daniel Shiffman“
- Математика за напреднали — (Инженерен курс) 高等数学(工科类)
- Сигнали и системи (второ издание) от Алън В. Опенхайм
- [干货] — -Fourier级数
- 傅立叶变换如何理解?美颜和变声都是什么原理?李永乐老师告诉你
Разговорите са евтини. Покажете ми кода!
Тази демонстрация и поредицата Coding Druid са с отворен код тук:
https://github.com/avantcontra/coding-druid
Можете да намерите повече ресурси в моя сайт floatbug.com.
Можете да ми купите кафе в моя Patreon. Там има много статии, корекции, изходен код и някои разширено съдържание само за поддръжници.
Също така можете да получите някои безплатнипачове/кодове в Gumroad shop.
Вашето насърчение е моята движеща енергия!
Наздраве ~
Контра
- Уебсайт: floatbug.com
- Github: avantcontra
- Фейсбук: avantcontra
- Twitter: avantcontra
- Instagram: avantcontra
- Gumroad (купете кодове директно): avantcontra
- Patreon (разширено съдържание): avantcontra