详细实验指导见上一篇,此处只写内容啦
实验内容:
1. 用二分法求方程x3-3x-1=0在的所有根.要求每个根的误差小于0.001.
提示与要求: (1) 利用精度找到迭代次数;
(2) 由f(x)=3(x2-1)可取隔根区间[-2,-1].[-1,1].[1,2]);
(3) 用程序求各隔根区间内的根.
2. 用不动点迭代求: (1)x3+2x2+10x-20=0的所有根.
或: (2)9x2-sinx-1=0在[0,1]上的一个根.
3. 用Newton迭代法求解下列之一,准确到10-5:
(1) x3-x-1=0的所有根;
(2) ex+2-x+2cosx-6=0位于[0,2]上的根.
实验代码:
• 牛顿迭代法
1 import math
2 x=0.5
3 n = 1
4 while n ==1 or abs(x-x1)>1e-5:
5 x1 = x
6 def F(x1):
7 return 2**-x+2*math.cos(x)+math.exp(x)-6
8 def F1(x1):
9 return math.exp(x)-math.log(2)*(2**-x)-2*math.sin(x)
10 x = x1 - F(x1)/F1(x1)
11 print ('迭代步数:',n,'X1计算值=',x1,'X计算值=',x)
12 n = n+1
13 else: