|
На сайте: |
|
|
|
|
Вычисление интеграла используя в подинтегральной ф-ции косинус, заданный формулой cos x=1-x^2/2!+x^4/4!-x^6/6!...
|
|
|
Вычислить интеграл I=S(|x|cosx+1)dx на отрезке [-2,2] с точностью е=0,001 Косинус задается формулой cos x=1-x^2/2!+x^4/4!-x^6/6!... и вычисляются с той же точностью
var i1,i2:real;
n,k:longint;
function step(x:real; n:longint):real;
var i:longint;
p:real;
begin
p:=1;
for i:=1 to n do
p:=p*x;
step:=p;
end;
function nf(n:longint):longint;
var i,p:longint;
begin
p:=1;
for i:=1 to n do p:=p*i;
nf:=p;
end;
function sum(x:real;n:longint):real;
var i:longint;
s:real;
begin
s:=1;
for i:=1 to n do s:=step(x,2*i)*step(-1,i)/nf(2*i)+s;
sum:=s;
end;
function cosinus(x:real):real;
var c1,c2:real;
n:longint;
begin
n:=1; c2:=0;
repeat
c1:=c2;
c2:=sum(x,n);
inc(n);
until abs(c2-c1)<=0.001;
cosinus:=c2;
end;
function f(x:real):real;
begin
f:=abs(x)*cosinus(x)+1;
end;
function integral(n:longint):real;
var dx,s:real;
i:longint;
begin
dx:=4/n;
s:=(f(-2)+f(2))/2;
for i:= 1 to n-1 do
s:=s+f(dx*i-2);
integral:=dx*s;
end;
BEGIN
n:=2; k:=1; i2:=0;
repeat
i1:=i2;
i2:=integral(n);
n:=n*2;
inc(k);
until abs(i2-i1)<=0.001;
writeln('I= ',i2:0:3);
writeln('n= ',n);
writeln('k= ',k);
readln
END.
<< Назад
|
|
|
|
Добавленно:
06.08.04 Автор: Аня
| | |