Введение
Класс методов, используемых в численном анализе и научных вычислениях для решения ОДУ/УЧП. Спектральные методы – это класс техник, применяемых в прикладной математике и научных вычислениях для численного решения определенных дифференциальных уравнений. Идея заключается в представлении решения дифференциального уравнения в виде суммы определенных "базисных функций" (например, ряда Фурье, представляющего собой сумму синусоид), а затем в выборе коэффициентов в этой сумме таким образом, чтобы максимально точно удовлетворить дифференциальное уравнение. Спектральные методы и методы конечных элементов тесно связаны и основаны на одних и тех же принципах; основное различие состоит в том, что спектральные методы используют базисные функции, которые, как правило, отличны от нуля во всей области определения, в то время как методы конечных элементов используют базисные функции, отличные от нуля только на небольших подмножествах (компактном носителе). Следовательно, спектральные методы связывают переменные глобально, а методы конечных элементов – локально. Отчасти по этой причине спектральные методы обладают превосходными свойствами сходимости, при этом так называемая "экспоненциальная сходимость" является максимально достижимой, когда решение гладкое. Однако известных трехмерных результатов захвата ударных волн в единой области с использованием спектральных методов не существует (ударные волны не являются гладкими). В сообществе методов конечных элементов метод, в котором степень элементов очень высока или возрастает с увеличением параметра сетки h, иногда называют методом спектральных элементов. Спектральные методы могут применяться для решения дифференциальных уравнений (УЧП, ОДУ, собственные значения и т.д.) и задач оптимизации. При применении спектральных методов к УЧП, зависящим от времени, решение обычно представляется в виде суммы базисных функций с коэффициентами, зависящими от времени; подстановка этого выражения в УЧП приводит к системе ОДУ относительно коэффициентов, которую можно решить любым численным методом для ОДУ. Задачи на собственные значения для ОДУ аналогичным образом преобразуются в матричные задачи на собственные значения. Спектральные методы были разработаны в серии работ Стивена Орсага, начиная с 1969 года, и включают, помимо прочего, методы рядов Фурье для задач с периодической геометрией, полиномиальные спектральные методы для задач с конечной и неограниченной геометрией, псевдоспектральные методы для сильно нелинейных задач и спектральные итерационные методы для быстрого решения стационарных задач. Реализация спектрального метода обычно осуществляется с использованием коллокации, подхода Галеркина или метода Тау. Для очень небольших задач спектральный метод уникален тем, что решения могут быть записаны символически, предоставляя практическую альтернативу рядовым решениям дифференциальных уравнений. Спектральные методы могут быть менее затратными в вычислительном отношении и проще в реализации, чем методы конечных элементов; они наиболее эффективны при стремлении к высокой точности в простых областях с гладкими решениями. Однако из-за их глобального характера матрицы, связанные с шагом вычислений, являются плотными, и вычислительная эффективность быстро снижается при большом количестве степеней свободы (за некоторыми исключениями, например, если матричные операции могут быть представлены в виде преобразований Фурье). Для больших задач и негладких решений методы конечных элементов, как правило, работают лучше благодаря разреженным матрицам и более эффективному моделированию разрывов и резких изгибов.
Spectral methods are a class of techniques used in applied mathematics and scientific computing to numerically solve certain differential equations. The idea is to write the solution of the differential equation as a sum of certain "basis functions" (for example, as a Fourier series which is a sum of sinusoids) and then to choose the coefficients in the sum in order to satisfy the differential equation as well as possible. Spectral methods and finite element methods are closely related and built on the same ideas; the main difference between them is that spectral methods use basis functions that are generally nonzero over the whole domain, while finite element methods use basis functions that are nonzero only on small subdomains (compact support). Consequently, spectral methods connect variables globally while finite elements do so locally. Partially for this reason, spectral methods have excellent error properties, with the so called "exponential convergence" being the fastest possible, when the solution is smooth. However, there are no known three dimensional single domain spectral shock capturing results (shock waves are not smooth). In the finite element community, a method where the degree of the elements is very high or increases as the grid parameter h increases is sometimes called a spectral element method. Spectral methods can be used to solve differential equations (PDEs, ODEs, eigenvalue, etc) and optimization problems. When applying spectral methods to time dependent PDEs, the solution is typically written as a sum of basis functions with time dependent coefficients; substituting this in the PDE yields a system of ODEs in the coefficients which can be solved using any numerical method for ODEs. Eigenvalue problems for ODEs are similarly converted to matrix eigenvalue problems
Spectral methods were developed in a long series of papers by Steven Orszag starting in 1969 including, but not limited to, Fourier series methods for periodic geometry problems, polynomial spectral methods for finite and unbounded geometry problems, pseudospectral methods for highly nonlinear problems, and spectral iteration methods for fast solution of steady state problems. The implementation of the spectral method is normally accomplished either with collocation or a Galerkin or a Tau approach For very small problems, the spectral method is unique in that solutions may be written out symbolically, yielding a practical alternative to series solutions for differential equations. Spectral methods can be computationally less expensive and easier to implement than finite element methods; they shine best when high accuracy is sought in simple domains with smooth solutions. However, because of their global nature, the matrices associated with step computation are dense and computational efficiency will quickly suffer when there are many degrees of freedom (with some exceptions, for example if matrix applications can be written as Fourier transforms). For larger problems and nonsmooth solutions, finite elements will generally work better due to sparse matrices and better modelling of discontinuities and sharp bends.
Алгоритм
Вычислите преобразование Фурье (bj,k) функции g.
Вычислите преобразование Фурье (aj,k) функции f по формуле.
Вычислите f, взяв обратное преобразование Фурье (aj,k). Поскольку нас интересует только конечное окно частот (размера n, например), это можно сделать с помощью алгоритма быстрого преобразования Фурье. Следовательно, в общем случае алгоритм выполняется за время O(n log n).
Compute the Fourier transform (aj,k) of f via the formula Compute f by taking an inverse Fourier transform of (aj,k). Since we're only interested in a finite window of frequencies (of size n, say) this can be done using a fast Fourier transform algorithm. Therefore, globally the algorithm runs in time O(n log n).
Связь с методом спектральных элементов
Можно показать, что если функция бесконечно дифференцируема, то численный алгоритм с использованием быстрых преобразований Фурье будет сходиться быстрее, чем любой полином от размера сетки h. То есть, для любого n > 0 существует такое δ, что ошибка меньше, чем δ для всех достаточно малых значений h. Мы говорим, что спектральный метод имеет порядок точности n для любого n > 0. Поскольку метод спектральных элементов является методом конечных элементов очень высокого порядка, существует сходство в свойствах сходимости. Однако, в то время как спектральный метод основан на спектральном разложении конкретной краевой задачи, метод конечных элементов не использует эту информацию и применим к произвольным эллиптическим краевым задачам.