Страница 1 из 2

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

Добавлено: Вс окт 30, 2005 5:15 pm
ventura
Помогите,пожалуйста, загнать эту "махину" в процедуру.Входящими параметрами здесь
по ходу мысли будут функция для разложения 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);

Добавлено: Пн ноя 07, 2005 7:24 pm
Antic
С любопытством отмечаю, что никто не хочет помочь Вам в "решении" Вашей задачки. Не понимаете почему? Да потому, что Вы хотите, чтобы простенькую работу, требующую от силы нескольких минут, кто то сделал за Вас.

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

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

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

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

Добавлено: Пн ноя 28, 2005 3:36 pm
martingal
ventura спрашивал:"А есть ли стандартная процедура для Фурье ?" Я нигде не нашел. Подскажите,если кто знает.

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

Добавлено: Пн ноя 28, 2005 7:16 pm
Break
Преобразование-то есть, разложения - нет! :)

Добавлено: Пн ноя 28, 2005 9:55 pm
martingal
ventura говорил о разложении в ряд Фурье. Не знаете ли вы о существовании операций в maple, вычисляющих коэффициенты разложения функции в ряд Фурье?

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

Добавлено: Пн ноя 28, 2005 9:56 pm
martingal
ventura говорил о разложении в ряд Фурье. Не знаете ли вы о существовании операций в maple, вычисляющих коэффициенты разложения функции в ряд Фурье?

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

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

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

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

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

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

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

Добавлено: Ср ноя 30, 2005 12:02 pm
Break
Если у вас есть пример
то можно сформировать ряд Фурье с подстановкой полученных из FFT данных для вычисленных амплитуд и фаз гармоник

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

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

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