最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實現二分法求方程近似解

 更新時間:2021年05月09日 11:04:30   作者:嵐天大大  
這篇文章主要為大家詳細介紹了C++實現二分法求方程近似解,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

二分法是一種求解方程近似根的方法。對于一個函數 f(x)f(x),使用二分法求 f(x)f(x) 近似解的時候,我們先設定一個迭代區(qū)間(在這個題目上,我們之后給出了的兩個初值決定的區(qū)間 [-20,20]),區(qū)間兩端自變量 x 的值對應的 f(x) 值是異號的,之后我們會計算出兩端 x 的中點位置 x' 所對應的 f(x') ,然后更新我們的迭代區(qū)間,確保對應的迭代區(qū)間的兩端 x 的值對應的 f(x) 值還會是異號的。

重復這個過程直到我們某一次中點值 x' 對應的 f(x') < f(x′)<ϵ (題目中可以直接用EPSILON)就可以將這個 x′ 作為近似解返回給 main 函數了。

例如:

上面所示的一個迭代過程的第一次的迭代區(qū)間是 [a1​,b1​],取中點 b2​,然后第二次的迭代區(qū)間是 [a1​,b2​],再取中點 a2​,然后第三次的迭代區(qū)間是 [a2​,b2​],然后取 a3​,然后第四次的迭代區(qū)間是[a3​,b2​],再取紅色中點 c,我們得到發(fā)現 f(c) 的值已經小于ϵ,輸出c 作為近似解。

在這里,我們將用它實現對形如 px+q=0 的一元一次方程的求解。

在這里,你完成的程序將被輸入兩個正整數 p 和 q(你可以認為測評機給出的 0<∣p∣≤1000 且0<∣q∣≤1000),程序需要用二分法求出 px+q=0 的近似解。

輸入格式

測評機會反復運行你的程序。每次程序運行時,輸入為一行,包括一組被空格分隔開的符合描述的正整數 p 和 q。你可以認為輸入數據構成的方程 px+q=0 都是有解且解在[−20,20] 的區(qū)間內。

輸出格式

輸出為一行,包括一個數字。為方程 px+q=0 的近似解。請使用四舍五入的方式保留小數點后 4 位小數。

樣例輸入1

55 9

樣例輸出1

-0.1636

樣例輸入2

-22 4

樣例輸出2

0.1818 

代碼:

#include <cstdio>
#include <cmath>
#define EPSILON 1e-7
 
double bisection(int p, int q, double (*func)(int, int, double));
double f(int p, int q, double x);
int main() {
    int p;
    int q;
    scanf("%d %d", &p, &q);
    printf("%.4lf\n", bisection(p, q, f));
    return 0;
}
 
double bisection(int p, int q, double (*func)(int, int, double)) {
    double x1 = -20;
 double x2 = 20;
 double x = 0;
 while(fabs((*func)(p,q,x))>EPSILON)
 {
  x = (x1+x2)/2.0;
  double fx1 = (*func)(p,q,x1);
  double fx =  (*func)(p,q,x);
  if(fx*fx1>0)
  {x1 = x;}
  else
  {x2 = x;}
  
 }
 return x;
}
 
double f(int p, int q, double x) {
    return p * x + q;
}

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

相關文章

  • C語言位運算和sizeof運算符詳解

    C語言位運算和sizeof運算符詳解

    這篇文章主要介紹了C語言位運算和sizeof運算符詳解的相關資料,這里提供了詳細的知識要點,并附簡單代碼示例,需要的朋友可以參考下
    2016-11-11
  • C++中memcpy函數的使用以及模擬實現

    C++中memcpy函數的使用以及模擬實現

    memcpy是c和c++使用的內存拷貝函數,本文主要介紹了C++中memcpy函數的使用以及模擬實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 使用c++實現OpenCV圖像橫向&縱向拼接

    使用c++實現OpenCV圖像橫向&縱向拼接

    這篇文章主要介紹了使用c++實現OpenCV圖像橫向&縱向拼接,文中有圖像拼接函數,可以實現如“長圖拼接王”這類小程序的類似功能,大家可以將該函數封裝在軟件中自由使用
    2021-08-08
  • C++中的封裝、繼承、多態(tài)理解

    C++中的封裝、繼承、多態(tài)理解

    這篇文章主要介紹了C++中的封裝、繼承、多態(tài)介紹,需要的朋友可以參考下
    2020-01-01
  • 關于C++中虛擬繼承的一些總結分析

    關于C++中虛擬繼承的一些總結分析

    虛擬繼承在一般的應用中很少用到,所以也往往被忽視,這也主要是因為在C++中,多重繼承是不推薦的,也并不常用
    2013-09-09
  • 基于getline()函數的深入理解

    基于getline()函數的深入理解

    本篇文章是對getline()函數的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++11中跳轉initializer_list實現分析

    C++11中跳轉initializer_list實現分析

    這篇文章主要介紹了C++11中跳轉initializer_list實現分析,實例分析initializer_list<T>初體驗,結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • C語言實現經典24點紙牌益智游戲

    C語言實現經典24點紙牌益智游戲

    這篇文章主要為大家詳細介紹了C語言實現經典24點紙牌益智游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 淺談C++空間配置器allocator

    淺談C++空間配置器allocator

    在STL中,Memory Allocator處于最底層的位置,為一切的Container提供存儲服務,是一切其他組件的基石。對于一般使用 STL 的用戶而言,Allocator是不可見的。本文將主要介紹C++空間配置器allocator
    2021-06-06
  • EasyC++自動存儲持續(xù)性

    EasyC++自動存儲持續(xù)性

    這篇文章主要介紹了EasyC++自動存儲持續(xù)性,下面文章圍繞EasyC++自動存儲持續(xù)性的相關資料展開全文資料,需要的小伙伴可以參考一下下面文章的具體內容,希望對你的學習有所幫助
    2021-12-12

最新評論

宁国市| 渭源县| 蒙城县| 上思县| 绥江县| 若尔盖县| 三都| 宾阳县| 永春县| 望都县| 建始县| 台南县| 平湖市| 武城县| 丹寨县| 桃园县| 溧阳市| 临清市| 柳州市| 陆川县| 胶州市| 定陶县| 营口市| 台中市| 西畴县| 广东省| 衢州市| 柯坪县| 雅江县| 南平市| 酒泉市| 庆元县| 芦山县| 九台市| 甘孜县| 辛集市| 太白县| 隆昌县| 鸡泽县| 菏泽市| 海丰县|