UVA10341冪函式零點的通解分析

2022-09-15 22:39:22 字數 1365 閱讀 4117

1

/*uva10341:

2給定f(x)=p*e^(-x) + q*sin(x) + r*cos(x)+ s*tan(x) + t*x^2 + u = 0 這個方程的解

3r,p>=0,q,s,t<=0 定義域[0,1]

4我們可以看到《數值分析》這一小結的內容,我們發現似乎沒有提及解方程的有效辦法。

5這道題目是使用了函式的單調性,也都是基礎函式的和。所以說,以後遇到這種問題要能辨識特殊性。

6那麼我們一定需要的是通解:

71、f(x)=冪函式的和

8例f(x)=5x^4-3x^3+6x^2+7x-9=0

9我們知道的工具是求導,判單調性,每個單調區間上都可能存在最多乙個解。

10單調性也是需要解f(x)=0的點的。

11假設f(i)是最高次數是i的乙個方程.

12則f(i)的零點出現在f(i-1)的零點所劃分區間上;

13這樣遞迴下去,直到解i=1時的零點就可以了;

14當然,f(i-1)是f(i)相應的導函式,過程可以直接模擬出來

152、其他數值分析的方法(待補充)

16以後遇到文獻,補充進去

17*/

18/*

這道題雖然思路簡單,但是卻能學到很多東西:

19詳細見下面的**,加注釋的部分,f(l)*f(m)<0判斷不行啊,一直是w,然而直接判斷f(m)就可以,

20後來想想,是因為(注意)兩個很小的小數相乘是乙個更小的數啊,近似等於0,計算機儲存的精度精度已經不夠了。

21以後要避免這方面的問題

22想了想解決辦法,一是等比例放縮,例f(l)*10^5*f(r)*10^5<1,注意數字乘的順序,將eps也擴大了,二是直接避免相乘出現

23*/

2425 #include26 #include27 #include

28 #include29 #include30 #include//

要用abs(double) math.h不可

31 #include32 #include33 #include34

#define eps 1e-15

35#define ll long long

36using

namespace

std;

3738

double

p,q,rr,s,t,u;

39double f(double x)//

因為巨集定義的語法問題,最好直接寫成函式呼叫

4043

intmain()

4459 printf("

%.4lf\n

",l);60}

61}62return0;

63 }

函式零點的求解方法

有了函式後,我們怎麼用呢?方程的分類 單個方程按其係數的性質分為線性方程和非線性方程。一元非線性方程求解 fzero roots fsolve 多元非線性方程求解 fsolve fzero fsolve 比較 解 fzero 函式,初值,options 解 fsolve 函式,初值,options ...

Bailan4142 二分法求函式的零點 二分法

4142 二分法求函式的零點 總時間限制 1000ms 記憶體限制 65536kb 描述 有函式 f x x5 15 x4 85 x3 225 x2 274 x 121 已知 f 1.5 0 f 2.4 0 且方程 f x 0 在區間 1.5,2.4 有且只有乙個根,請用二分法求出該根。輸入 無。輸...

習題5 2 二分法求函式的零點(POJ 4142)

note 題目不難只需用到二分法,但要特別注意判斷語句 if abs f mid 0.0000005 只要滿足精度在輸出要求的保留小數內即可 不能寫成if f mid 0 會超時。描述 有函式 f x x5 15 x4 85 x3 225 x2 274 x 121 已知 f 1.5 0 f 2.4 ...