arma-thesis

git clone https://git.igankevich.com/arma-thesis.git
Log | Files | Refs | LICENSE

commit fe6c0425669574638b7be15b4dcfd85e0d7aa235
parent d84a54c747ab02fb320f4c0eb75d19927b8cbf73
Author: Ivan Gankevich <igankevich@ya.ru>
Date:   Mon, 13 Nov 2017 16:37:36 +0300

Reorder more sections.

Diffstat:
arma-thesis-ru.org | 379+++++++++++++++++++++++++++++++++++++++----------------------------------------
arma-thesis.org | 437+++++++++++++++++++++++++++++++++++++++----------------------------------------
2 files changed, 403 insertions(+), 413 deletions(-)

diff --git a/arma-thesis-ru.org b/arma-thesis-ru.org @@ -633,6 +633,124 @@ Motion Programme (LAMP), программе для моделирования к при условии наличия соответствующих формул корректировки коэффициентов, что является целью дальнейших исследований. +**** Верификация интегральных характеристик взволнованной поверхности. +Для модели АР в +работах\nbsp{}cite:degtyarev2011modelling,degtyarev2013synoptic,boukhanovsky1997thesis +экспериментальным путем были верифицированы +- распределения различных характеристик волн (высоты волн, длины волн, длины + гребней, период волн, уклон волн, показатель трехмерности), +- дисперсионное соотношение, +- сохранение интегральных характеристик для случая смешанного волнения. +В данной работе верифицируются как модель АР, так и СС путем сравнения +распределений различных характеристик волн. + +В\nbsp{}cite:rozhkov1990stochastic авторы показывают, что некоторые +характеристики морских волн (перечисленные в табл.\nbsp{}[[tab-weibull-shape]]) +имеют распределение Вейбулла, а подъем взволнованной поверхности\nbsp{}--- +нормальное распределение. Для верификации генерируемых моделями АР и СС +реализаций используются спрямленные диаграммы (графики, в которых по оси \(OX\) +откладываются квантили функции распределения, вычисленные аналитически, а по оси +\(OY\)\nbsp{}--- вычисленные экспериментально). Если экспериментально полученное +распределение соответствует аналитическому, то график представляет собой прямую +линию. Концы графика могут отклоняться от прямой линии, поскольку не могут быть +надежно получены из реализации конечной длины. + +#+name: tab-weibull-shape +#+caption[Значение коэффициента формы распределения Вейбулла]: +#+caption: Значение коэффициента формы распределения Вейбулла для различных +#+caption: характеристик волн. +#+attr_latex: :booktabs t +| Характеристика | Коэффициент формы \(k\) | +|-------------------------+-------------------------| +| | <l> | +| Высота волны | 2 | +| Длина волны | 2,3 | +| Длина гребня волны | 2,3 | +| Период волны | 3 | +| Уклон волны | 2,5 | +| Показатель трехмерности | 2,5 | + +Верификация производится для стоячих и прогрессивных волн. Соответствующие АКФ и +спрямленные диаграммы распределений характеристик волн представлены на +рис.\nbsp{}[[acf-slices]],\nbsp{}[[standing-wave-distributions]],\nbsp{}[[propagating-wave-distributions]]. + +#+name: propagating-wave-distributions +#+begin_src R :file build/propagating-wave-qqplots-ru.pdf +source(file.path("R", "common.R")) +par(pty="s", mfrow=c(2, 2)) +arma.qqplot_grid( + file.path("build", "propagating_wave"), + c("elevation", "heights_y", "lengths_y", "periods"), + c("подъем", "высота по Y", "длина по Y", "период"), + xlab="x", + ylab="y" +) +#+end_src + +#+caption[Спрямленные диаграммы для прогрессивных волн]: +#+caption: Спрямленные диаграммы для прогрессивных волн. +#+name: propagating-wave-distributions +#+RESULTS: propagating-wave-distributions +[[file:build/propagating-wave-qqplots.pdf]] + +#+name: standing-wave-distributions +#+begin_src R :file build/standing-wave-qqplots-ru.pdf +source(file.path("R", "common.R")) +par(pty="s", mfrow=c(2, 2)) +arma.qqplot_grid( + file.path("build", "standing_wave"), + c("elevation", "heights_y", "lengths_y", "periods"), + c("подъем", "высота по Y", "длина по Y", "период"), + xlab="x", + ylab="y" +) +#+end_src + +#+caption[Спрямленные диаграммы для стоячих волн]: +#+caption: Спрямленные диаграммы для стоячих волн. +#+name: standing-wave-distributions +#+RESULTS: standing-wave-distributions +[[file:build/standing-wave-qqplots-ru.pdf]] + +#+name: acf-slices +#+header: :width 6 :height 9 +#+begin_src R :file build/acf-slices-ru.pdf +source(file.path("R", "common.R")) +propagating_acf <- read.csv(file.path("build", "propagating_wave", "acf.csv")) +standing_acf <- read.csv(file.path("build", "standing_wave", "acf.csv")) +par(mfrow=c(5, 2), mar=c(0,0,0,0)) +for (i in seq(0, 4)) { + arma.wavy_plot(standing_acf, i, zlim=c(-5,5)) + arma.wavy_plot(propagating_acf, i, zlim=c(-5,5)) +} +#+end_src + +#+caption[Временные срезы АКФ для стоячих и прогрессивных волн]: +#+caption: Временные срезы АКФ для стоячих (слева) и прогрессивных (справа) волн. +#+name: acf-slices +#+RESULTS: acf-slices +[[file:build/acf-slices-ru.pdf]] + +Хвосты распределений на рис.\nbsp{}[[propagating-wave-distributions]] отклоняются от +оригинального распределения для характеристик отдельных волн, поскольку каждую +волну необходимо извлечь из полученной взволнованной поверхности, чтобы измерить +ее длину, период и высоту. Алгоритм, который бы гарантировал безошибочное +извлечение всех волн, не известен, поскольку волны могут и часто накладываются +друг на друга. Правый хвост распределения Вейбулла отклоняется больше, поскольку +он представляет редко возникающие волны. + +Степень соответствия для стоячих волн (рис.\nbsp{}[[standing-wave-distributions]]) +ниже для высот и длин, примерно одинакова для подъема поверхности и выше для +периодов волн. Более низкая степень соответствия длин и высот может быть +результатом того, что распределения были получены эмпирически для морских волн, +которые, в основном, являются прогрессивными, и аналогичные распределения для +стоячих волн могут отличаться. Более высокая степень соответствия периодов волн +является следствием того, что периоды стоячих волн извлекаются более точно, +поскольку волн не перемещаются вне моделируемой области взволнованной +поверхности. Одинаковая степень соответствия для подъема поверхности получается +из-за того, что это характеристика поверхности (и соответствующего процесса АР +или СС), и она не зависит от типа волн. + ** Моделирование нелинейности морских волн Модель АРСС позволяет учесть асимметричность распределения волновых аппликат, т.е.\nbsp{}генерировать морские волны, закон распределения аппликат которых @@ -831,6 +949,74 @@ legend( #+RESULTS: fig-skew-normal-2 [[file:build/skew-normal-2.pdf]] +**** Верификация нелинейного безынерционного преобразования +Для того чтобы измерить влияние НБП на форму результирующей взволнованной +поверхности, было сгенерировано три реализации: +- реализация с Гауссовым распределением (без НБП), +- реализация с распределением на основе ряда Грама---Шарлье (РГШ), и +- реализация с асимметричным нормальным распределением (АНР). +Начальные состояния ГПСЧ были заданы одинаковыми для всех запусков программы, +чтобы модель АРСС выдавала одни и те же значения для каждой реализации. Было +проведено два эксперимента: для стоячих и прогрессивных волн с АКФ, заданными +формулами из раздела\nbsp{}[[#sec-wave-acfs]]. + +В то время как эксперимент показал, что применение НБП с распределением РГШ +увеличивает крутизну волн, то же самое нельзя сказать об асимметричном +нормальном распределении (рис.\nbsp{}[[fig-nit]]). Использование этого распределения +приводит к взволнованной поверхности, в которой аппликаты всегда больше или +равны нулю. Таким образом, асимметричное нормальное распределение не подходит +для НБП. НБП увеличивает высоту и крутизну как прогрессивных, так и стоячих +волн. Увеличение асимметрии или эксцесса РГШ приводит в увеличению как высоты, +так и крутизны волн. Ошибка аппроксимации АКФ (ур.\nbsp{}eqref:eq-nit-error) +принимает значения от 0,20 для РГШ до 0,70 для АНР (табл.\nbsp{}[[tab-nit-error]]). + +#+name: fig-nit +#+header: :width 7 :height 7 +#+begin_src R :file build/nit.pdf +source(file.path("R", "nonlinear.R")) +par(mfrow=c(2, 1), mar=c(4,4,4,0.5), family='serif') +args <- list( + graphs=c('Гауссово', 'РГШ', 'АНР'), + linetypes=c('solid', 'dashed', 'dotted') +) +args$title <- 'Прогрессивные волны' +arma.plot_nonlinear(file.path("build", "nit-propagating"), args) +args$title <- 'Стоячие волны' +arma.plot_nonlinear(file.path("build", "nit-standing"), args) +#+end_src + +#+name: fig-nit +#+caption[Срезы взволнованной поверхности с различными распределениями]: +#+caption: Срезы взволнованной поверхности с различными распределениями +#+caption: волновых аппликат (Гауссово, РГШ и асимметричное нормальное). +#+RESULTS: fig-nit +[[file:build/nit.pdf]] + +#+name: tab-nit-error +#+caption[Ошибки аппроксимации АКФ]: +#+caption: Ошибки аппроксимации АКФ (разность дисперсий) для различных +#+caption: распределений волновых аппликат. \(N\)\nbsp{}--- количество +#+caption: коэффициентов аппроксимации АКФ. +#+attr_latex: :booktabs t +| Тип волн | Распред. | \(\gamma_1\) | \(\gamma_2\) | \(\alpha\) | Ошибка | \(N\) | Высота волн | +|---------------+----------+--------------+--------------+------------+--------+-------+-------------| +| | | <r> | <r> | <r> | <r> | | <r> | +| прогрессивные | Гауссово | | | | | | 2,41 | +| прогрессивные | РГШ | 2,25 | 0,4 | | 0,20 | 2 | 2,75 | +| прогрессивные | АНР | | | 1 | 0,70 | 3 | 1,37 | +| стоячие | Гауссово | | | | | | 1,73 | +| стоячие | РГШ | 2,25 | 0,4 | | 0,26 | 2 | 1,96 | +| стоячие | АНР | | | 1 | 0,70 | 3 | 0,94 | + +Таким образом, единственный тестовый сценарий, который показал приемлемые +результаты\nbsp{}--- это реализации с распределением на основе РГШ для +прогрессивных и стоячих волн. АНР искажает взволнованную поверхность для обоих +типов волн. Реализации с распределением на основе РГШ характеризуются большой +ошибкой аппроксимации АКФ, что приводит к увеличению высоты волн. Причина +большой ошибки заключается в неточности аппроксимации РГШ, которая не сходится +для всевозможных функций\nbsp{}cite:wallace1958asymptotic. Несмотря на большую +ошибку, изменение высоты волн невелико (табл.\nbsp{}[[tab-nit-error]]). + ** Форма АКФ для разных волновых профилей :PROPERTIES: :CUSTOM_ID: sec-wave-acfs @@ -946,198 +1132,7 @@ legend( - Перенести максимум получившейся функции в начало координат, используя свойства тригонометрических функций для сдвига фазы. -** Верификация модели АРСС -:PROPERTIES: -:CUSTOM_ID: sec-verification -:END: - -Для модели АР в -работах\nbsp{}cite:degtyarev2011modelling,degtyarev2013synoptic,boukhanovsky1997thesis -экспериментальным путем были верифицированы -- распределения различных характеристик волн (высоты волн, длины волн, длины - гребней, период волн, уклон волн, показатель трехмерности), -- дисперсионное соотношение, -- сохранение интегральных характеристик для случая смешанного волнения. -В данной работе верифицируются как модель АР, так и СС путем сравнения -распределений различных характеристик волн. - -*** Верификация интегральных характеристик взволнованной поверхности -В\nbsp{}cite:rozhkov1990stochastic авторы показывают, что некоторые -характеристики морских волн (перечисленные в табл.\nbsp{}[[tab-weibull-shape]]) -имеют распределение Вейбулла, а подъем взволнованной поверхности\nbsp{}--- -нормальное распределение. Для верификации генерируемых моделями АР и СС -реализаций используются спрямленные диаграммы (графики, в которых по оси \(OX\) -откладываются квантили функции распределения, вычисленные аналитически, а по оси -\(OY\)\nbsp{}--- вычисленные экспериментально). Если экспериментально полученное -распределение соответствует аналитическому, то график представляет собой прямую -линию. Концы графика могут отклоняться от прямой линии, поскольку не могут быть -надежно получены из реализации конечной длины. - -#+name: tab-weibull-shape -#+caption[Значение коэффициента формы распределения Вейбулла]: -#+caption: Значение коэффициента формы распределения Вейбулла для различных -#+caption: характеристик волн. -#+attr_latex: :booktabs t -| Характеристика | Коэффициент формы \(k\) | -|-------------------------+-------------------------| -| | <l> | -| Высота волны | 2 | -| Длина волны | 2,3 | -| Длина гребня волны | 2,3 | -| Период волны | 3 | -| Уклон волны | 2,5 | -| Показатель трехмерности | 2,5 | - -Верификация производится для стоячих и прогрессивных волн. Соответствующие АКФ и -спрямленные диаграммы распределений характеристик волн представлены на -рис.\nbsp{}[[acf-slices]],\nbsp{}[[standing-wave-distributions]],\nbsp{}[[propagating-wave-distributions]]. - -#+name: propagating-wave-distributions -#+begin_src R :file build/propagating-wave-qqplots-ru.pdf -source(file.path("R", "common.R")) -par(pty="s", mfrow=c(2, 2)) -arma.qqplot_grid( - file.path("build", "propagating_wave"), - c("elevation", "heights_y", "lengths_y", "periods"), - c("подъем", "высота по Y", "длина по Y", "период"), - xlab="x", - ylab="y" -) -#+end_src - -#+caption[Спрямленные диаграммы для прогрессивных волн]: -#+caption: Спрямленные диаграммы для прогрессивных волн. -#+name: propagating-wave-distributions -#+RESULTS: propagating-wave-distributions -[[file:build/propagating-wave-qqplots.pdf]] - -#+name: standing-wave-distributions -#+begin_src R :file build/standing-wave-qqplots-ru.pdf -source(file.path("R", "common.R")) -par(pty="s", mfrow=c(2, 2)) -arma.qqplot_grid( - file.path("build", "standing_wave"), - c("elevation", "heights_y", "lengths_y", "periods"), - c("подъем", "высота по Y", "длина по Y", "период"), - xlab="x", - ylab="y" -) -#+end_src - -#+caption[Спрямленные диаграммы для стоячих волн]: -#+caption: Спрямленные диаграммы для стоячих волн. -#+name: standing-wave-distributions -#+RESULTS: standing-wave-distributions -[[file:build/standing-wave-qqplots-ru.pdf]] - -#+name: acf-slices -#+header: :width 6 :height 9 -#+begin_src R :file build/acf-slices-ru.pdf -source(file.path("R", "common.R")) -propagating_acf <- read.csv(file.path("build", "propagating_wave", "acf.csv")) -standing_acf <- read.csv(file.path("build", "standing_wave", "acf.csv")) -par(mfrow=c(5, 2), mar=c(0,0,0,0)) -for (i in seq(0, 4)) { - arma.wavy_plot(standing_acf, i, zlim=c(-5,5)) - arma.wavy_plot(propagating_acf, i, zlim=c(-5,5)) -} -#+end_src - -#+caption[Временные срезы АКФ для стоячих и прогрессивных волн]: -#+caption: Временные срезы АКФ для стоячих (слева) и прогрессивных (справа) волн. -#+name: acf-slices -#+RESULTS: acf-slices -[[file:build/acf-slices-ru.pdf]] - -Хвосты распределений на рис.\nbsp{}[[propagating-wave-distributions]] отклоняются от -оригинального распределения для характеристик отдельных волн, поскольку каждую -волну необходимо извлечь из полученной взволнованной поверхности, чтобы измерить -ее длину, период и высоту. Алгоритм, который бы гарантировал безошибочное -извлечение всех волн, не известен, поскольку волны могут и часто накладываются -друг на друга. Правый хвост распределения Вейбулла отклоняется больше, поскольку -он представляет редко возникающие волны. - -Степень соответствия для стоячих волн (рис.\nbsp{}[[standing-wave-distributions]]) -ниже для высот и длин, примерно одинакова для подъема поверхности и выше для -периодов волн. Более низкая степень соответствия длин и высот может быть -результатом того, что распределения были получены эмпирически для морских волн, -которые, в основном, являются прогрессивными, и аналогичные распределения для -стоячих волн могут отличаться. Более высокая степень соответствия периодов волн -является следствием того, что периоды стоячих волн извлекаются более точно, -поскольку волн не перемещаются вне моделируемой области взволнованной -поверхности. Одинаковая степень соответствия для подъема поверхности получается -из-за того, что это характеристика поверхности (и соответствующего процесса АР -или СС), и она не зависит от типа волн. - -*** Верификация нелинейного безынерционного преобразования -Для того чтобы измерить влияние НБП на форму результирующей взволнованной -поверхности, было сгенерировано три реализации: -- реализация с Гауссовым распределением (без НБП), -- реализация с распределением на основе ряда Грама---Шарлье (РГШ), и -- реализация с асимметричным нормальным распределением (АНР). -Начальные состояния ГПСЧ были заданы одинаковыми для всех запусков программы, -чтобы модель АРСС выдавала одни и те же значения для каждой реализации. Было -проведено два эксперимента: для стоячих и прогрессивных волн с АКФ, заданными -формулами из раздела\nbsp{}[[#sec-wave-acfs]]. - -В то время как эксперимент показал, что применение НБП с распределением РГШ -увеличивает крутизну волн, то же самое нельзя сказать об асимметричном -нормальном распределении (рис.\nbsp{}[[fig-nit]]). Использование этого распределения -приводит к взволнованной поверхности, в которой аппликаты всегда больше или -равны нулю. Таким образом, асимметричное нормальное распределение не подходит -для НБП. НБП увеличивает высоту и крутизну как прогрессивных, так и стоячих -волн. Увеличение асимметрии или эксцесса РГШ приводит в увеличению как высоты, -так и крутизны волн. Ошибка аппроксимации АКФ (ур.\nbsp{}eqref:eq-nit-error) -принимает значения от 0,20 для РГШ до 0,70 для АНР (табл.\nbsp{}[[tab-nit-error]]). - -#+name: fig-nit -#+header: :width 7 :height 7 -#+begin_src R :file build/nit.pdf -source(file.path("R", "nonlinear.R")) -par(mfrow=c(2, 1), mar=c(4,4,4,0.5), family='serif') -args <- list( - graphs=c('Гауссово', 'РГШ', 'АНР'), - linetypes=c('solid', 'dashed', 'dotted') -) -args$title <- 'Прогрессивные волны' -arma.plot_nonlinear(file.path("build", "nit-propagating"), args) -args$title <- 'Стоячие волны' -arma.plot_nonlinear(file.path("build", "nit-standing"), args) -#+end_src - -#+name: fig-nit -#+caption[Срезы взволнованной поверхности с различными распределениями]: -#+caption: Срезы взволнованной поверхности с различными распределениями -#+caption: волновых аппликат (Гауссово, РГШ и асимметричное нормальное). -#+RESULTS: fig-nit -[[file:build/nit.pdf]] - -#+name: tab-nit-error -#+caption[Ошибки аппроксимации АКФ]: -#+caption: Ошибки аппроксимации АКФ (разность дисперсий) для различных -#+caption: распределений волновых аппликат. \(N\)\nbsp{}--- количество -#+caption: коэффициентов аппроксимации АКФ. -#+attr_latex: :booktabs t -| Тип волн | Распред. | \(\gamma_1\) | \(\gamma_2\) | \(\alpha\) | Ошибка | \(N\) | Высота волн | -|---------------+----------+--------------+--------------+------------+--------+-------+-------------| -| | | <r> | <r> | <r> | <r> | | <r> | -| прогрессивные | Гауссово | | | | | | 2,41 | -| прогрессивные | РГШ | 2,25 | 0,4 | | 0,20 | 2 | 2,75 | -| прогрессивные | АНР | | | 1 | 0,70 | 3 | 1,37 | -| стоячие | Гауссово | | | | | | 1,73 | -| стоячие | РГШ | 2,25 | 0,4 | | 0,26 | 2 | 1,96 | -| стоячие | АНР | | | 1 | 0,70 | 3 | 0,94 | - -Таким образом, единственный тестовый сценарий, который показал приемлемые -результаты\nbsp{}--- это реализации с распределением на основе РГШ для -прогрессивных и стоячих волн. АНР искажает взволнованную поверхность для обоих -типов волн. Реализации с распределением на основе РГШ характеризуются большой -ошибкой аппроксимации АКФ, что приводит к увеличению высоты волн. Причина -большой ошибки заключается в неточности аппроксимации РГШ, которая не сходится -для всевозможных функций\nbsp{}cite:wallace1958asymptotic. Несмотря на большую -ошибку, изменение высоты волн невелико (табл.\nbsp{}[[tab-nit-error]]). - -*** Нефизическая природа модели +** Выводы В силу своей нефизической природы модель АРСС не включает в себя понятие морской волны; вместо этого она моделирует взволнованную поверхность как единое целое. Движения отдельных волн и их форма часто получаются грубыми, а точное количество diff --git a/arma-thesis.org b/arma-thesis.org @@ -28,7 +28,7 @@ more advanced models and methods for sea simulation software would increase number of its application scenarios and foster studying ship motion in extreme conditions in particular. -**** State-of-the-art. +**** State of the art. Autoregressive moving average (ARMA) model is a response to difficulties encountered by practitioners who used wave simulation models developed in the framework of linear wave theory. The problems they have encountered with @@ -598,6 +598,122 @@ propagating waves. Using mixed ARMA process for both types of waves might increase model precision, given that coefficient correction formulae for three dimensions become available, which is the objective of the future research. +**** Verification of wavy surface integral characteristics. +In\nbsp{}cite:degtyarev2011modelling,degtyarev2013synoptic,boukhanovsky1997thesis +AR model the following items are verified experimentally: +- probability distributions of different wave characteristics (wave heights, + lengths, crests, periods, slopes, three-dimensionality), +- dispersion relation, +- retention of integral characteristics for mixed wave sea state. +In this work both AR and MA model are verified by comparing probability +distributions of different wave characteristics. + +In\nbsp{}cite:rozhkov1990stochastic the authors show that several sea wave +characteristics (listed in table\nbsp{}[[tab-weibull-shape]]) have Weibull +distribution, and wavy surface elevation has Gaussian distribution. In order to +verify that distributions corresponding to generated realisation are correct, +quantile-quantile plots are used (plots where analytic quantile values are used +for \(OX\) axis and estimated quantile values for \(OY\) axis). If the estimated +distribution matches analytic then the graph has the form of the straight line. +Tails of the graph may diverge from the straight line, because they can not be +reliably estimated from the finite-size realisation. + +#+name: tab-weibull-shape +#+caption[Values of Weibull shape parameter]: +#+caption: Values of Weibull shape parameter for different wave characteristics. +#+attr_latex: :booktabs t +| Characteristic | Weibull shape (\(k\)) | +|----------------------+-----------------------| +| | <l> | +| Wave height | 2 | +| Wave length | 2.3 | +| Crest length | 2.3 | +| Wave period | 3 | +| Wave slope | 2.5 | +| Three-dimensionality | 2.5 | + +Verification was performed for standing and propagating waves. The corresponding +ACFs and quantile-quantile plots of wave characteristics distributions are shown +in +fig.\nbsp{}[[propagating-wave-distributions]],\nbsp{}[[standing-wave-distributions]],\nbsp{}[[acf-slices]]. + +#+name: propagating-wave-distributions +#+begin_src R :file build/propagating-wave-qqplots.pdf +source(file.path("R", "common.R")) +par(pty="s", mfrow=c(2, 2)) +arma.qqplot_grid( + file.path("build", "propagating_wave"), + c("elevation", "heights_y", "lengths_y", "periods"), + c("elevation", "height Y", "length Y", "period"), + xlab="x", + ylab="y" +) +#+end_src + +#+caption[Quantile-quantile plots for propagating waves]: +#+caption: Quantile-quantile plots for propagating waves. +#+name: propagating-wave-distributions +#+RESULTS: propagating-wave-distributions +[[file:build/propagating-wave-qqplots.pdf]] + +#+name: standing-wave-distributions +#+begin_src R :file build/standing-wave-qqplots.pdf +source(file.path("R", "common.R")) +par(pty="s", mfrow=c(2, 2)) +arma.qqplot_grid( + file.path("build", "standing_wave"), + c("elevation", "heights_y", "lengths_y", "periods"), + c("elevation", "height Y", "length Y", "period"), + xlab="x", + ylab="y" +) +#+end_src + +#+caption[Quantile-quantile plots for standing waves]: +#+caption: Quantile-quantile plots for standing waves. +#+name: standing-wave-distributions +#+RESULTS: standing-wave-distributions +[[file:build/standing-wave-qqplots.pdf]] + +#+name: acf-slices +#+header: :width 6 :height 9 +#+begin_src R :file build/acf-slices.pdf +source(file.path("R", "common.R")) +propagating_acf <- read.csv(file.path("build", "propagating_wave", "acf.csv")) +standing_acf <- read.csv(file.path("build", "standing_wave", "acf.csv")) +par(mfrow=c(5, 2), mar=c(0,0,0,0)) +for (i in seq(0, 4)) { + arma.wavy_plot(standing_acf, i, zlim=c(-5,5)) + arma.wavy_plot(propagating_acf, i, zlim=c(-5,5)) +} +#+end_src + +#+caption[ACF time slices for standing and propagating waves]: +#+caption: ACF time slices for standing (left column) and propagating waves +#+caption: (right column). +#+name: acf-slices +#+RESULTS: acf-slices +[[file:build/acf-slices.pdf]] + +Graph tails in fig.\nbsp{}[[propagating-wave-distributions]] deviate from original +distribution for individual wave characteristics, because every wave have to be +extracted from the resulting wavy surface to measure its length, period and +height. There is no algorithm that guarantees correct extraction of all waves, +because they may and often overlap each other. Weibull distribution right tail +represents infrequently occurring waves, so it deviates more than left tail. + +Correspondence rate for standing waves (fig.\nbsp{}[[standing-wave-distributions]]) +is lower for height and length, roughly the same for surface elevation and +higher for wave period distribution tails. Lower correspondence degree for +length and height may be attributed to the fact that Weibull distributions were +obtained empirically for sea waves which are typically propagating, and +distributions may be different for standings waves. Higher correspondence degree +for wave periods is attributed to the fact that wave periods of standing waves +are extracted more precisely as the waves do not move outside simulated wavy +surface region. The same correspondence degree for wave elevation is obtained, +because this is the characteristic of the wavy surface (and corresponding AR or +MA process) and is not affected by the type of waves. + ** Modelling non-linearity of sea waves ARMA model allows to model asymmetry of wave elevation distribution, i.e.\nbsp{}generate sea waves, distribution of \(z\)-coordinate of which has @@ -629,8 +745,8 @@ Since, distribution functions are monotonic, the simplest interval halving (bisection) numerical method is used to solve this equation. **** Preliminary ACF transformation. -In order to transform ACF \(\gamma_z\) of the process, it is expanded in series -of Hermite polynomials (Gram---Charlier series) +In order to transform ACF \(\gamma_z\) of the process, it is expanded as a +series of Hermite polynomials (Gram---Charlier series) \begin{equation*} \gamma_z \left( \vec u \right) = @@ -678,7 +794,7 @@ the same approximation in Gram---Charlier series does not lead to such errors. In\nbsp{}cite:huang1980experimental the authors experimentally show, that PDF of sea surface elevation is distinguished from normal distribution by non-nought kurtosis and skewness. In\nbsp{}cite:rozhkov1996theory the authors show, that -this type of PDF expands in Gram---Charlier series (GCS): +this type of PDF expands as a Gram---Charlier series (GCS): \begin{align} \label{eq-skew-normal-1} & F(z; \mu=0, \sigma=1, \gamma_1, \gamma_2) \approx @@ -787,6 +903,101 @@ legend( #+RESULTS: fig-skew-normal-2 [[file:build/skew-normal-2.pdf]] +**** Evaluation. +In order to measure the effect of NIT on the shape of the resulting wavy +surface, three realisations were generated: +- realisation with Gaussian distribution (without NIT), +- realisation with Gram---Charlier series (GCS) based distribution, and +- realisation with skew normal distribution. +The seed of PRNG was set to be the same for all programme executions to make ARMA +model produce the same values for each realisation. There we two experiments: +for standing and propagating waves with ACFs given by formulae from +section\nbsp{}[[#sec-wave-acfs]]. + +While the experiment showed that applying NIT with GCS-based distribution +increases wave steepness, the same is not true for skew normal distribution +(fig.\nbsp{}[[fig-nit]]). Using this distribution results in wavy surface each +\(z\)-coordinate of which is always greater or equal to nought. So, skew normal +distribution is unsuitable for NIT. NIT increases the wave height and steepness +of both standing and propagating waves. Increasing either skewness or kurtosis +of GCS-based distribution increases both wave height and steepness. The error of +ACF approximation (eq.\nbsp{}eqref:eq-nit-error) ranges from 0.20 for GCS-based +distribution to 0.70 for skew normal distribution (table\nbsp{}[[tab-nit-error]]). + +#+name: fig-nit +#+header: :width 7 :height 7 +#+begin_src R :file build/nit.pdf +source(file.path("R", "nonlinear.R")) +par(mfrow=c(2, 1), mar=c(4,4,4,0.5), family='serif') +args <- list( + graphs=c('Gaussian', 'Gram—Charlier', 'Skew normal'), + linetypes=c('solid', 'dashed', 'dotted') +) +args$title <- 'Propagating waves' +arma.plot_nonlinear(file.path("build", "nit-propagating"), args) +args$title <- 'Standing waves' +arma.plot_nonlinear(file.path("build", "nit-standing"), args) +#+end_src + +#+name: fig-nit +#+caption[Wavy surface slices with different distributions]: +#+caption: Wavy surface slices with different distributions +#+caption: of wave elevation (Gaussian, GCS-based and SN). +#+RESULTS: fig-nit +[[file:build/nit.pdf]] + +#+name: tab-nit-error +#+caption[Errors of ACF approximations]: +#+caption: Errors of ACF approximations (the difference of variances) for +#+caption: different wave elevation distributions. \(N\) is the number of +#+caption: coefficients of ACF approximation. +#+attr_latex: :booktabs t +| Wave type | Distribution | \(\gamma_1\) | \(\gamma_2\) | \(\alpha\) | Error | \(N\) | Wave height | +|-------------+--------------+--------------+--------------+------------+-------+-------+-------------| +| propagating | Gaussian | | | | | | 2.41 | +| propagating | GCS-based | 2.25 | 0.4 | | 0.20 | 2 | 2.75 | +| propagating | skew normal | | | 1 | 0.70 | 3 | 1.37 | +| standing | Gaussian | | | | | | 1.73 | +| standing | GCS-based | 2.25 | 0.4 | | 0.26 | 2 | 1.96 | +| standing | skew normal | | | 1 | 0.70 | 3 | 0.94 | + +To summarise, the only test case that showed acceptable results is realisation +with GCS-based distribution for both standing and propagating waves. Skew normal +distribution warps wavy surface for both types of waves. GCS-based realisations +have large error of ACF approximation, which results in increase of wave height. +The reason for the large error is that GCS approximations are not accurate as +they do not converge for all possible +functions\nbsp{}cite:wallace1958asymptotic. Despite the large error, the change +in wave height is small (table\nbsp{}[[tab-nit-error]]). + +***** Wave height :noexport: +:PROPERTIES: +:header-args:R: :results output org +:END: + +#+header: +#+begin_src R :results output org +source(file.path("R", "nonlinear.R")) +propagating <- arma.print_wave_height(file.path("build", "nit-propagating")) +standing <- arma.print_wave_height(file.path("build", "nit-standing")) +result <- data.frame( + h1=c(propagating$h1, standing$h1), + h2=c(propagating$h2, standing$h2), + h3=c(propagating$h3, standing$h3) +) +rownames(result) <- c('propagating', 'standing') +colnames(result) <- c('none', 'gcs', 'sn') +ascii(result) +#+end_src + +#+RESULTS: +#+BEGIN_SRC org +| | none | gcs | sn | +|-------------+------+------+------| +| propagating | 2.41 | 2.75 | 1.37 | +| standing | 1.73 | 1.96 | 0.94 | +#+END_SRC + ** The shape of ACF for different types of waves :PROPERTIES: :CUSTOM_ID: sec-wave-acfs @@ -899,223 +1110,7 @@ steps. - Move maximum value of the resulting function to the origin by using trigonometric identities to shift the phase. -** ARMA model verification -:PROPERTIES: -:CUSTOM_ID: sec-verification -:END: - -In\nbsp{}cite:degtyarev2011modelling,degtyarev2013synoptic,boukhanovsky1997thesis -AR model the following items are verified experimentally: -- probability distributions of different wave characteristics (wave heights, - lengths, crests, periods, slopes, three-dimensionality), -- dispersion relation, -- retention of integral characteristics for mixed wave sea state. -In this work both AR and MA model are verified by comparing probability -distributions of different wave characteristics. - -*** Verification of wavy surface integral characteristics -In\nbsp{}cite:rozhkov1990stochastic the authors show that several sea wave -characteristics (listed in table\nbsp{}[[tab-weibull-shape]]) have Weibull -distribution, and wavy surface elevation has Gaussian distribution. In order to -verify that distributions corresponding to generated realisation are correct, -quantile-quantile plots are used (plots where analytic quantile values are used -for \(OX\) axis and estimated quantile values for \(OY\) axis). If the estimated -distribution matches analytic then the graph has the form of the straight line. -Tails of the graph may diverge from the straight line, because they can not be -reliably estimated from the finite-size realisation. - -#+name: tab-weibull-shape -#+caption[Values of Weibull shape parameter]: -#+caption: Values of Weibull shape parameter for different wave characteristics. -#+attr_latex: :booktabs t -| Characteristic | Weibull shape (\(k\)) | -|----------------------+-----------------------| -| | <l> | -| Wave height | 2 | -| Wave length | 2.3 | -| Crest length | 2.3 | -| Wave period | 3 | -| Wave slope | 2.5 | -| Three-dimensionality | 2.5 | - -Verification was performed for standing and propagating waves. The corresponding -ACFs and quantile-quantile plots of wave characteristics distributions are shown -in -fig.\nbsp{}[[propagating-wave-distributions]],\nbsp{}[[standing-wave-distributions]],\nbsp{}[[acf-slices]]. - -#+name: propagating-wave-distributions -#+begin_src R :file build/propagating-wave-qqplots.pdf -source(file.path("R", "common.R")) -par(pty="s", mfrow=c(2, 2)) -arma.qqplot_grid( - file.path("build", "propagating_wave"), - c("elevation", "heights_y", "lengths_y", "periods"), - c("elevation", "height Y", "length Y", "period"), - xlab="x", - ylab="y" -) -#+end_src - -#+caption[Quantile-quantile plots for propagating waves]: -#+caption: Quantile-quantile plots for propagating waves. -#+name: propagating-wave-distributions -#+RESULTS: propagating-wave-distributions -[[file:build/propagating-wave-qqplots.pdf]] - -#+name: standing-wave-distributions -#+begin_src R :file build/standing-wave-qqplots.pdf -source(file.path("R", "common.R")) -par(pty="s", mfrow=c(2, 2)) -arma.qqplot_grid( - file.path("build", "standing_wave"), - c("elevation", "heights_y", "lengths_y", "periods"), - c("elevation", "height Y", "length Y", "period"), - xlab="x", - ylab="y" -) -#+end_src - -#+caption[Quantile-quantile plots for standing waves]: -#+caption: Quantile-quantile plots for standing waves. -#+name: standing-wave-distributions -#+RESULTS: standing-wave-distributions -[[file:build/standing-wave-qqplots.pdf]] - -#+name: acf-slices -#+header: :width 6 :height 9 -#+begin_src R :file build/acf-slices.pdf -source(file.path("R", "common.R")) -propagating_acf <- read.csv(file.path("build", "propagating_wave", "acf.csv")) -standing_acf <- read.csv(file.path("build", "standing_wave", "acf.csv")) -par(mfrow=c(5, 2), mar=c(0,0,0,0)) -for (i in seq(0, 4)) { - arma.wavy_plot(standing_acf, i, zlim=c(-5,5)) - arma.wavy_plot(propagating_acf, i, zlim=c(-5,5)) -} -#+end_src - -#+caption[ACF time slices for standing and propagating waves]: -#+caption: ACF time slices for standing (left column) and propagating waves -#+caption: (right column). -#+name: acf-slices -#+RESULTS: acf-slices -[[file:build/acf-slices.pdf]] - -Graph tails in fig.\nbsp{}[[propagating-wave-distributions]] deviate from original -distribution for individual wave characteristics, because every wave have to be -extracted from the resulting wavy surface to measure its length, period and -height. There is no algorithm that guarantees correct extraction of all waves, -because they may and often overlap each other. Weibull distribution right tail -represents infrequently occurring waves, so it deviates more than left tail. - -Correspondence rate for standing waves (fig.\nbsp{}[[standing-wave-distributions]]) -is lower for height and length, roughly the same for surface elevation and -higher for wave period distribution tails. Lower correspondence degree for -length and height may be attributed to the fact that Weibull distributions were -obtained empirically for sea waves which are typically propagating, and -distributions may be different for standings waves. Higher correspondence degree -for wave periods is attributed to the fact that wave periods of standing waves -are extracted more precisely as the waves do not move outside simulated wavy -surface region. The same correspondence degree for wave elevation is obtained, -because this is the characteristic of the wavy surface (and corresponding AR or -MA process) and is not affected by the type of waves. - -*** Verification of nonlinear inertialess transformation -In order to measure the effect of NIT on the shape of the resulting wavy -surface, three realisations were generated: -- realisation with Gaussian distribution (without NIT), -- realisation with Gram---Charlier series (GCS) based distribution, and -- realisation with skew normal distribution. -The seed of PRNG was set to be the same for all programme executions to make ARMA -model produce the same values for each realisation. There we two experiments: -for standing and propagating waves with ACFs given by formulae from -section\nbsp{}[[#sec-wave-acfs]]. - -While the experiment showed that applying NIT with GCS-based distribution -increases wave steepness, the same is not true for skew normal distribution -(fig.\nbsp{}[[fig-nit]]). Using this distribution results in wavy surface each -\(z\)-coordinate of which is always greater or equal to nought. So, skew normal -distribution is unsuitable for NIT. NIT increases the wave height and steepness -of both standing and propagating waves. Increasing either skewness or kurtosis -of GCS-based distribution increases both wave height and steepness. The error of -ACF approximation (eq.\nbsp{}eqref:eq-nit-error) ranges from 0.20 for GCS-based -distribution to 0.70 for skew normal distribution (table\nbsp{}[[tab-nit-error]]). - -#+name: fig-nit -#+header: :width 7 :height 7 -#+begin_src R :file build/nit.pdf -source(file.path("R", "nonlinear.R")) -par(mfrow=c(2, 1), mar=c(4,4,4,0.5), family='serif') -args <- list( - graphs=c('Gaussian', 'Gram—Charlier', 'Skew normal'), - linetypes=c('solid', 'dashed', 'dotted') -) -args$title <- 'Propagating waves' -arma.plot_nonlinear(file.path("build", "nit-propagating"), args) -args$title <- 'Standing waves' -arma.plot_nonlinear(file.path("build", "nit-standing"), args) -#+end_src - -#+name: fig-nit -#+caption[Wavy surface slices with different distributions]: -#+caption: Wavy surface slices with different distributions -#+caption: of wave elevation (Gaussian, GCS-based and SN). -#+RESULTS: fig-nit -[[file:build/nit.pdf]] - -#+name: tab-nit-error -#+caption[Errors of ACF approximations]: -#+caption: Errors of ACF approximations (the difference of variances) for -#+caption: different wave elevation distributions. \(N\) is the number of -#+caption: coefficients of ACF approximation. -#+attr_latex: :booktabs t -| Wave type | Distribution | \(\gamma_1\) | \(\gamma_2\) | \(\alpha\) | Error | \(N\) | Wave height | -|-------------+--------------+--------------+--------------+------------+-------+-------+-------------| -| propagating | Gaussian | | | | | | 2.41 | -| propagating | GCS-based | 2.25 | 0.4 | | 0.20 | 2 | 2.75 | -| propagating | skew normal | | | 1 | 0.70 | 3 | 1.37 | -| standing | Gaussian | | | | | | 1.73 | -| standing | GCS-based | 2.25 | 0.4 | | 0.26 | 2 | 1.96 | -| standing | skew normal | | | 1 | 0.70 | 3 | 0.94 | - -To summarise, the only test case that showed acceptable results is realisation -with GCS-based distribution for both standing and propagating waves. Skew normal -distribution warps wavy surface for both types of waves. GCS-based realisations -have large error of ACF approximation, which results in increase of wave height. -The reason for the large error is that GCS approximations are not accurate as -they do not converge for all possible -functions\nbsp{}cite:wallace1958asymptotic. Despite the large error, the change -in wave height is small (table\nbsp{}[[tab-nit-error]]). - -**** Wave height :noexport: -:PROPERTIES: -:header-args:R: :results output org -:END: - -#+header: -#+begin_src R :results output org -source(file.path("R", "nonlinear.R")) -propagating <- arma.print_wave_height(file.path("build", "nit-propagating")) -standing <- arma.print_wave_height(file.path("build", "nit-standing")) -result <- data.frame( - h1=c(propagating$h1, standing$h1), - h2=c(propagating$h2, standing$h2), - h3=c(propagating$h3, standing$h3) -) -rownames(result) <- c('propagating', 'standing') -colnames(result) <- c('none', 'gcs', 'sn') -ascii(result) -#+end_src - -#+RESULTS: -#+BEGIN_SRC org -| | none | gcs | sn | -|-------------+------+------+------| -| propagating | 2.41 | 2.75 | 1.37 | -| standing | 1.73 | 1.96 | 0.94 | -#+END_SRC - -*** Non-physical nature of ARMA model +** Summary ARMA model, owing to its non-physical nature, does not have the notion of sea wave; it simulates wavy surface as a whole instead. Motions of individual waves and their shape are often rough, and the total number of waves can not be