日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二分法求解方程的根java_C语言二分法求解方程根的两种方法

發布時間:2024/10/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二分法求解方程的根java_C语言二分法求解方程根的两种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例為大家分享了C語言二分法求解方程根的具體代碼,供大家參考,具體內容如下

對于二分法求根,其實和弦截法思想很像,甚至更簡單。

原理:先看如下的圖

A,B兩個點為跟的一個邊界,通過一直縮小跟的邊界,從而獲取跟的值。

(1)知道函數(即方程的式子),這個好說,題上都有

(2)循環的輸入A,B的橫坐標的值,即x1,x2的初值,直到f(x1)與f(x2)的乘積為負數才停止。(必須保證方程的跟在(x1,x2)區間)這樣的x1,x2的初值才有意義。

(3)令xx=(x1+x2)/2;(即中值),若f(xx)*f(x1)>0此刻證明了x1要被xx替代了,即區間變成了(xx,x2);。若f(xx)*f(x2)>0此刻證明了x2要被xx替代了,即區間變成了(x1,xx);大家可以用上面的圖試一下就知道了,很好理解的。

(4)那么什么時候結束呢,這就是一個精度的問題了,看你把精度設成什么樣子,最精準的方程跟的函數值是0,那么就用f(xx)與0比較,相差在自己設置的精度(一般是10的-6次方,C語言中寫作:1e-6)以內,則可以把xx近似當做是方程的跟。

下面用代碼實現:

第一種是直接的,第二種是可移植性的(即使方程改變需要修改的地方很少,而前者則需要修改很多),第二種用函數指針實現。

第一種:

#include

#include

#include

#include

using namespace std;

double f(double x)

{

return (x*x*x-3*x*x+3*x-1);

}

int main()

{

double x1,x2,xx;//x1,x2代表區間左右邊界,xx代表方程跟的值

do

{

scanf("%lf%lf",&x1,&x2);

}

while(f(x1)*f(x2)>0);//保證f(x1)和f(x2)是異號,這樣才可以進行下一步的精準區間,否則,重新輸入x1,x2的值

do

{

xx=(x1+x2)/2;

if(f(xx)*f(x1)>0)

x1=xx;

else

x2=xx;

}

while(fabs(f(xx))>=1e-7);//le-6代表1*10的-6次方,它的值將影響到跟的準確度的問題

printf("%.2lf\n",xx);

return 0;

}

第二種:

#include

#include

#include

#include

using namespace std;

double f(double x)

{

return (x*x*x-3*x*x+3*x-1);

}

double erfen(double x1,double x2,double (*p)(double))//double (*p)(double)為形參,相當于函數別名

{

double xx;

do

{

xx=(x1+x2)/2;

if((*p)(xx)*(*p)(x1)>0)

x1=xx;

else

x2=xx;

}while(fabs((*p)(xx))>=1e-7);//le-7代表1*10的-6次方,它的值將影響到跟的準確度的問題

return xx;

}

int main()

{

double x1,x2;

double f(double);

double (*p)(double);

p=f;

do

{

scanf("%lf%lf",&x1,&x2);

}

while((*p)(x1)*(*p)(x2)>0);//保證f(x1)和f(x2)是異號,這樣才可以進行下一步的精準區間,否則,重新輸入x1,x2的值

printf("%.2lf\n",erfen(x1,x2,f));

return 0;

}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的二分法求解方程的根java_C语言二分法求解方程根的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。