( )
4
:
I
_______________________
(, )
___________________________ () ()
_________________
()
_________________________
(, )
_________________________
() ()
_________
()
2012 .
:
(, ). -, . , , . , , , gnuplot.
14.
:
( , , ) .
, F(x) , x ∈ [a,b].
:
( )
, , [a,b] , , : ( ). , .
: . :
o
o
, .
F(x)=0 x=f(x). : |f(x)|<1, x∈[a,b].
- . x f . x .
.
x ( ) , . : |F(x)*F(x)| < (F(x))2 .
|
|
:
(, -). double.
:
, ( , , , , ). .
:
: Ubuntu 10.04 LTS Lucid Lynx
: C
: 64
g++ cours4.cpp o cours4.exe
:
[1, 2] (1)
[1, 2] (2)
:
eps | double | |
a | double | |
b | double | |
c | double | , [a, b] |
1 | double |
:
double Halving(double f(double), double a, double b)
{ double c; while(fabs(b-a)>eps && f(c)!=0) { c=(a+b)/2; if(f(a)*f(c)>0) a=c; else b=c; } return c;} |
double Iteration(double F(double), double a, double b)
{ double c=(a+b)/2, c1=c+1; while(fabs(c-c1)>eps && F(c)!=c) { c1=c; c=F(c); } return c;} |
double Newton(double f(double), double fp(double), double a, double b)
{ double c=(a+b)/2, c1=c+1; while(fabs(c-c1)>eps && f(c)!=c) { c1=c; c=c-f(c)/fp(c); } return c;} |
double f1(double x) f1 (1)
{return sin(x/2)/cos(x/2)-cos(x/2)/sin(x/2)+x;}
double F1(double x) - F1 (1)
{return 2*atan(cos(x/2)/sin(x/2)-x);}
double fp1(double x) f1(fp1) (1)
{return 1/(2*cos(x/2)*cos(x/2))+1/(2*sin(x/2)*sin(x/2))+1;}
, , (1).
Helving root of f1=1.076875
Iteration root of f1=1.076875
Newton root of f1= 1.076874( )
double f2(double x) - f2 (2)
{return 0.4+atan(sqrt(x))-x;}
double F2(double x) - F2 (2)
{return 0.4+atan(sqrt(x));}
double fp2(double x)- f2(fp2) (2)
{return (1/(1+x))*(1/2*(sqrt(x)));}