2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Нахождение производной и первообразной с помощью БПФ
Сообщение11.05.2023, 19:38 


11/05/23
18
Выдали задание: посчитать производную и первообразную функции с помощью быстрого преобразования Фурье в Matlab. Функция:
$f(x)=1-|x|, |x| \leqslant 1; f(x)=0, |x| >1$ .

Вот код программы:

clear
dt = 0.0001; %дискретизация по времени
t = -1:dt:(1-dt);
size_t = length(t);
syms func x
func = 1 - abs(x);
funcdif = diff(func, x); %символьное дифференцирование

func_val = double(subs(func, {'x'}, [t]));
funcdif_val = double(subs(funcdif, {'x'}, [t])); % подставляем значения в исходную функцию и производную

func_fft = fft(func_val); %БПФ
frq = [0:size_t/2 -size_t/2+1:-dt]/dt/size_t; % частоты (если не ошибаюсь, то fft именно в таком порядке хранит результаты %преобразования).
funcdif_fft = ifft(1i*frq.*func_fft); % вычисляем производную

plot(t, funcdif_val);
hold on
plot(t, funcdif_fft);

funcanti = int(func, x);
funcanti_val = double(subs(funcanti, {'x'}, [t])); % символьно проинтегрировали и подставили значения
funcanti_fft = ifft(func_fft/(1i)./frq); % воспользовались свойствами преобразования Фурье для нахождения первообразной
plot(t, funcanti_val);
hold on
plot(t, funcanti_fft);

Но, по факту, ничего не выходит. График производной, вычисленной с помощью БПФ, полностью совпадает по форме с реальным графиком, но отличается по амплитуде. А вот с интегралом все совсем плохо. Может кто-нибудь подсказать, как правильно в чем здесь ошибка?

Изображение
Изображение

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group