我需要求解马赫数M在整个流场上的下列方程:

其中q_c被定义为

γ是一个常数,是比热的比值(空气为1.4),p是压力,是网格尺寸的矩阵。因此,它是一个两边都有M的方程,需要显式地求解。
在整个流场中,是否有内置的MATLAB函数或其他方法来求解M方程?
发布于 2014-06-16 13:09:29
基本上,这是一个具有非整数幂的多项式:
a := 0.88...
N := M²
⇒ N - a²·(½γN + 1)·(1 - 1/7N)²⁵ = 0没有解析解。所以,你得用数字表示。最简单(但不是最快)的方法:
gamma = 1.4;
a = 0.88128485;
M = zeros(size(p));
for ii = 1:numel(M)
M(ii) = fzero(@(M)...
M - a*sqrt( (gamma/2*p(ii)*M.^2 + 1).*(1-1./7./M.^2).^(2.5) ), ...
2.5); %# initial value; insert your roughly expected value here
endhttps://stackoverflow.com/questions/24243965
复制相似问题