欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實(shí)現(xiàn)二分法求方程近似解

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

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

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

例如:

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

在這里,我們將用它實(shí)現(xiàn)對(duì)形如 px+q=0 的一元一次方程的求解。

在這里,你完成的程序?qū)⒈惠斎雰蓚€(gè)正整數(shù) p 和 q(你可以認(rèn)為測(cè)評(píng)機(jī)給出的 0<∣p∣≤1000 且0<∣q∣≤1000),程序需要用二分法求出 px+q=0 的近似解。

輸入格式

測(cè)評(píng)機(jī)會(huì)反復(fù)運(yùn)行你的程序。每次程序運(yùn)行時(shí),輸入為一行,包括一組被空格分隔開的符合描述的正整數(shù) p 和 q。你可以認(rèn)為輸入數(shù)據(jù)構(gòu)成的方程 px+q=0 都是有解且解在[−20,20] 的區(qū)間內(nèi)。

輸出格式

輸出為一行,包括一個(gè)數(shù)字。為方程 px+q=0 的近似解。請(qǐng)使用四舍五入的方式保留小數(shù)點(diǎn)后 4 位小數(shù)。

樣例輸入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;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 舉例解析設(shè)計(jì)模式中的工廠方法模式在C++編程中的運(yùn)用

    舉例解析設(shè)計(jì)模式中的工廠方法模式在C++編程中的運(yùn)用

    這篇文章主要介紹了設(shè)計(jì)模式中的工廠方法模式在C++編程中的運(yùn)用,文中也對(duì)簡(jiǎn)單工廠模式和工廠方法模式進(jìn)行了簡(jiǎn)單的對(duì)比,需要的朋友可以參考下
    2016-03-03
  • C/C++的堆棧內(nèi)存分配的實(shí)現(xiàn)

    C/C++的堆棧內(nèi)存分配的實(shí)現(xiàn)

    內(nèi)存管理是至關(guān)重要的一個(gè)方面,堆和棧是C語(yǔ)言中重要的內(nèi)存分配方式,本文主要介紹了C/C++的堆棧內(nèi)存分配的實(shí)現(xiàn),詳細(xì)的介紹了這兩者在管理方式、性能和使用場(chǎng)景,感興趣的可以了解一下
    2024-07-07
  • C++實(shí)現(xiàn)單例模式的自動(dòng)釋放

    C++實(shí)現(xiàn)單例模式的自動(dòng)釋放

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)單例模式的自動(dòng)釋放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Linux下用C++實(shí)現(xiàn)俄羅斯方塊

    Linux下用C++實(shí)現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了Linux下用C++實(shí)現(xiàn)俄羅斯方塊的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 實(shí)例分享cmake編譯一個(gè)簡(jiǎn)單c++項(xiàng)目(demo)

    實(shí)例分享cmake編譯一個(gè)簡(jiǎn)單c++項(xiàng)目(demo)

    下面通過一個(gè)小例子來(lái)說(shuō)明cmake編譯一個(gè)c++項(xiàng)目,生成可執(zhí)行文件,需要的朋友可以參考下
    2020-02-02
  • C語(yǔ)言main函數(shù)的參數(shù)及其返回值詳細(xì)解析

    C語(yǔ)言main函數(shù)的參數(shù)及其返回值詳細(xì)解析

    main函數(shù)的返回值用于說(shuō)明程序的退出狀態(tài)。如果返回0,則代表程序正常退出;返回其它數(shù)字的含義則由系統(tǒng)決定。通常,返回非零代表程序異常退出
    2013-10-10
  • C語(yǔ)言詳細(xì)講解const的用法

    C語(yǔ)言詳細(xì)講解const的用法

    今天探討const,首先來(lái)說(shuō)是將變量常量化。為什么要將變量常量化,原因有諸多好處有諸多。比如可以使數(shù)據(jù)更加安全不會(huì)被修改
    2022-05-05
  • QT+ffmpeg實(shí)現(xiàn)視頻解析的示例詳解

    QT+ffmpeg實(shí)現(xiàn)視頻解析的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用QT+ffmpeg實(shí)現(xiàn)視頻解析功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Qt有一定幫助,需要的可以參考一下
    2022-09-09
  • C/C++實(shí)現(xiàn)發(fā)送與接收HTTP/S請(qǐng)求的示例代碼

    C/C++實(shí)現(xiàn)發(fā)送與接收HTTP/S請(qǐng)求的示例代碼

    HTTP(Hypertext Transfer Protocol)是一種用于傳輸超文本的協(xié)議,它是一種無(wú)狀態(tài)的、應(yīng)用層的協(xié)議,用于在計(jì)算機(jī)之間傳輸超文本文檔,通常在 Web 瀏覽器和 Web 服務(wù)器之間進(jìn)行數(shù)據(jù)通信,本文給大家介紹了C/C++發(fā)送與接收HTTP/S請(qǐng)求,需要的朋友可以參考下
    2023-11-11
  • 利用Matlab復(fù)刻舉牌加油小人生成器

    利用Matlab復(fù)刻舉牌加油小人生成器

    upuptoyou是一款非常有創(chuàng)意的小工具,可以在線生成舉牌小人,看起來(lái)很可愛,也比較有趣,并能用于表白,或節(jié)日送祝福等場(chǎng)景。本文將用Matlab復(fù)刻這一小工具,需要的可以參考一下
    2022-03-03

最新評(píng)論