2014 dxdy logo

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

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




 
 Обратное преобразование Фурье в Matlab
Сообщение05.11.2019, 20:11 
Всем привет! Мне нужно построить график функции от обратного преобразования Фурье. Matlab я вижу впервые, поэтому простите, если совсем бред пишу. Я погуглила и пыталась что-то написать (прикрепила скриншот и код ниже навела). Но код не работает при а равно и меньше 1. Но и при а больше 1 мне график тоже что-то не очень нравится. Что я сделала не так?

Помоги пожалуйста, а то я уже не знаю что мне делать…

(а=3/2 на скриншоте графика).

Изображение

Изображение

clear all;
close all;
x=0:0.001:1;
t=0:0.001:1;
a=input('Введіть а');
z = exp(-t.*(sqrt(a+x.^2))./(log(sqrt(a+x.^2))));
y=ifft2(z);
plot3(t,x,y); grid
set(gca,'FontName','Arial Cyr','FontSize',16),
title('Графік ФРЗК при γ=1');
xlabel('t');
ylabel('x');
zlabel('G(t,x)')

 
 
 
 Re: Обратное преобразование Фурье в Matlab
Сообщение06.11.2019, 01:27 
incognito220797

ifft2 это обратное двумерное преобразование Фурье, z должно являться матрицей, а у вас это вектор

 
 
 
 Re: Обратное преобразование Фурье в Matlab
Сообщение06.11.2019, 20:00 
ozheredov в сообщении #1424274 писал(а):
incognito220797

ifft2 это обратное двумерное преобразование Фурье, z должно являться матрицей, а у вас это вектор


Если использовать ifft, то ничего не меняется.

 
 
 
 Re: Обратное преобразование Фурье в Matlab
Сообщение07.11.2019, 00:24 
Аватара пользователя
incognito220797 в сообщении #1424404 писал(а):
Если использовать ifft, то ничего не меняется.

А что такое преобразование Фурье Вы знаете? И чем прямое отличается от обратного? А одномерное от двумерного?
И что обозначают все эти "буквы", которые Вы используете, как видно, в разных местах с разным смыслом?

 
 
 
 Re: Обратное преобразование Фурье в Matlab
Сообщение11.11.2019, 22:14 
Аватара пользователя
incognito220797 в сообщении #1424231 писал(а):
x=0:0.001:1;
t=0:0.001:1;
a=input('Введіть а');
z = exp(-t.*(sqrt(a+x.^2))./(log(sqrt(a+x.^2))));

Полагаю, что, как минимум, одна из проблем тут. Вы, видимо, ожидаете, что при такой записи получите некую поверхность $z(x,t)$? А вот фигушки. Из-за того, что векторы $x$ и $t$ у вас одинаковой длины, вам удалось что-то вычислить, и ошибку не выдало, но это, думаю, не то, что вы ожидаете. Для правильного задания $[x,t]$ вам понадобится функция meshgrid(). Отображение результата, соответственно, тоже не plot3() и, видимо, не в лоб.

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group