RomanReigns2000
03.02.2020 10:49

Написать код к !
написать функцию вычисления суммы ряда:

· стандартный диапазон значений x =0..9, шаг 0.1. убедиться, что на этом диапазоне элемент суммы ряда стремится к 0, при необходимости скорректировать диапазон;

· вычислить значения суммы ряда и контрольной функции, к которой он сходится, с точностью до 4 знаков после запятой;

· исходя из полученного значения n и формулы ряда объяснить различную скорость сходимости для разных x;
ряд: (x-1)/x+(x-1)^2/2x^2+(x-1)^3/3x^3+…+(x-1)^n/nx^n
функция: ln(x)
мои наброски, которые не сработали:
double sum(double x, double eps, int& n) {

double s, sn; // сумма и текущее слагаемое ряда
int a;
int b;
n = 1;

for (s = 0., sn = (x-1)/x ; abs(sn) > eps; n++) {
b = x * (1+n);
a = pow(x - 1, n);
s += sn;
sn = sn*a/b ;

}

return s;

}

// вычисление степенного ряда для x в диапазоне от 0.1 до 1 с шагом 0.1

int main() {

double x, y;

int nn;

for (x = 0.1; x < = 1.; x += 0.05) {

y = sum(x, 0.0001, nn);

printf("n=%d x=%0.1lf\t sum=%0.4lf\t log=%0.4lf\n", nn, x, y, log(x));

}
}

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
07Лизочек07
02.12.2020 14:51
1. В приведенном коде ошибка. Не хватает ";" в третьей строке снизу.
2. Немного изменим ваш код и получим искомое значение x
Искомое число х = 16293

var
  x, y, a, b, k: integer;

begin
  k:=10000;
  repeat
    x:=k;
    a := 0; b := 0; y := 1;
    while x > 0 do
    begin
      if (x mod 10) mod 2 = 0
        then
        a := a * 10 + x mod 10
      else begin
        y := y * 10;
        b := b * 10 + x mod 10
      end;
      x := x div 10
    end;
    a := a * y + b;
    k := k + 1;
    until a = 26391;
    writeln(a:8, k-1:8); 
end.

 
0,0(0 оценок)
Ответ:
Zazej
26.10.2020 21:39

55:5=11

365:11≈33(34) берём "34", чтобы перехлестнуть 365.

Так как 11-ый член является замыкающим (перехлёстывающим 365), тогда смотрим по ближайшим:

34*10=340 (340+34=374) - подходит, но это не максимум!

365 mod 10= 36, а это значит, что последующий член будет больше 365, а именно 395.

В задании сказано, что d должно быть максимальным, а "34" - это допустимое, но не максимально число, удовлетворяющее условию, даже минимальное (по результату).

Проверка:

34*11=374, значит, когда на экране выведется s:=340, n:=50, то, зайдя по следующему циклу, получится, что s:= 374, n:=55. На следующий цикл программа не пойдёт.

ответ: d=34. 

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота