Андрей
Высший разум
(480428)
7 лет назад
var
x, eps, p, q, s, t: real;
n: integer;
begin
readln(x, eps);
p := x;
q := sqr(x);
n := 0;
s := 0.0;
repeat
inc(n);
p := - p * q / n;
t := p / (2 * n + 1);
s := s + t
until abs(t) < eps;
wrileln(s, n)
end.
Krab Bark
Искусственный Интеллект
(299837)
7 лет назад
На С:
#include "stdio.h"
#include "math.h"
int main(){
int n; float x,e,p,s;
printf("x="); scanf("%f",&x); printf("e="); scanf("%f",&e); printf("\n n p s\n");
n=1; s=p=-x*x*x/3;
do {printf("%3i %10.5f %10.5f\n",n,p,s); n++; s+=p=-p*x*x/n*(2*n-1)/(2*n+1);} while (fabs(p)>e);
getchar(); getchar(); return 0;}
*** ***Мастер (1082)
7 лет назад
s+=p=-p*x*x/n*(2*n-1)/(2*n+1)
Объясните почему x*x/n*(2*n-1)/(2*n+1) если есть возможность
У меня получилось так но это не подходит к решению :(
Yi=x^(2i+1) / (i! * (2i+1))
Yi+1=x^(2i+2) / ((i+1)! * (2i+2))
A=(x^(2i+1) / (i! * (2i+1)))/(x^(2i+2) / ((i+1)! * (2i+2)))=x(2i+1)/((i+1)(2i+2))
Y=Y1*A
Псевдо код:
INT i;
FLOAT Y,Y1,A,S,x,e;
e=0.001; S=0; i=1;
WHILE (Y>=e) {
A=x(2i+1)/((i+1)(2i+2));
Y1=fabs(x,3)/3;
Y=Y1*A;
IF (i%2)
S = S - Y;
ELSE
S = S + Y;
i = i+1;
};
PRINT ("Сумма ряда:",S,"итерация",i);
END.