Вычислить сумму ряда с точностью е=10^(-5) при n изменяющимся от 0 до бесконечности
3^n/((n+1)*x^(n+1))
вот код:
program z1_13;
uses crt;
const e=0.0001;
var
x,s,p:real;
n:integer;
begin
clrscr;
write('vvedite x (x<>0) ');
readln(x);
n:=0;
s:=0;
repeat
if x>0 then p:=exp(n)*ln(3)/((n+1)*exp(n+1)*ln(x))
else p:=exp(n)*ln(3)/((n+1)*exp(n+1)*ln((-1)*x));
inc(n);
s:=s+p;
until s<e;
write ('summa ryada ravna ',s:12:5);
end.
М | Пожалуйста, используй правильные теги. Лопарь |
Ты неправильно считаешь степень.
Надо так:
a^n = e^(n*Ln(a))
А у тебя e^n*Ln(a)
constХ должен быть в интервале -inf .. -3 или 3 .. +inf
e = 0.0001;
var
X, s, next: real;
n: integer;
begin
write('[Abs(X) > 3] X = '); readln(X);
next := 1 / X;
s := next;
n := 0;
repeat
next := next * 3 / X;
inc(n);
s := s + next / n;
until abs(next / n) < e;
writeln('s = ', s:10:5);
end.
спасибо исправил ..
Добавлено через 19 мин.
а эт можно ищо спросить
почему он возрастает на промежутке -3..3?
а то на защите я ж не скажу:
"Патамушта так сказали на форуме"
Потому что в числителе имеем 3n, а в знаменателе - Xn+1, следовательно если X будет по модулю меньше 3, то числитель (а следовательно и весь n-ый член ряда) будет расти быстрее знаменателя.
(вроде, нигде не ошибся...)
записал
спасибо ышо раз
более точного условия нету...
это с методички для контрольной
там тока такое