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