主要内容

遵循方程解决方案作为一个参数变化

这个例子展示了如何解决一个方程反复作为参数变化从以前的解决方案角度开始后续的解决方案。万博 尤文图斯通常,这个过程会导致有效的解决方案。万博 尤文图斯然而,一个解决方案有时会消失,需要从一个新的角度或观点。

参数化的标量方程

参数化方程来解决

sinh ( x ) - - - - - - 3 x = 一个 ,

在哪里 一个 是一个数值参数,从0到5。在 一个 = 0 这个方程的一个解 x = 0 。当 一个 不是太大的绝对值,方程有三个解决方案。万博 尤文图斯可视化方程,建立等式的左边是一个匿名函数。绘制函数。

有趣= @ (x) sinh (x) - 3 * x;t = linspace (-3.5, 3.5);情节(t (t), t, 0(大小(t)),“k -”)包含(“x”)ylabel (“乐趣”(x))

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。

一个 太大或太小,只有一个解决方案。

具体问题具体分析设置

创建一个目标函数的具体问题具体分析的方法,建立一个优化的表情expr在一个优化变量x

x = optimvar (“x”);expr = sinh (x) - 3 * x;

创建和情节的解决方案万博 尤文图斯

从最初的解决方案 x = 0 一个 = 0 100的值,找万博 尤文图斯到解决方案 一个 从0到5。因为有趣的是一个标量非线性函数,解决调用fzero解算器。

对象设置问题,选项,控股方案统计和数据结构。

概率= eqnproblem;选择= optimset (“显示”,“关闭”);溶胶= 0 (100 1);函数宏指令=溶胶;= linspace (0 5);

解决方程在一个循环中,从第一个解决方案溶胶(1)= 0

我= 2:长度(x0)。x =溶胶(张);%从以前的解决方案概率。公式= expr = = (i);[溶胶,~,~,输出]=解决(x0,概率“选项”、选择);溶胶(i) = sol.x;函数宏指令(i) = output.funcCount;结束

策划解决方案作为参数的函数一个和函数的数量评估达到了解决方案。

次要情节(2,1,1)情节(溶胶,“柯”)包含“一个”ylabel (“解决方案(x)”次要情节(2,1,2)情节(函数宏指令,“k *’)包含(的迭代次数)ylabel (函数宏指令的)

图包含2轴对象。坐标轴对象1包含一个类型的对象。坐标轴对象2包含一个类型的对象。

附近的一个跳溶液中发生 一个 = 2 5 。在同一点,函数评估达成解决方案的数量增加了近15到40附近。要理解为什么,检查函数的详细情节。画出功能和每一个7点的解决方案。

图t = linspace (-3.5, 3.5);有趣的情节(t (t));持有情节([-3.5,最小(溶胶)],[2.5,2.5],“k——”)传说(“有趣”,“最大的一个”,“位置”,“北”,“自动更新”,“关闭”)a0 = 7:7:100情节(溶胶(a0), (a0),“罗”)如果国防部(a0, 2) = = 1的文本(溶胶(a0) + 0.15 (a0) + 0.15, num2str (a0/7))其他的文本(溶胶(a0) - 0.3 (a0) + 0.05, num2str (a0/7))结束结束情节(t, 0(大小(t)),“k -”)举行

图包含一个坐标轴对象。坐标轴对象包含31行类型的对象,文本。这些对象代表快乐,最大的一个。

作为 一个 增加,最初的解决方案移动到左边。万博 尤文图斯然而,当 一个 2.5以上,不再是以前附近的一个解决方案的解决方案。fzero需要额外的功能评估寻找解决方案,并找到附近的一个解决方案x = 3。在那之后,解决方案值缓慢向右 一个 进一步增加。解算器只需要大约10函数为每个后续评估解决方案。

选择不同的解算器

fsolve解算器可以更有效的比fzero。然而,fsolve可能会陷入局部最小值,无法解决方程。

对象设置问题,选项,控股方案统计和数据结构。

probfsolve = eqnproblem;溶胶= 0 (100 1);函数宏指令=溶胶;infeas =溶胶;asfsolve = linspace (0 5);

解决方程在一个循环中,从第一个解决方案溶胶(1)= 0

我= 2:长度(x0)。x =溶胶(张);%从以前的解决方案probfsolve。公式= expr = = asfsolve(我);(溶胶、fval ~、输出)=解决(probfsolve x0,“选项”选项,“规划求解”,“fsolve”);溶胶(i) = sol.x;函数宏指令(i) = output.funcCount;infeas (i) = fval;结束

策划解决方案作为参数的函数一个和函数的数量评估达到了解决方案。

次要情节(2,1,1)情节(asfsolve溶胶,“柯”asfsolve infeas,的r -)包含“一个”传奇(“解决方案”,“错误的解决方案”,“位置”,“最佳”次要情节(2,1,2)情节(函数宏指令,“k *’)包含(的迭代次数)ylabel (函数宏指令的)

图包含2轴对象。坐标轴对象1包含2线类型的对象。这些对象代表解决方案,错误的解决方案。坐标轴对象2包含一个类型的对象。

fsolve是更有效的比fzero,需要大约7或8每个迭代函数评估。再次,当解决发现的前一个值附近无解,解算器需要更多的功能评估搜索解决方案。这一次,搜索不成功。后继的迭代中需要一些功能评价在很大程度上,但未能找到一个解决方案。的错误的解决方案图显示了函数值 f u n ( x ) - - - - - - 一个

试图克服局部最小值不是一个解决方案,搜索时又从不同的起点fsolve返回-退出国旗。对象设置问题,选项,控股方案统计和数据结构。

rng默认的%的再现性溶胶= 0 (100 1);函数宏指令=溶胶;asfsolve = linspace (0 5);

解决方程在一个循环中,从第一个解决方案溶胶(1)= 0

我= 2:长度(x0)。x =溶胶(张);%从以前的解决方案probfsolve。公式= expr = = asfsolve(我);[溶胶,~,exitflag、输出]=解决(probfsolve x0,“选项”选项,“规划求解”,“fsolve”);exitflag < = 0%如果fsolve未能找到解决的办法x0。x=5*randn;%再次尝试从一个新的起点函数宏指令(i) =函数宏指令(i) + output.funcCount;[溶胶,~,exitflag、输出]=解决(probfsolve x0,“选项”选项,“规划求解”,“fsolve”);结束溶胶(i) = sol.x;函数宏指令(i) =函数宏指令(i) + output.funcCount;结束

策划解决方案作为参数的函数一个和函数的数量评估达到了解决方案。

次要情节(2,1,1)情节(asfsolve溶胶,“柯”)包含“一个”ylabel (“解决方案(x)”次要情节(2,1,2)情节(函数宏指令,“k *’)包含(的迭代次数)ylabel (函数宏指令的)

图包含2轴对象。坐标轴对象1包含一个类型的对象。坐标轴对象2包含一个类型的对象。

这一次,fsolve恢复从穷人初始点附近 一个 = 2 5 并获得一个解决方案获得的相似fzero。函数的数量为每个迭代评估通常是8日增加到大约30在跳跃的解决方案。

将目标函数使用fcn2optimexpr

对于一些目标函数或软件版本,您必须将通过使用非线性函数优化表达式fcn2optimexpr。看到万博1manbetx支持操作优化变量和表达式将非线性函数优化表达式。对于这个示例,将原来的函数有趣的用于策划优化表达式expr:

expr = fcn2optimexpr(有趣,x);

剩下的例子是完全相同的这种变化后的定义expr

另请参阅

||

相关的话题