循环 fsolve Scilab

Loop over fsolve Scilab

举个愚蠢的例子,假设我想求解以下非线性方程 x^2 - F(c)=0, 其中 c 可以取 0 和 1 之间的不同值,F 是标准正态 CDF。如果我想求解 c 的一个特定值,我会使用以下代码:

c = linspace(0,1,100);
L = length(c);
x0 = c;

function Y = eq(x)
Y = x^2 - cdfnor("PQ",x-c(1),0,1)
endfunction

xres = fsolve(x0(1),eq);

我的问题是:有没有办法求解每个 c 值(不仅是 c(1))的方程?具体来说,如果我可以在 fsolve 上使用循环?如果可以,怎么做?

只需像这样修改您的脚本:

c = linspace(0,1,100);
L = length(c);
x0 = c;

function Y = eq(x)
Y = x^2 - cdfnor("PQ",x-c,zeros(c),ones(c))
endfunction

xres = fsolve(x0,eq);