我如何创建一个名为SolveSimult的函数,可以4输入参数和输出一个答案?

9的观点(30天)
我困在这个任务的一部分
" 1) U 年代 e 测量风速在z = 10米和z = 40米 推导出粗糙长度
( z 0 ) 和一个 ssume大气中性条件。 请注意,t 他粗糙长度
描述逆风局域网 dscape因此 一个常数 为每个实例的时间
表达式 使用 方程1 可德 veloped 如下所示 风的速度
这两个 z = 10米, z = 40米 。由e xpress 荷兰国际集团(ing) (
0
) ln (z) - - - - - - ln ( z 0 ) 年代 olv 荷兰国际集团(ing) 2
表达式 同时 , 粗糙度长度时间序列中的每个实例
在18个小时 可以计算。
( = 10 ) =
( 日志 ( 10 ) 日志 ( 0 ) )
( 1 ]
( = 40 ) =
( 日志 ( 4 0 ) 日志 ( 0 ) )
[2]
一个。 创建一个 函数 SolveSimult 4输入 参数 (u和z
一个 t 10米和40米)和输出 表面粗糙度长度 ( z 0 ) 。把这个
函数的m文件。
b。 U se SolveSimult 计算表面粗糙度长度 ( z 0 )在每个实例
时间序列在18岁 个小时。
这是我迄今为止这部分相关代码。
“% 2步:定义匿名函数
z0 = 0.05;
k = 0.4; %卡门常数
frict_v = @ (u) (u * k) / (log10 (10 / z0));
stab_corr = @ (u, f) (log10 (60 / z0)) - (k * u) / (f);
%步骤3:计算摩擦速度
u10 =数据(:,2);
frict_v_all = frict_v (u10);
%第四步:打印8点摩擦速度
frict_v_at8u10 = frict_v (u10 (49));
流( 的摩擦速度(米/秒)8点% .3f。\ n” ,frict_v_at8u10);
u10 =数据(:,2);
u40 =数据(:,3);
z10 = 10;
z40 = 40;
k = 0.4; %卡门常数”
我需要你看一下xlsx附加文件我和帮助我如何解决这部分。我不确定如何求解z0通过创建一个名为SolveSimult的函数。这个函数应该能够为z0同时解决两个方程。我认为答案应该是0.321,如果有帮助。我会很感激你的帮助。

答案(1)

8月”class=
8月 2023年4月18日9时55分左右
你好,
创建一个名为SolveSimult的函数可以解决方程[1]和[2]同时输出表面粗糙度长度(z0),您可以使用MATLAB的内置函数 fsolve
下面是一个示例实现 SolveSimult 功能:
函数z0 = SolveSimult (u10、u40 z10 z40 k)
frict_v = @ (u) (u * k) / (log10 (z10 / z0));
f10 = frict_v (u10);
f40 = frict_v (u40);
stab_corr = @ (u, f) (log10 (z40 / z0))——(k * u) / (f);
g = @ (z0) [u10 - f10 * (log10 (z10 / z0) + stab_corr (u10 f10));
u40 - f40 * (log10 (z40 / z0) + stab_corr (u40 f40)));
z0 = fsolve (0.1 g);
结束
使用 SolveSimult 函数来计算表面粗糙度长度(z0)在时间序列中的每个实例18个小时,你可以叫它在一个循环中:
z0_all = 0(大小(数据,1),1);% preallocate数组
i = 1:尺寸(数据,1)
u10 =数据(我,2);
u40 =数据(我,3);
z0_all (i) = SolveSimult (u10、u40 z10 z40 k);
结束
注意,在上面的示例中,我们假设卡门常数的值 k 和粗糙长度的初始值 z0 是已知的。您可能需要调整这些值根据您的特定问题。

类别

找到更多的在数学荷兰国际集团(ing)ydF4y2Ba帮助中心文件交换

s manbetx 845


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的