Numerical Analysis數值分析筆記 /
2.1 The Bisection Method /
習題組 2.1 /
NO. 3.
use the Bisection method to find solutions accurate to within $10^{-2}$ for $x^{3}-7x^{2}+14x-6=0$ on each interval.
- 第01題 $\left[0,\ 1\right]$.
- 第02題 $\left[1,\ 3.2\right]$.
- 第03題 $\left[3.2,\ 44\right]$.
C 語言程式:
- #include <stdio.h>
- /*前置處理指命,就是把stdio.h這個檔案(此檔案附於安裝編譯器的子資料夾下)的內容放在原始程式的最開頭*/
- #include <stdlib.h>
- /*為了避免結果一閃而過(在windowXP系統下會出現此情形,均需加上此程式)*/
- #include <math.h> /**/
- float f(float x);
- int main(void)
- {
- int i=0,N=100;
- float a=1,b=3.2,p=0.0,FA=0.0,FP=0.0;
- float TOL=0.00001;
- printf("n an bn pn f(pn)\n");
- /*Step1*/
- i=1;
- FA=f(a);
- /*Step2*/
- while(i<=N)
- { /*Step3*/
- p=a+(b-a)/2;
- FP=f(p);
- printf("%2d %+.9f %+.9f %+.9f %+.9f\n",i,a,b,p,f(p));
- /*Step4*/
- if(FP==0 || (b-a)/2<TOL)
- {printf("n=%d, p=%+f\n",i,p);break;}
- /*Step5*/
- i=i+1;
- /*Step6*/
- if(FA*FP>0){a=p;FA=FP;}
- else b=p;
- }
- printf("method failed after N=%d iterations.",N);
- /*Step*/
- /*Step*/
- /*Step*/
- system("PAUSE"); /*為了避免結果一閃而過(在windowXP系統下會出現此情形,均需加上此程式)*/
- return 0;
- }
- float f(float x)
- {
- return pow(x,3)-7*pow(x,2)+14*x-6;
- }
C 語言程式執行結果:
沒有留言:
張貼留言