在matlab中,我们定义了x0,我可以使用x0的范围吗?

在matlab中,我们定义了x0,我可以使用x0的范围吗?,matlab,Matlab,这样2.3>a>0和1.2>b>0 我可以延长迭代次数吗?x0可能被称为起点。那么在这种情况下,你觉得你的想法如何?不确定您想要实现什么,但如果您想要一个多起点功能,请封装您的opt问题,并使用不同的x0多次调用它(使用随机采样值或粗略离散化后的维度笛卡尔积)。如果您有兴趣了解原因fsolve()迭代一定次数(即使您没有明确告诉它,请参阅:优化中的迭代次数取决于解算器的*停止条件*本质上,fsolve()已达到函数求值、步长或优化公差之一。如果要更改迭代次数,最好的方法(不编辑公差本身)可能是“

这样
2.3>a>0
1.2>b>0


我可以延长迭代次数吗?

x0
可能被称为起点。那么在这种情况下,你觉得你的想法如何?不确定您想要实现什么,但如果您想要一个多起点功能,请封装您的opt问题,并使用不同的x0多次调用它(使用随机采样值或粗略离散化后的维度笛卡尔积)。如果您有兴趣了解原因
fsolve()
迭代一定次数(即使您没有明确告诉它,请参阅:
优化中的迭代次数取决于解算器的*停止条件*
本质上,
fsolve()
已达到函数求值、步长或优化公差之一。如果要更改迭代次数,最好的方法(不编辑公差本身)可能是“猜测”不同的起点,
x0
。关于迭代次数,您应该始终在优化后检查优化器的状态。观察一些状态,如
达到的最大迭代次数
总是需要不同的参数化(例如,增加上限)或重新制定问题。
myfun = @(x)[x(1)^2/4+x(2)^2/16-1;
cos(x(1)*5)/sqrt(x(2))-x(1)];
x0 = [a; b]; 
options=optimset('Display','iter'); [x,fval,exitflag]=fsolve(myfun,x0,options)