5.2 确定非线性方程数值解的Excel模板的制作
例5.1 确定非线性方程
![]()
在区间[0,1]内的数值解x*,使得![]()
本节在5.1节讨论的5种确定方程(5.9)近似解方法的基础上,介绍用Excel来实现求解的基本思路以及操作。
首先打开一个Excel工作簿,在这个工作簿中打开5个工作表,分别命名为二分法、迭代法、埃特金迭代法、斯蒂芬迭代法和牛顿迭代法。在每一个工作表内完成相应的迭代法。
1.二分法
第一步,在单元格A2中输入“0”;在单元格B2和D2中输入区间边界值“0”和“1”;在单元格C2和E2中输入区间边界处函数值的计算公式“=EXP(B2)+10*B2-4”和“=EXP(D2)+10*D2-4”;在单元格F2中输入计算区间中点的计算公式“=(B2+D2)/2”;在单元格G2和H2中输入区间中点的函数值和其绝对值计算公式“=EXP(F2)+10*F2-4”和“=ABS(G2)”。
第二步,在单元格A3中输入“A2+1”;在单元格B3和D3中分别输入“=IF(C2*G2>0,F2,B2)”和“=IF((E2*G2)>0,F2,D2)”;选中单元格A2,把鼠标指针移动到单元格A2的右下角,待其变为填充柄(“
”符号)时,按住鼠标左键向下拖动到单元格A3,完成单元格A3的自动填充;用同样的方法完成单元格E3、F3、G3和H3的自动填充;在单元格I3中输入判断计算“停止”或“继续”确定公式“=IF(ABS(G3)>0.0001,"继续","x*="&F3)”。
第三步,选中单元格区域A3:I3,把鼠标指针移动到单元格I3的右下角,待其变为填充柄(“
”符号)时,按住鼠标左键向下拖动到单元格列I上出现“x*=0.269119262695312”为止,得到图5.1所示的结果。

图5.1 用二分法确定的非线性方程的数值解
2.迭代法
方程(5.9)对应的迭代公式为
![]()
第一步,在单元格A2中输入“0”;在单元格B2中输入x0的值“0”;在单元格A3中输入“A2+1”;在单元格B3中用迭代公式(5.9)输入“=(4-EXP(B2))/10”;在单元格C3中输入函数xk处绝对值的计算公式“=ABS(EXP(B3)+10*B3-4)”;在单元格D3中输入计算停止判断和确定数值解的公式“=IF(ABS(C3)>0.0001,"继续","x*="&B3)”。
第二步,选中单元格区域A3:D3,把鼠标指针移动到单元格D3的右下角,待其变为填充柄(“
”符号)时,按住鼠标左键向下拖动到单元格D列上出现“x*=0.269117719862912”为止,得到图5.2所示的结果。

图5.2 用迭代法确定的非线性方程的数值解
3.埃特金迭代法
方程(5.9)对应的埃特金迭代公式

第一步,在单元格A2中输入“0”;在单元格D2中输入x0的值“0”;在单元格A3中输入“A2+1”;在单元格B3中输入迭代公式“=(4-EXP(D2))/10”;在单元格C3中输入迭代公式“=(4-EXP(B3))/10”;在单元格D3中用迭代公式(5.11)输入“=C3-(C3-B3)^2/(C3-2*B3+D2)”;在单元格E3中输入在xk处计算函数绝对值的公式“=ABS(EXP(D3)+10*D3-4)”;在单元格F3中输入计算停止判断和确定数值解的公式“=IF(ABS(E3)>0.0001,"继续","x*="&D3)”。(https://www.daowen.com)
第二步,选中单元格区域A3:F3,把鼠标指针移动到单元格F3的右下角,待其变为填充柄(“
”符号)时,按住鼠标左键向下拖动到单元格列F上出现“x*=0.269118920621115”为止,得到图5.3所示的结果。

图5.3 用埃特金迭代法确定的非线性方程的数值解
4.斯蒂芬迭代法
方程(5.9)对应的斯蒂芬迭代公式为

第一步,在单元格A2中输入“0”;在单元格D2中输入x0的值“0”;在单元格A3中输入“A2+1”;在单元格B3中输入yk的计算公式“=(4-EXP(D2))/10”;在单元格C3中输入zk的计算公式“=(4-EXP(B3))/10”;在单元格D3中用斯蒂芬公式(5.12)输入计算xk+1的公式“=D2-(C3-D2)^2/(C3-2*B3+D2)”;在单元格E3中输入函数在xk处绝对值的计算公式“=ABS(EXP(D3)+10*D3-4)”;在单元格F3中输入计算停止判断和确定数值解的公式“=IF(ABS(E3)>0.0001,"继续","x*="&D3)”。
第二步,选定单元格区域A3:F3,把鼠标指针移动到单元格F3的右下角,待其变为填充柄(“
”符号)时,按住鼠标左键向下拖动到在单元格列F上出现“x*=0.2691189594547”为止,得到图5.4所示的结果。

图5.4 用斯蒂芬迭代法确定的非线性方程的数值解
5.牛顿迭代法
方程(5.9)对应的牛顿迭代公式为

第一步,在单元格A2中输入“0”;在单元格B2中输入x0的值“0”;在单元格C2中输入在xk处计算函数值的公式“=EXP(B2)+10*B2-4”;在单元格D2中输入在xk处计算函数导数值的公式“=EXP(C2)+10”。

图5.5 用牛顿迭代法确定的非线性方程的数值解
第二步,在单元格A3中输入“A2+1”;在单元格B3中输入牛顿迭代计算xk的公式“=B2-C2/D2”;选中单元格区域C2:D2,把鼠标指针移动到单元格D2的右下角,待其变为填充柄(“
”符号)时,按住鼠标左键向下拖动,完成单元格区域C3:D3的自动填充;在单元格E3中输入在xk处计算函数绝对值的公式“=ABS(C3)”;在单元格F3中输入计算停止判断和确定数值解公式“=IF(ABS(E3)>0.0001,"继续","x*="&B3)”。
第三步,选中单元格区域A3:F3,把鼠标指针移动到单元格F3的右下角,待其变为填充柄(“
”符号)时,按住鼠标左键向下拖动到单元格列F上出现“x*=0.269114107118659”为止,得到图5.5所示的结果。
6.收敛速度比较图的绘制
在直角坐标系内绘制5种迭代法的收敛速度比较图,横坐标为迭代次数,纵坐标为误差,如图5.6所示。

图5.6 5种迭代法的收敛速度比较