|
#include<iostream.h>, D1 w/ n4 g, R8 L
#include<math.h>. |" e r* _5 f$ u
double fx(int n,double p[],double x) L$ B: f1 J. `+ n) Y, V3 H1 E
{0 d% s* ]! R" \. c
double z=0,y=1;# w+ |: m& X t G& j+ Y
int i=0,j=0;
5 m9 |2 i4 E+ Y4 ? for(;i<n+1;i++)# Z* [6 x) w& X
{
* U& s K4 T& u5 o2 J# X+ L for(;j<i;j++)
! Y' K. g5 R5 x) W; s/ o' c& o6 N y*=x;
5 a' D" w- d! v' X" w z+=*(p+i)*y;2 u" E( X" F$ R& D/ K% B: o' g0 P) I
}
2 H& h- b5 N s! F' b return z;
' V4 w4 \+ B, z: J* g}
9 c2 u6 M$ w2 Z6 p* R' P5 r; q8 Aint fi(int k)
8 r |/ l5 D R{
6 [7 k |) C9 Z, g; \& l if(k==0)2 r9 L- z1 M2 S# ^* B8 ^
return 1;
" u! ?- @6 d* B else $ i- P- F2 n9 o! Q' S
{
9 q5 c8 |. S( d% R# y x, [ if(k==1)! U2 b3 m1 H. L' J7 ]0 \, ~; f0 D
return 1;
, z6 B; K6 ~9 V4 |! [$ { else
; s4 A* D% E/ [( [$ M {
6 t+ W# J$ R4 W9 e# a5 M& ^ int i=0,i1=1,i2=1,w=0;+ U9 }4 `2 y4 |6 H
for(;i<k-1;i++)
- o( Z4 `: K- P1 t! y, w {& E6 g1 H' }; w
w=i1+i2;; N% [- D2 v' G* ?: n' X- U
i1=i2;
( g6 k3 R( [% d2 G! H i2=w;
. O1 ?& W" i# } }: F+ Z( ]" ~: G* ~
return w;$ ]9 y# Z7 Z8 p# h5 q2 c
}) k0 U4 q( l2 m) i+ c
}; j# T5 o$ V; q1 E# T+ V
}
1 {& M2 Q# _" y! K* L. cint r(double w,double a,double b)* V7 r. ^5 b; {
{
2 Q% w. O) [. A6 w+ w9 x int i=0;
( |7 Q( p0 w8 X; J for(;fi(i)<=(b-a)/w;i++)9 l' V7 b0 |3 B5 c
{}1 E1 X' k& u m* z5 m" {/ {
return i;. @) y; i% J5 J s; b
}
$ W# J& y$ s% z0 ~5 H6 {. pvoid main()/ j+ D5 ~8 b8 m$ |3 o6 u
{
& l' L- x7 y2 ?$ X' g( Z- l4 Y cout<<"输入函数的最高次幂";
' ?' O- A: Q2 t3 @$ q int n;; u+ a% ^0 G! N4 b9 @% P
cin>>n;
' \0 p5 j& o5 L1 n double *p=new double[n+1];
" w" ]2 g* ]* o: t, C6 v5 ? double a,b,g=0,j=0,c=0;) @7 v- w& |, A% {
cout<<"依升降幂输入x项的系数"<<endl;+ L' X; P. K3 ?0 w1 E; ~# y/ K& r5 g
for(int i=0;i<n+1;i++)
& ~% q0 k$ l. m2 O0 |# N" K cin>>*(p+i);3 k! v! f: U3 a9 ^) J, v
cout<<"输入误差值"<<endl;
* y3 S: }7 E* F5 k9 b double w;
' t$ G9 ?4 e1 k cin>>w;+ c* X' j# s' H' R- _
cout<<"输入初始区间"<<endl;* ]$ f# v/ [7 {0 c+ A+ Q
cin>>a>>b;
, O6 Y) I: S* a! }: t" \5 m; }3 n cout<<"输入辨别常数"<<endl;; \6 b* [4 O4 e. b1 c
cin>>c;. L# G, |/ j, `( i8 e
n=r(w,a,b);* E: V/ R% u* @1 e4 ?6 O
i=0;
5 h" S, x( ` l8 X. R* z! o cout<<fi(n-i-2)<<endl;3 o6 O; B8 s8 i) P+ {$ k
cout<<a<<" "<<b;
/ x2 a/ B: H5 t" `% O* n g=a+fi(n-2-i)*(b-a)/fi(n-i);4 P% ?( c9 B( {. v0 r* j3 |( [
j=a+fi(n-1-i)*(b-a)/fi(n-i);& K( D; X$ e6 D, D6 d' t; s6 G4 B, u
cout<<g<<" "<<j;) }! H+ m8 b3 v z. p
for(i=1;i<n-1;i++)
# C0 N0 G6 c$ `0 i {
4 a: h& ?6 Z) n# t5 V) J . W X) _! R. l6 i+ `2 K0 r& d% @+ Q
1 D( ?- L4 \. F) i$ n$ j' l if(fx(n,p,g)>fx(n,p,j))
' f7 d) }. y: D9 U. t: ?- n {
# _ w* e- t( l* j- O: W a=g;
! u E' f$ N. r g=j;
" k: g% l3 U! O1 f2 ` j=a+fi(n-1-i)*(b-a)/fi(n-i);7 s+ ]6 y% Z& B$ G) T3 I7 x' G3 g, F
}
6 U# F2 S; }/ l8 v" a else
5 p6 s; i% _! @. O a {4 c) d* n7 f+ W2 i+ c
b=j;+ l- b/ r/ k0 f7 w# @1 q% I5 w
j=g;
/ Y2 ?: F+ f7 F4 Z g=a+fi(n-2-i)*(b-a)/fi(n-i);) `; L& R0 p( H" D$ Z5 S
}
$ x; ?9 f# j1 K, e9 X9 U- \ ! y! {1 `% n) w- A! H
}
3 d0 G8 v( ~# b# [" j$ @; n) j2 T5 d j=g+c;
% y: p+ z3 E' ]2 d# h& f if(fx(n,p,g)>fx(n,p,j))
" p) F4 ^* I1 `6 C2 N2 \, R) A a=g;1 {0 Y7 M5 d" j6 @: `( p( E
else b=g;! e' x4 o) C% r7 J* G
cout<<"函数值在 ("<<g<<","<<j<<")之间;";
7 W# Q+ P# N5 G+ _6 D1 q9 e
( ~9 }, B8 [% B& a! ?# G# }}- `+ @3 v0 O! d# W
|