Đối với trình bảo vệ màn hình ngớ ngẩn mà tôi đang cố gắng phát triển, tôi muốn tạo ngẫu nhiên một mảng vectơ 2D không có phân kỳ, sau đó sử dụng nó để tạo ra một biểu đồ tích chập tích phân đường. Tôi đã nghe 1 mà là một cách để làm điều này là để tạo ra tiếng ồn ngẫu nhiên, và sau đó dự án ra các thành phần solenoit phân hủy Helmholtz-Hodge của nó. Để làm điều đó, tôi đã thử sử dụng các lý do sau:
Một chức năng có Helmholtz-Hodge phân hủy 2 f = h + ∇ φ + J ∇ ψ nơi J = ( 0 - 1 1 0 ) và nơi φ , ψ là hàm vô hướng. Bây giờ, giả sử thành phần điều hòa h biến mất.
Trong không gian Fourier, điều này trở thành và chúng ta có thể xác định một nhà điều hành dự solenoit trên không gian Fourier như P = I - k ⊗ k
arr = RandomReal[{-1, 1}, {2, 21, 21}];
fArr = Fourier /@ arr;
k[k1_, k2_] := Mod[{k1 - 1, k2 - 1}, 21, -10]/21;
If
dat = Transpose[
Table[If[k1 == 1 && k2 == 1, fArr[[;; , k1, k2]],
fArr[[;; , k1, k2]] -
k[k1, k2] (k[k1, k2].fArr[[;; , k1, k2]])/(k[k1, k2].k[k1,
k2])], {k1, 21}, {k2, 21}], {2, 3, 1}];
Sau đó, tôi iFFT hai thành phần:
projArr = InverseFourier /@ dat;
(1): Chất lỏng ổn định , Jos Stam.
(2): Phát hiện tính năng trong các trường vectơ bằng cách sử dụng phân tách Helmholtz-Hodge , Alexander Wiebel, trang 12.
(3): Phân rã nhiều trường vectơ rời rạc , Yiying Tong.