Разложение Фурье

Форум пользователей пакета Maple

Модератор: Admin

ventura
Сообщения: 22
Зарегистрирован: Пн янв 24, 2005 7:08 pm

Разложение Фурье

Сообщение ventura » Вс окт 30, 2005 5:15 pm

Помогите,пожалуйста, загнать эту "махину" в процедуру.Входящими параметрами здесь
по ходу мысли будут функция для разложения y,границы интервала L1 и L2,кол-во членов разложения n и масштаб А.А есть ли стандартная процедура для Фурье ?
print(`Разложение функции f(x)`=y);
> print(`в интервале:`);[L1,L2];
> print(`Количество членов разложения`= n);
> L:=(L2-L1)/2:
> a0:=1/L*int(y,x=L1..L2):
> for k from 1 by 1 to n do
> a[k]:=1/L*int(y*cos(Pi*k*x/L),x=L1..L2);
> b[k]:=1/L*int(y*sin(Pi*k*x/L),x=L1..L2);
> od:
> k:='k':
> y1:=a0/2+sum('a[k]*cos(Pi*k*x/L)+b[k]*sin(Pi*k*x/L)','k'=1..n):
> print(`Разложение имеет вид:`);
> print(`f(x)`=y1);
> print(`Построим графики функции и ее разложения в ряд Фурье:`);
> plot({y,y1},x=-A..A);

Antic
Сообщения: 245
Зарегистрирован: Ср сен 07, 2005 5:07 pm

Сообщение Antic » Пн ноя 07, 2005 7:24 pm

С любопытством отмечаю, что никто не хочет помочь Вам в "решении" Вашей задачки. Не понимаете почему? Да потому, что Вы хотите, чтобы простенькую работу, требующую от силы нескольких минут, кто то сделал за Вас.

Учитель
Сообщения: 68
Зарегистрирован: Вс июн 19, 2005 2:53 pm

Сообщение Учитель » Пн ноя 07, 2005 8:59 pm

Уважаемый, Antic прав. Прежде чем, делать из вашей болванки процедуру, ее следовало бы облагородить. Вероятно, вы используете Maple 5, ибо позже вместо do пишут end do.

Заголовок цикла также стоит писать оптимально для данного случая - for k to n.

k:='k' не нужно, ибо ниже вы уже определили его как 'k'. Да и группа функций print ну уж очень корява.

Что до создания приличных процедур, то советую обратиться к литературе. Все же задания следует делать самому, предварительно хоть по минимуму поднаторев в теории.

martingal
Сообщения: 32
Зарегистрирован: Чт ноя 24, 2005 10:55 am

Сообщение martingal » Пн ноя 28, 2005 3:36 pm

ventura спрашивал:"А есть ли стандартная процедура для Фурье ?" Я нигде не нашел. Подскажите,если кто знает.

Antic
Сообщения: 245
Зарегистрирован: Ср сен 07, 2005 5:07 pm

Сообщение Antic » Пн ноя 28, 2005 6:46 pm

Начиная с Maple 8/9 все есть. Для быстрого преобразования Фурье есть функции FFT и iFFT (прямое и обратное преобразования), для аналитических зависимостей в пакете расширения inttrans (интегральные преобразования) есть функции fourier и invfourier. Можно почитать и найти примеры в книге Дьяконова В. П. "Maple 9 в математике, физике и образовании" (М. Солон-Пресс, 2004). Кстати недавно вышла книга моих коллег из физ-матем. факультета СГПУ Кристалинского Р.Е. и Кристаллинского В.Р. "Преобразования Фурье и Лапласса в системах компьютерной математики" (М. Горячая линия. Телеком). Она посвящена всецелло интегральным преобразованиям Фурье и Лапласса.

Break
Сообщения: 159
Зарегистрирован: Вс окт 09, 2005 2:10 am
Откуда: Петербург

Сообщение Break » Пн ноя 28, 2005 7:16 pm

Преобразование-то есть, разложения - нет! :)

martingal
Сообщения: 32
Зарегистрирован: Чт ноя 24, 2005 10:55 am

Сообщение martingal » Пн ноя 28, 2005 9:55 pm

ventura говорил о разложении в ряд Фурье. Не знаете ли вы о существовании операций в maple, вычисляющих коэффициенты разложения функции в ряд Фурье?

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

martingal
Сообщения: 32
Зарегистрирован: Чт ноя 24, 2005 10:55 am

Сообщение martingal » Пн ноя 28, 2005 9:56 pm

ventura говорил о разложении в ряд Фурье. Не знаете ли вы о существовании операций в maple, вычисляющих коэффициенты разложения функции в ряд Фурье?

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

Break
Сообщения: 159
Зарегистрирован: Вс окт 09, 2005 2:10 am
Откуда: Петербург

Сообщение Break » Пн ноя 28, 2005 10:04 pm

Превый вопрос: нет.
Второй: Мапловский Тэйлор считается до любого, наперед заданного (n-го) знака. Прочитайте внимательно справку.

Если новичок в Матлаб, читайте: http://www.exponenta.ru/educat/free/matlab/gs.pdf

Break
Сообщения: 159
Зарегистрирован: Вс окт 09, 2005 2:10 am
Откуда: Петербург

Сообщение Break » Пн ноя 28, 2005 10:11 pm

Еще есть функция coeftayl - она-то и считает n-й коэффициент разложения.
Но обычно все пишут taylor(...); convert(%,series); и дальше работают с полиномом.

Antic
Сообщения: 245
Зарегистрирован: Ср сен 07, 2005 5:07 pm

Сообщение Antic » Ср ноя 30, 2005 8:14 am

Г-да, Вы уже начинаете путать божий дар с яичницей. При чем тут Тейлор, речь ведь идет о разложении в ряд Фурье. Я вроде ясно написал, что в новых Maple есть функция FFT - быстрого прямого преобразования Фурье. Она то и дает переход от временной зависимости к частотной, т.е. частотный спектр. Неудобство лишь в том, что число отсчетов желательно иметь кратным 2 в степени N и, конечно, правильно интерпретировать результаты FFT. Подробности см. в книге Дьяконова В. П. "Maple 9 в математике, физике и образовании" (М.: Солон-Пресс, 2004). Привожу также оттуда картинку, дающее представление о разложении в ряд Фурье с разным числом членов функции f(t) - пример на пилообразную зависимость, но можно задать и иную. Более того в этом простецком примере выполняется и обратное преобразование и все делается в режиме анимации - так что можно отчетливо наблюдать развитие эффекта Гиббса. Что касается разложения в ряд Тейлора, то смотрится даже очень символьно - от численного разложения как раз и отличается членом с погрешностью, который, кстати приходится отсеивать для построения графиков (см. упомянутую книгу - там все это есть с примерами).
Изображение

Break
Сообщения: 159
Зарегистрирован: Вс окт 09, 2005 2:10 am
Откуда: Петербург

Сообщение Break » Ср ноя 30, 2005 10:10 am

Пример наглядный.
Только в новых версиях есть как FFT, так и обратное FFT. Только я пока не понимаю, как численную фунуцию FFT можно использовать для символьного разложения в ряд Фурье. Дайте, пожалуйста, пример.

Antic
Сообщения: 245
Зарегистрирован: Ср сен 07, 2005 5:07 pm

Сообщение Antic » Ср ноя 30, 2005 11:45 am

Break, pardon, но я не говорил о символьных представлениях FFT и iFFT - это функции, "евстевственно" численные. Хотя если кому то уж очень хочется, то можно сформировать ряд Фурье с подстановкой полученных из FFT данных для вычисленных амплитуд и фаз гармоник. Кстати, в приведенном примере БПФ и не используется!

Break
Сообщения: 159
Зарегистрирован: Вс окт 09, 2005 2:10 am
Откуда: Петербург

Сообщение Break » Ср ноя 30, 2005 12:02 pm

Если у вас есть пример
то можно сформировать ряд Фурье с подстановкой полученных из FFT данных для вычисленных амплитуд и фаз гармоник

, то приведите. :)
Тогда можно будет составить хорошую функцию, по которой удобно рисовать графики и не только, и не выписывать каждый раз интегралы от синусов...
Просто, быстрое преобразование - вещь, скорее, радиофизическая и на чистмате ее не проходят.
Если примера нет, то буду сам изучать вопрос. Как говорится, "по определению". :)

PS Поправлюсь: на чистмате, конечно, проходят, но акцента на это не делают. Несравнимо больше времени классическому Фурье уделяют.

Antic
Сообщения: 245
Зарегистрирован: Ср сен 07, 2005 5:07 pm

Сообщение Antic » Ср ноя 30, 2005 8:23 pm

Break, не перенимайте манеру известной Вам группы. Я совершенно не нуждаюсь в рекомендациях что мне надо делать и что не надо. Задача учителя подсказать ученикам что делать, а вовсе не делать это за них. Сегодня привез из Москвы корректуру по очередной энциклопедии по MATLAB (том. 1, больше 1100 стр.) и буду заниматься ей. Поверьте, это важнее, чем отвечать на вопросы, подобные обсуждаемому тут. Так что, смогу участвовать в форуме лишь по пустякам. Если Вас интересует затронутая проблема (разложение функции в ряд Фурье средствами Maple), то буду лишь рад, если вы найдете там что то новое или хотя бы изящное. С пожеланием успехов!