MATLAB中显式方程的求解

时间:2014-06-16 12:39:01

标签: matlab

我需要在整个流场上求解马赫数M的以下等式:

enter image description here

其中q_c定义为

enter image description here

γ是常数,是比热的比率(空气为1.4),p是压力,是网格尺寸的矩阵。因此,它是两边都有M的等式,需要明确解决。

是否有内置MATLAB函数或任何其他方法来解决整个流场中M的这个等式?

1 个答案:

答案 0 :(得分:1)

基本上,这是一个具有非整数幂的多项式:

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
end