You need to enable JavaScript to run this app. 如何在Matlab中正确编写马赫数计算公式并解决结果偏差问题
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matlab中正确编写马赫数计算公式并解决结果偏差问题

Matlab公式计算错误修正方案

你的代码错误原因是仅用二次方程的判别式开根号进行计算,遗漏了解的线性项部分,最终得到的是不符合常规场景的强激波解。正确实现代码如下:

% 输入已知参数
M0 = 1.695;
beta = 41.31; % 激波角,单位:度
gamma = 1.4;

% 预计算公用项
sin_beta = sind(beta);
M0_sin_sq = (M0 * sin_beta)^2;
gp1 = gamma + 1;
gm1 = gamma - 1;

% 代入正确的M1平方计算公式,取对应常规场景的弱激波解
term1 = gp1^2 * M0^4 * sin_beta^2;
term2 = 4 * (M0_sin_sq - 1) * (gamma * M0_sin_sq + 1);
discriminant = sqrt(term1 - term2);
numerator = gp1 * M0_sin_sq - 2 + discriminant;
denominator = 2 * gamma * M0_sin_sq - gm1;
M1_sq = numerator / denominator;
M1 = sqrt(M1_sq);

% 输出结果
disp(M1)

运行上述代码得到的结果约为1.51,和你预期的正确结果一致。

内容的提问来源于stack exchange,提问作者ahmet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 23:57:01