Skip to content

Instantly share code, notes, and snippets.

@JarvisCraft
Created July 10, 2020 14:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JarvisCraft/4d19453f40d6aad500fba2bbca4db0c3 to your computer and use it in GitHub Desktop.
Save JarvisCraft/4d19453f40d6aad500fba2bbca4db0c3 to your computer and use it in GitHub Desktop.

Портнов Пётр Владимирович

Группа ИУ8-25

Задание №1 (вариант 24)

$$ a_n = {96 \over {n^2 + 9n + 20}} $$

Дан ряд: $$ S = \sum_{n=0}^\infty{a_n} = \sum_{n=0}^\infty{96 \over {n^2 + 9n + 20}} $$ Найти сумму ряда аналитически. Вычислить значения частичных сумм ряда $$ S(N) = \sum_{n=0}^N{a_n} = \sum_{n=0}^N{96 \over {n^2 + 9n + 20}} $$ и найти величину погрешности при значениях: $$ N={10^2, 10^3, 10^4, 10^5} $$ Определить количество верных цифр результатов.

  1. Найду сумму ряда S аналитически с использованием средств Matlab:

    >> syms n
    >> S_inf = symsum(96 / (n^2 + 9*n + 20), n, 0, inf)
     
    S_inf =
     
    24
     
  2. Для решения задачи сумм необходимо знать значение частичных сумм S(N). Решим эту задачу в общем случае:

    >> syms N
    >> S = symsum(96 / (n^2 + 9*n + 20), n, 0, N)
     
    S =
     
    (24*(N+1))/(N+5)
     
  3. Сформирую вектор N значений, для которых необходимо вычислить величину погрешностей

    >> N = [10^2, 10^3, 10^4, 10^5]
    
    N =
    
             100        1000       10000      100000
    
  4. Вычислю значения частичных сумм S_i = S(N_i) ряда при соответствующих значениях N_i.

    >> S = (24*(N + 1))./(N + 5)
    
    S =
    
       23.0857   23.9045   23.9904   23.9990
    
  5. Для каждой величины S(N_i) вычислю абсолютную погрешность %DELTA.

    >> D = abs(S - 24)
    
    D =
    
        0.9143    0.0955    0.0096    0.0010
    
    >> format long
    >> D
    
    D =
    
       0.914285714285715   0.095522388059702   0.009595202398799   0.000959952002400
    
    >> format short e; D
    
    D =
    
       9.1429e-01   9.5522e-02   9.5952e-03   9.5995e-04
    
    %DELTA_1 %DELTA_2 %DELTA_3 %DELTA_4
    9 * 10^-1 1 * 10^-1 1 * 10^-2 1 * 10^-3
  6. Для каждой величины S(N_i) вычислю относительную погрешность %delta и определю количество верных цифр.

    >> d=D./24
    
    d =
    
       3.8095e-02   3.9801e-03   3.9980e-04   3.9998e-05
    
    %delta_1 %delta_2 %delta_3 %delta_4
    4 * 10^-2 4 * 10^-3 4 * 10^-4 4 * 10^-5
  7. Для каждой величины S(N_i) определю количество верных цифр.

    >> a = [2 2 2 2]
    
    a =
    
         2     2     2     2
    
    >> n = 1 - log10(a .* d)
    
    n =
    
       2.1181e+00   3.0991e+00   4.0971e+00   5.0969e+00
    
    >> n = floor(n)
    
    n =
    
         2     3     4     5
  8. Запишу численные значения найденных частичных сумм, округлив их до найденного ранее количества верных цифр.

    >> format long; S
    
    S =
    
      23.085714285714285  23.904477611940298  23.990404797601201  23.999040047997600
    
    S_1 S_2 S_3 S_4
    23 23.9 23.99 23.999
  9. Построю график зависимости относительной погрешности в процентах от N.

    >> semilogx(N, d * 100) % домножаю x на 100, т.к. относ. погрешность в процентах
    • Подписываю оси координат:

      >> xlabel('N')
      >> ylabel('Относительная погрешность (%)')
    • Включаю отображение координатной сетки:

      >> grid on
    • Даю графику название:

      >> title('График зависимости относительной погрешности в процентах от N')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment