Stokes五阶波超越方程求解


一、问题描述

Stokes五阶波是一种描述水波传播的数学模型,可以用来研究海洋、湖泊等自由表面的波浪特性。该模型考虑了表面张力和重力对波浪的影响,是一种比较精确的波浪模型。在使用Stokes波计算波浪水质点的波面、速度、加速度、波压等参数时,需要首先求解关于波长 L L L与系数 λ \lambda λ的超越方程组:
{ λ = π H / { L [ 1 + λ 2 B 33 + λ 4 ( B 35 + B 55 ) ] } L = L 0 t a n h ( k d ) [ 1 + λ 2 C 1 + λ 4 C 2 ] \begin{cases} \begin{align} \lambda=\pi H/\{L[1+\lambda^2B_{33}+\lambda^4(B_{35}+B_{55})]\} \\ L = L_0tanh(kd)[1+\lambda^2C_1+\lambda^4C_2] \end{align} \end{cases} {λ=πH/{L[1+λ2B33+λ4(B35+B55)]}L=L0tanh(kd)[1+λ2C1+λ4C2]


二、算法描述&步骤

对超越方程组采用迭代方式进行,步骤如下:
【1】给定初值 λ 0 , L 0 \lambda_0,L_0 λ0,L0,计算波数 k k k,系数 C 1 , C 2 C_1,C_2 C1,C2,带入 ( 2 ) (2) (2)求解 L 1 L_1 L1,将 L 1 L_1 L1带入 ( 1 ) (1) (1)求解 λ 1 \lambda_1 λ1
【2】将 λ 1 , L 1 \lambda_1,L_1 λ1,L1作为新的 λ 0 , L 0 \lambda_0,L_0 λ0,L0进行迭代,直到 ( λ 1 − λ 0 ) 2 + ( L 1 − L 0 ) 2 < t o l \sqrt {(\lambda_1-\lambda_0)^2+(L_1-L_0)^2<tol} (λ1λ0)2+(L1L0)2<tol


三、Matlab代码

% 部分代码展示------------------------
% 非线性波浪理论-Stokes波超越方程参数求解
clear,clc,close all
% lambda1和L1为最终求解参数
%% 参数
lambda0 = 0.2;
H = 4.91;
T = 11;
d = 16;
g = 9.8;
L0 = g*T^2/(2*pi);
k = 2*pi/L0;
c1 = cosh(k*d);
s = sinh(k*d);

完整代码传送门

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小O的算法实验室

谢谢大佬的肯定!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值