首页 > 解决方案 > 在 FOR 循环中找不到函数

问题描述

version在 RStudio 中的输出,

platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          4                           
minor          0.4                         
year           2021                        
month          02                          
day            15                          
svn rev        80002                       
language       R                           
version.string R version 4.0.4 (2021-02-15)
nickname       Lost Library Book

我的 MRE:

N = 32;
dx = 1.0;
m = 1;
for (i in 1:5) {
 a[i] = 0.5*(1+sin(2*pi*m*i*dx/N));
}
plot(a);
par(new=TRUE)
halfN = N/2;
delk = 2*pi/N;
dt = 0.5;

for (m in 1:80) {
  ahat = fft(a);
  for (i in 1:N) {
    if ((i-1) <= halfN) k <-
        (i-1)*delk
    if ((i-1) > halfN) k <-
        (i-1-N)*delk
    k2 = k*k;
    ahat[i] = ahat[i]/(1 + k2*dt); 
}
  a = fft(fft(a), inverse = TRUE)/length(a);
}
plot(a)

我得到一个空的输出图,如下所示:

my_fft_plot_a

我期望得到在第一个 for 循环中初始化的正弦波 &fft()以求解扩散方程。

我的代码哪里出错了

标签: rplotfft

解决方案


推荐阅读