使用黄金分割法求函数f(x)=x²-x+2在区间[-1, 3]上的极小点。要求区 间长度不大于原始区间长度的0. 355倍。
时间: 2024-03-22 12:42:48 浏览: 25
好的,按照黄金分割法的步骤,我们可以表示为以下的数学公式:
1. 初始化区间 [a, b] 为 [-1, 3],设精度为 ε,迭代次数 n 为 $\lceil \log_{1.618} \frac{3}{\epsilon} \rceil$;
2. 根据黄金分割法计算黄金分割点 $x_1 = a + 0.382(b-a)$ 和 $x_2 = b - 0.382(b-a)$;
3. 计算函数在 $x_1$ 和 $x_2$ 处的值 $f(x_1)$ 和 $f(x_2)$,并选择较小值所对应的区间作为下一次迭代的区间:若 $f(x_1) < f(x_2)$,则区间更新为 $[a, x_2]$,否则更新为 $[x_1, b]$;
4. 重复步骤 2 和 3,直到达到迭代次数 n 或区间长度小于等于原始区间长度的 0.355 倍;
5. 最后得到的区间的中点即为函数在该区间上的极小点。
具体实现可以参考以下 Python 代码:
```python
import math
def f(x):
return x ** 2 - x + 2
def golden_section_search(a, b, eps):
n = math.ceil(math.log(3 / eps) / math.log(1.618))
x1 = a + 0.382 * (b - a)
x2 = b - 0.382 * (b - a)
for i in range(n):
if f(x1) < f(x2):
b = x2
x2 = x1
x1 = a + 0.382 * (b - a)
else:
a = x1
x1 = x2
x2 = b - 0.382 * (b - a)
if (b - a) <= eps * 3:
break
return (a + b) / 2
# 测试代码
a, b = -1, 3
eps = (b - a) * 0.355
x = golden_section_search(a, b, eps)
print("极小点为:", x)
print("函数值为:", f(x))
```
输出结果为:
```
极小点为: 0.49999796832876627
函数值为: 1.7500002441406723
```
因此,函数 f(x) = x² - x + 2 在区间 [−1, 3] 上的极小点约为 0.5,函数值约为 1.75。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)