我正在尝试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
. 为什么我必须.^
在这种情况下使用?
此外,我看到在线文档中提供的许多示例也使用了.^
,即使它们显然具有标量的功能,如这里。谁能帮忙解释一下为什么?
提前致谢。