Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab 4 Cikly C# .doc
Скачиваний:
7
Добавлен:
19.08.2019
Размер:
417.79 Кб
Скачать

Методические указания по выполнению задачи 5

Представить функцию в виде ряда с точностью 0,001 при х=0,8.

Как известно из математики функцию y(x) можно разложить в ряд и рассчитать путем сложения первых нескольких n членом ряда. Например, y= a0 + a1 + a2 + a3 + a4 + …+ an + . . .

Функция e-x может быть разложена в ряд Тейлора. Ряд сходящийся и рассчитывается путем сложения n членов ряда. Для организации циклических вычислений необходимо рассчитывать члены ряда, сравнивать их значения с заданной точностью |an|>E и при выполнении условия сравнения производить их суммирование. Цикл завершается, когда |an|  E.

Для организации циклического вычисления сначала запишем выражения для n-го и (n +1)-го членов ряда заданной функции:

Для расчета следующего an+1 члена ряда используем рекуррентное соотношение, связывающее его с предыдущим an членом через общий множитель qn.

Тогда an+1 = an  qn. Такой подход позволит избежать вычисление факториала и возведения в произвольную степень. Произведем алгебраические преобразования и упростим выражение для qn.

П одставляя n=0 в заданную формулу , получим начальные значения для расчета функции e-x . А именно: n=0, a0=1, s0= a0.

На рис. 4.5 приведёна блок-схема, программа и результаты,

подтверждающие решение задачи.

double x = 0.8, E = 0.01;

double a, s, q, y, d;

int n = 0;

a = 1; s = a;

Console.WriteLine(" Результаты вычислений");

Console.WriteLine();

Console.WriteLine("---------------------------------------------");

Console.WriteLine(" Сумма s | Количество n | Члены ряда a |");

Console.WriteLine("---------------------------------------------");

while (Math.Abs(a) > E)

{

q = -x / (n + 1);

a = q * a;

s = s + a;

n++;

Console.WriteLine("{0,5:E} | {1} | {2,8:E}", s, n,a );

}

Console.WriteLine("---------------------------------------------");

Console.WriteLine(" a ={0:0.######}", a);

Console.WriteLine(" n = " + n);

Console.WriteLine("Сумма S = {0:0.######}", s);

Console.WriteLine();

y = Math.Exp(-x);

Console.WriteLine("Функция y= {0:0.######}", y);

Console.WriteLine();

d = Math.Abs(y - s);

Console.WriteLine("Погрешность вычисления {0:0.######}", d);

Console.ReadKey();

Блок-схема Задачи 5

Как видно для представления функции e-x c точностью вычисления E=0.001 при x=0.8 достаточно сложить первые 6 членов ряда (a0,…a5).

Измените, точность вычисления Е. Проанализируйте результат представления заданной функции. Сделайте выводы, как погрешность вычисления влияет на результат представления функции.

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]