一、实验目的:

  1. 掌握逐步搜索法求解非线性方程根区间
  2. 掌握二分法求解非线性方程根的近似解
  3. 掌握迭代法求解非线性方程的解

二、实验平台:

  1. 计算机
  2. MATLAB 集成环境

三、实验内容:

(1) 用逐步搜索法求方程 f(x) = x^3 - x - 1 = 0 的一个有根区间,要求有根区间范围不得超过 0.1。 (2) 用二分法求解方程 f(x) = 1 - x - sin(x) = 0 在区间 [0, 1] 内的一个实根,使误差不大于 0.5 * 10^-4。 (3) 用迭代法求解方程 f(x) = x^3 - x^2 - 1 = 0 在区间 [1.4,1.6] 上的根,要求保留至少 5 位有效数字。

实验步骤:

(1) 逐步搜索法求解非线性方程根区间步骤:

Step 1:定义函数 f(x) = x^3 - x - 1 Step 2:设置搜索区间范围 x = [a, b],此时 a = 0,b = 1,设步长为 dx = 0.01 Step 3:从 a 开始逐步增加 dx,计算 f(a),判断是否与 f(a + dx) 符号相反,若是则 a + dx 即为所求的有根区间左端点,若不是则继续增加 dx,直到找到符号相反的 f(x) Step 4:从 b 开始逐步减少 dx,计算 f(b),判断是否与 f(b - dx) 符号相反,若是则 b - dx 即为所求的有根区间右端点,若不是则继续减少 dx,直到找到符号相反的 f(x) Step 5:得到有根区间 [a + dx, b - dx]

(2) 二分法求解非线性方程根步骤:

Step 1:定义函数 f(x) = 1 - x - sin(x) Step 2:设置初始区间 [a, b],此时 a = 0,b = 1 Step 3:计算中点 c = (a + b) / 2,判断 f(c) 与 0 的符号,若 f(c) 与 f(a) 符号相同,则将区间左端点 a 更新为 c,否则将区间右端点 b 更新为 c Step 4:重复 Step 3,直到区间长度小于等于要求的误差范围,例如 0.5 * 10^-4 Step 5:得到一个近似解

(3) 迭代法求解非线性方程根步骤:

Step 1:定义函数 f(x) = x^3 - x^2 - 1 Step 2:选取初始值 x0 = 1.5 Step 3:构造迭代公式:x(i + 1) = g(x(i)),选择合适的 g(x) 函数,使得迭代公式收敛于方程的根 Step 4:计算 x1 = g(x0),x2 = g(x1),直到收敛,即 |f(x(i))| < 要求的误差范围,例如 10^-5 Step 5:得到一个近似解,保留至少 5 位有效数字

注意:在使用迭代法求解非线性方程时,需要注意迭代公式的选择和初始值的选取,否则可能会导致无法收敛或收敛速度非常慢。

非线性方程求解方法实验:逐步搜索法、二分法和迭代法

原文地址: https://www.cveoy.top/t/topic/nfm5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录