求解命令块 > 示例:优化函数
  
示例:优化函数
使用 maximizeminimize 函数,加上估值来求出输入函数的最大值或最小值所对应的点。估值会告知求解器函数在局部最大值和最小值上收敛,而不是在其他可能的极大值或极小值点。当在求解命令块中使用求解器函数时,可以提供约束以将搜索算法限于特定域或绘图的特定区域。
使用无约束的估值
1. 使用 sin 函数定义递增正弦函数。
单击复制此表达式
2. 在给定估值的条件下,使用 maximizeminimize 函数求出局部最大值和最小值。
单击复制此表达式
单击复制此表达式
单击复制此表达式
3. 绘制函数图像,然后使用竖直标记来显示局部最大值和最小值。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
这些函数将返回最接近估值的局部最大值和最小值。
使用含无界约束的估值
1. 要对 maximizeminimize 函数进行约束,请使用其自身求解命令块内的每个函数。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
2. 使用此短程序在绘图上突出显示约束区域。
单击复制此表达式
3. 将突出显示区域的起点设置为约束值,然后生成着色矢量。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
4. 显示已着色的约束区域、新估值以及新的局部最大值和最小值。将 Y1 轨迹的线型设置为 (无)。
单击复制此表达式
返回的最小值和最大值满足 x>7 的约束值。
使用含有界约束的估值
1. 要对函数 maximizeminimize 进行更严格的约束,请指定该约束的下限和上限。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
2. 将突出显示区域的起点设置为约束值,然后生成着色矢量。
单击复制此表达式
单击复制此表达式
3. 显示已着色的约束区域、估值以及局部最大值和最小值。
单击复制此表达式
返回的最小值和最大值满足 0<x<10 的约束范围。
使用约束时的注意事项
使用约束时,建议确认返回的最小值或最大值不等于某个约束值。
1. 指定窄边界约束,并重新计算最小值和最大值。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
2. 将突出显示区域的起点和终点设置为约束的下限和上限,然后生成着色矢量。
单击复制此表达式
单击复制此表达式
3. 显示已着色的约束区域、估值以及局部最大值和最小值。
单击复制此表达式
返回的最大值保持不变,但返回的最小值现在等于约束的上限。返回的最小值满足约束,但并未落在其中任何一个函数的最低点上。这意味着 minimize 和 maximize 函数所返回的最小值和最大值满足约束,但它们并不一定是函数的极小值或极大值。
在这种情况下,建议用户放松约束,直到所返回的值安全落在指定的约束范围内并远离其极限。
4. 数学格式选项卡的结果组中,将结果格式设置为 (小数),并通过计算输入函数在返回值处的导数,确保返回结果为零,来检查返回的最小值和最大值的有效性。
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
结果表明,求解命令块计算得到的所有最大值和最小值都在函数曲线上正确的最大值和最小值点处,除了最小值 sblo3
5. 放松约束的上限,并重新计算最小值和最大值点。
单击复制此表达式
单击复制此表达式
单击复制此表达式
最小值现在也落在约束区域之内。
单击复制此表达式