數值分析C 實現用二分法求方程f x 0的根

2021-10-05 18:20:44 字數 1032 閱讀 1768

問題:用二分法求f(x) = 0的根。

首先我們先知道二分法的定義:

對於區間[a,b]上連續不斷且f(a)·f(b)<0的函式y=f(x),通過不斷地把函式f(x)的零點所在的區間一分為二,使區間的兩個端點逐步逼近零點,進而得到零點近似值的方法叫二分法。

演算法描述

演算法:(二分法)

(1)計算f(a), f(b),若f(a)f(b)>0 ,則演算法失效,停止計算

(2)令x=(a+ b)/2,計算f(x)

(3)若|f(x)|

(4)若f(a)*f(x)<0,則令b=x;否則令a=x

(5)返回第2步

源程式**及執行結果截圖

#include

using

namespace std;

/*@to do:獲取自變數x的函式值

@param x:自變數x

*/float

getbinarysearchfuntion

(float x)

/*@to do:獲取誤區範圍小於e的獲取區間[a,b]的根

@param a:開始查詢的下限

@param b:開始查詢的上限

@param e:精確度,便於跳出迴圈

*/float

getsearchanser

(float a,

float b,

float e)

while

(true

)//開始折半搜尋查詢if(

求方程根 (二分法)

二分法求方程的根 求下面方程的乙個根 f x x3 5x2 10x 80 0 若求出的根是a,則要求 f a 10 6 解法 對f x 求導,得f x 3x2 10x 10。由一元二次方程求根公式知方呈f x 0 無解,因此f x 恆大於0。故f x 是單調遞增的。易知f 0 0且f 100 0,所...

二分法求方程根

二分法是計算機上的一種常用演算法,下面列出計算步驟 step1 計算 step2 計算 step3 若 0,則若若 如下 erfen.m 有根區間 a,b 函式 y x 2 2 呼叫了erfenhanshu a 1 b 6 e 10 cnt 0 while e 0.1 cnt cnt 1 fa er...

C語言二分法求方程根

對於二分法求根,其實和弦截法思想很像,甚至更簡單。原理 先看如下的圖 a,b兩個點為跟的乙個邊界,通過一直縮小跟的邊界,從而獲取跟的值。1 知道函式 即方程的式子 這個好說,題上都有 2 迴圈的輸入a,b的橫座標的值,即x1,x2的初值,直到f x1 與f x2 的乘積為負數才停止。必須保證方程的跟...