fsolve
非線形方程式系を数値的に解くために、matlab で使用しようとしています。これが私のプログラムのテストサンプルで、k1
パラメータR
とx0
開始点です。
function y=f(k1, R, x0)
pair=fsolve(@system,x0);
y=pair(1);
function r=system(v)
int1=@(x) exp(k1*x);
int2=@(x) exp(k1*x^2)/(x^4);
r(1)=exp(v(1))*quadl(int1,0,v(1));
r(2)=exp(k1*v(2))*quadl(int2,v(1),20)*k1*R;
end
end
奇妙なことに、このプログラムを実行すると、matlab はin.^
の代わりに使用するように指示し続けます。その関数ハンドルの は、 で使用されるときにスカラーであると想定されているため、混乱しています。この場合、なぜ使用する必要があるのですか?^
int2=@(x) exp(k1*x^2)/(x^4)
x
quadl
.^
また、オンライン ドキュメントで提供されている多くの例も、こちら.^
のように明らかにスカラーの力を利用しているにもかかわらず、 を使用していることがわかります。誰でも理由を説明できますか?
前もって感謝します。