二分法(摘)

二分法,又稱分半法,是一種方程式的近似值求法.

若要求已知函數 f(x) = 0 的根 (x 的解),則:

  1. 先定義一個區間 [a, b],使其包含著方程式的根。
  2. 求該區間的中点m=(a+b)/2,並找出 f(m) 的值。
  3. f(m) 與 f(a) 正負號相同則取 [m, b] 為新的區間, 否則取 [a, m].
  4. 重複第2步至理想精確度為止。

例子

例: 求方程 sinh x = cos x 的解, 其中 sinh 是雙曲正弦、cos 是餘弦x弧度量度.

  1. 定義 f(x) = sinh x - cos x。因此這裏是要求 f(x) = 0 的根。
  2. 畫出 y = f(x) 可大約得知其根約在 0.5 和 1 之間,故使初始區間的 [0.5, 1]。
  3. 此區間之中點為 0.75。
  4. f(0.5) ≈ -0.3565, f(0.75) ≈ 0.0906,其正負號不同,故令新區間為 [0.5, 0.75]
  5. 又新區間的中點為 0.625, 而 f(0.625) ≈ -0.1445, 與 f(0.5) 正負號相同,故新區間為 [0.625, 0.75]。
  6. 不斷重複運算即得 f(x) = 0 的根約為 0.7033。

 偽代碼

輸入 f(x) 的定義
輸入 a 和 b 為初始區間
 
重複如下:
  m := (a + b) / 2
  如果 f(m) * f(a) < 0 則
    b := m
  否則
    a := m
直至滿意為止
 
輸出 m 為 f(x) = 0 的根
参考资料:http://www.wikilib.com/wiki/%E4%BA%8C%E5%88%86%E6%B3%95
还有牛顿法、正割法、试位法、迭代法
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值