nonline_eq_sirp.m

来自「matlab 7.x书上光盘所带的原代码,以及图象处理滤波的程序」· M 代码 · 共 38 行

M
38
字号
function s=nonline_eq_sirp(z,nu)
%%%%本程序用于产生一个非线性方程:gammainc(nu*s*s,nu)=1-erf(z)%%%
for m=1:length(z)
    max_s=10;
    min_s=0;
    isexistmax=0;
    F_z=0.5+0.5*erf(z(m)/sqrt(2));
        if (F_z>0.9999999)
            s(m)=inf;
        else
            for k=1:10000
                if (gammainc(nu*max_s*max_s,nu)<F_z)
                min_s=max_s;
                max_s=max_s*2;
                else
                isexistmax=1;break;
                end
            end
            if(isexistmax==1)
                s(m)=0.5*(max_s-min_s);
                s0=0;
                for k=1:100000
                    if (gammainc(nu*s(m)*s(m),nu)>F_z)
                        max_s=s(m);
                    else
                        min_s=s(m);
                    end
                    s0=s(m);
                    s(m)=0.5*(max_s+min_s);
                    if (abs(s(m)-s0)<0.0001)
                    break;
                    end
               end
           end
       end
   end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?