admin
時間:2024-04-08 21:47:21來源:本站整理點擊:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
/*2^x+3x-7*/
intmain(void)
{
floata=0.0f;
floatb=2.0f;
floatx=0.0f;
floaty=1.0f;
floaty_1=0.0f;
floaty_2=0.0f;
for(;b-a>0.1;)/*二分法求近似解*/
{
x=(a+b)/2.0f;
y=pow(2,x)+3.0f*x-7.0f;
y_1=pow(2,a)+3.0f*a-7.0f;
y_2=pow(2,b)+3.0f*b-7.0f;//pow返回的值不能再給它賦值,估計你是把+寫成=了
if(y*y_1<0.0f)
b=x;
if(y*y_2<0.0f)
a=x;
}
printf("x=%f",x);
system("pause");
return0;
}
二分法
對于在區間上連續不斷且的函數,通過不斷地把函數的零點所在的區間一分為二,使區間的兩個端點逐步逼近零點,進而得到零點近似值的方法叫作二分法。
二分法適合區間上存在變號零點的函數,即區間端點函數值異號
如果求得的值都是整數的話,用閉區間“[]”就可以! 不過一般情況下開區間“()”在這里是通用的,因為用二分法求值求得的是一種近似值,所以用開區間最合適了 如果求得的值都是整數的話,從函數圖像中也可以看出函數也圖像有交點,所以在二分法規定中有(所求值域的頂端值都為整數是,用閉區間符號也可!) 希望對您有所幫助!
Copyright 2005-2023 yaolan.com 〖搖籃網〗 版權所有 備案號:滇ICP備2022004586號-57
聲明: 本站文章均來自互聯網,不代表本站觀點 如有異議 請與本站聯系 本站為非贏利性網站 不接受任何贊助和廣告 侵權刪除 478923@qq.com