Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
 
2 / 2 / 0
Регистрация: 08.01.2016
Сообщений: 336
1

Начальные усл-я для волнового ур-я в частотной области (ур-я Гельмгольца)

11.10.2019, 18:36. Просмотров 362. Ответов 3

Добрый день,

Есть волновое уравнение во временной области:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{v(x,z)}\frac{{d}^{2}u}{{dt}^{2}}-\frac{{d}^{2}u}{{dx}^{2}}-\frac{{d}^{2}u}{{dz}^{2}}=g(x,z,t)
где: v(x,z) - скорость, g(x,z,t) - функция определяющая источник колебаний.

В частотной области волновое уравнение переходит в уравнение Гельмгольца:
https://www.cyberforum.ru/cgi-bin/latex.cgi?-\frac{{d}^{2}u}{{dx}^{2}}-\frac{{d}^{2}u}{{dz}^{2}}-\frac{{w}^{2}}{{v(x,z)}^{2}}u=g(x,z,w)

Для решения волнового уравнения во временной области необходимо задать начальные условия и граничные. Начальные условия определяются значением функции u(x,z,t=0) и u(x,z,t=1), то есть распределением искомой функции в начальный и последующий моменты времени. Волновое уравнение во временной области методом конечных разностей я умею решать, при этом в моих задачах функция g(x,z,t) равна нулю.
Пересмотрел много литературы, но так и не нашел ответа на вопрос, как задать "начальные" условия для волнового уравнения в частотной области (уравнения Гельмгольца)? Про граничные условия пишут чаще
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2019, 18:36
Ответы с готовыми решениями:

Размытие изображения в частотной области
Как написать процедуру размытия изображения в частотной области с помощью гауссовской функции...

Фильтрация сигнала в частотной области
Здравствуйте! Не могу понять для себя один вопрос, буду очень благодарна, если поможете...

Построение синусоиды в частотной области с периодом T Гц
Здравствуйте. Никак не могу сообразить какими образом можно задать синусоиду в частотной области,...

Представление и фильтрация сигнала в частотной области
Здравствуйте, дали задание на практику: представить сигнал во временной и частотных областях и...

3
319 / 127 / 39
Регистрация: 20.01.2019
Сообщений: 439
11.10.2019, 23:17 2
А при чем тут матлаб?
0
2 / 2 / 0
Регистрация: 08.01.2016
Сообщений: 336
11.10.2019, 23:33  [ТС] 3
Здесь есть люди которые знают ответ на мой вопрос и мне это нужно для реализации в матлаб.
Не развивайте дискуссию на эту тему.
0
2 / 2 / 0
Регистрация: 08.01.2016
Сообщений: 336
13.10.2019, 16:40  [ТС] 4
Я вроде бы разобрался с тем, как задать сигнал источника.
Однако не могу понять, как перевести решение из частотной области во временную, если я хочу получить волновые поля в моменты времени t0:dt:t1? Вероятно надо использовать теорему о запаздывании прежде чем выполнять обратное Фурье преобразование??
Вот мое решение для одномерного случая. Не получается вернуться во временную область...
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
% задаю расчетную область
x0 = 0;
t0 = 0;
 
x1 = 100;
t1 = 100;
 
dx = 1;
dt = 1;
 
x = x0:dx:x1;
t = t0:dt:t1;
 
nx = length(x);
nt = length(t);
 
% скорость
v = ones(nx,1);
 
% сигнал источника и его комплексный спектр
a = 5;
b = 20;
 
sig = (1-((t-b)/a).^2).*exp(-((t-b)/a).^2/2);
fft_sig = fft(sig);
 
fn = 1/(2*dt);
frq = linspace(-fn,fn,nt);
 
% составляю общую систему уравнений для всех частот
xx = repmat(x',nt,1);
tt = repelem(t',nx,1);
ffrq = repelem(frq',nx);
vv = repmat(v,nt,1);
 
% А - лапласиан уноженный на значения частоты и скорости
e = ones(nx*nt,1);
A = spdiags([e-(ffrq./vv).^2 -2*e-(ffrq./vv).^2 e-(ffrq./vv).^2],-1:1,nx*nt,nx*nt);
f = zeros(nx*nt,1);
f(1:nx:end) = fft_sig'; % в точке x = x(1) выставляю значения комплексного спектра источника
 
u = A\f;
U = reshape(u,nx,nt);
uu = ifft(U,[],2,'symmetric'); % выполняю переход во временную область
 
figure;
plot(x,uu(1,:));
ax = gca;
YLim = ax.YLim;
ax.YLim = [-max(abs(YLim)) max(abs(YLim))];
ax.Title.String = ['Time: ' num2str(t(2))];
for it = 1:nt
    ax.Children.YData = uu(it,:);
    ax.Title.String = ['Time, s: ' num2str(t(it))];
    pause(0.05);
end
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2019, 16:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как представить сигнал в частотной области
Данные отведения сигнала нужно представить в частотной области. Как это сделать?

Метод Фурье для волнового уравнения
U_{tt}=64U_{xx} U(x,0) = 0, U_t(x,0) = 8\pi sin{\pi x}, U(0,t) = 0, U(6,t) = 0 a = 8, l =6 ...

Задача Коши для волнового уравнения
Вот такая задачка, помоги пожалуйста.

конечно разностная схема для волнового урав
ребят нужно найти конечно разностную схему для волнового уравнения(рисунок) определить условие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.