Лекции по "Высшая математика"

Автор: Пользователь скрыл имя, 22 Декабря 2011 в 20:19, курс лекций

Описание работы

Под табуляцией функции понимается вычисление значений функции в зависимости от аргумента, который меняется в определенных пределах с постоянным шагом. Решение задачи табуляции является достаточно характерным примером реализации циклического алгоритма.

Содержание

1. Табуляция функции 4
1.1. Практические задания 6
2. Методы нахождения корней уравнений 8
2.1. Метод половинного деления 8
2.2. Итерационные методы 10
2.3. Практические задания 15
3. Вычисление определенного интеграла 16
3.1. Практические задания 19
4. Вычисление конечных сумм 20
4.1. Практические задания 24
5. Индексированные переменные 26
5.1. Одномерный массив 26
5.2. Практические задания 30
5.3. Двумерный массив 32
5.4. Практические задания 38
6. Решение системы линейных алгебраических
уравнений методом Гаусса 41
6.1. Практические задания 44
Литература 46

Работа содержит 1 файл

Методички 1 курс.doc

— 678.00 Кб (Скачать)

I » S = [0,5×(f(a) + f(b)) + f(a + Dx) + f(a + 2×Dx) +…+ f(a + (n - 1) ×Dx)]×Dx .

Метод парабол (Симпсона)

  Проводя через три следующих подряд значения функции параболу, можно приближённо представить интеграл I как сумму площадей параболических трапеций:

I » S =  [(f(a) + f(b) + 4(f(a + Dx) + 2(f(a + 2×Dx) + 4(f(a + 3×Dx) +

         + 4(f(a + (n - 1)×Dx)]×Dx / 3 =

где:  

  Количество  разбиений n обязательно должно быть чётным, поскольку число параболических трапеций в 2 раза меньше.

  Вычисление интеграла с заданной точностью здесь основано на том, что формально точность должна возрастать с увеличением числа разбиений n интервала интегрирования. Пусть Sn – значение интеграла, полученное при разбиении интервала интегрирования на n частей, и S2n – значение, вычисленное при удвоенном числе разбиений. Тогда можно использовать следующие критерии достижения заданной точности e:

     | S2n – Sn| < e  при S2n < 1   и   |(S2n – Sn) / S2n | < e  при S2n  ³ 1.

  На  рис. 3.2 приведён алгоритм численного решения интеграла с заданной точностью. Непосредственное нахождение значения интеграла по какому-либо из предложенных выше методов предлагается оформить в виде подпрограммы.

      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Рис. 3.2. Структурограмма алгоритма решения определённого интеграла

3.1. Задания на вычисление определённого интеграла

Подынтегральная функция Пределы интегрирования
1 0; 1
2 cos x2 0;   1
3 ex × sin x 0;   p
4 x × arctg x 0;   Ö3
5 (x2 - 1) ×10-2x 0;   1
6 0,1;   2
7 x2 × (1 - x)2 0;   1
8 x3 × e2x 0;   1
9 0;   p/2
10 x × ln (1 + x) 0;   0,5
11 cos3x × sin2x 0;   p/3
12 0;   1
13 x × cos x 0;   p
14 x × ln (1 + x3) 0;   0,5
15 cos2 6x 0;   p/2
16 0;   0,5
17 0;   1
18 x × sin x2 0;   1
19 arctg x2 0;   0,5
20 0;   p

4. Вычисление конечных сумм

  Часто для вычисления значений некоторой  функции используют разложение этой функции в бесконечный ряд. Так, например, функцию у e x можно представить в виде ряда Маклорена:

,

где - общий член ряда, а Rn - остаточный член ряда. Так как ряд сходится, т.е. остаточный член при увеличении значения n стремится к нулю, то функцию у = ex можно аппроксимировать конечной суммой вида:

  если 
,

где e - заранее заданная точность аппроксимации.

  Вычисление  конечных сумм для различных значений аргумента функции х и для различного количества членов ряда n представляет собой задачу с двумя вложенными циклами. Внутренний цикл - вычисление суммы n членов ряда для фиксированного значения х; внешний цикл - изменение аргумента х в заданном интервале.

  Алгоритм  вычисления конечной суммы зависит  от вида общего члена ряда.

Ряды, содержащие факториалы и степени высоких  порядков

,

требуют вычисления факториала и возведения аргумента в степени высоких порядков для каждого члена ряда. Прямое использование формулы общего члена ряда приводит к увеличению объема вычислительной работы и, при больших n, к уменьшению точности.

  В этих случаях для вычисления очередного члена суммы используют рекуррентные соотношения, т.е. выражают последующий член ряда через предыдущий. Например, необходимо вычислить сумму 20 членов ряда:

,

где аргумент х изменяется в интервале [0;1] с шагом 0,1.

  а)              у = 3х        б)        

  

Рис. 4.1. Блок-схемы вычислений сумм двух рядов различного типа

 Эта сумма является частичной суммой ряда для функции у = 3х.  
Составим рекуррентную формулу, основываясь на формулах n-го и n+1-го членов ряда:

;   

то есть .

  Полагая аn = 1 при n = 0, по этой формуле можно определить все члены ряда, исключая первый.

  Суммирование  проводится методом накопления. Присвоим переменной S начальное значение, равное первому члену суммы, в данном случае S = 1. Затем, вычисляя очередные члены ряда по рекуррентной формуле, прибавляем каждое из этих значений к накопителю: S = S + an. При составлении алгоритма (рис. 4.1(а)) учтем, что нам необходимо вычислить 19 следующих членов ряда, так как мы начали накопление с первого члена.

  Параллельно, для контроля правильности алгоритма, вычисляем и значение исходной функции у = 3х.

Ряды, не содержащие факториалов  и степеней высоких порядков

  В качестве примера рассмотрим нахождение частичной суммы разложения в  ряд функции:

.

  Для рядов подобного типа нецелесообразно  прибегать к  
составлению рекуррентных формул. Каждый очередной член  
определяется подстановкой значения n в формулу общего члена. Так,  
при n = 1 запишем a= -cos(x),  при n = 2 получаем и т.д.

  Составим  алгоритм вычисления суммы этого  знакопеременного ряда. Пусть количество слагаемых n = 30, диапазон изменения аргумента 0,l ≤ ≤ l и его шаг Dx = 0,1. Положим S = 0, n = 1, C = -1 и вычислим первый член суммы по формуле общего члена ряда. Изменив знак С на обратный, в следующем выполнении цикла имеем второй член суммы и т. д. Полностью алгоритм нахождения суммы рассматриваемого ряда приведён на рис. 4.1(б).

Ряды  смешанного типа

  В подобных рядах целесообразно для  сомножителей, содержащих степени высших порядков и факториалы, составлять рекуррентные соотношения, а остальные сомножители вычислять непосредственной подстановкой значения n. В качестве примера рассмотрим вычисление значений ряда

для n = 30,  0,l ≤ x ≤ l,  Dx = 0,1. Сумма членов этого ряда является частичной суммой разложения функции . Для каждого члена ряда сомножители  (-1)n+1 и х2n+1 будем вычислять рекуррентно, а 1/(4n2-1) непосредственно. Ниже приведён листинг программы решения этой задачи.

  #include <stdio.h>

  #include <math.h>

  int main()

  {

  double x,a,S,y;

  int n;

  for (x=0.1; x<=1; x+=0.1)

        {

        a=-x;

        S=0;

        for (n=1;n<=30;n++)

              {

              a=-a*x*x;

              S=S+a/(4*n*n-1);

              }

        y=0.5*((x*x+1)*atan(x)-x);

        printf("x=%3.1f  S=%8.5f  y=%8.5f \n",x,S,y);

        };

  getchar();           /* ожидание нажатия клавиши пользователем */

  return 0;

  }

  Так как алгоритмы вычисления конечных сумм очень индивидуальны, рекомендуется составленную программу проверить подстановкой для первых двух-трех членов суммы. Для контроля правильности составления алгоритма в наших задачах параллельно с вычислением суммы значение функции определяется и непосредственно.

4.1. Задания на нахождение конечной суммы ряда

  а) Решить задачу вычисления конечной суммы  ряда для заданного числа n при изменении аргумента х в заданном диапазоне, количество шагов изменения х равно 10,

  б) Определить число членов конечной суммы n, позволяющее аппроксимировать функцию с заданной точностью e (например, e = 10-5), исходя из критерия . 

 
 
Сумма
Диапазон

изменения

аргумента

 
n
 
Функция y(х)
1 0,l ÷l 10 sin(x)
2 0,l ÷l 15 cos(x + 0,8)
3 l ÷2 15 ex
4 0,l ÷0,8 50
5 0,l4÷0,5 40 arctg(x)
6 0,l÷l 20 ecos(x) ×cos(sin(x))
7 0,0l÷l 10
8 0,l ÷l 10 2×cos2(x - 1)
9 0,2÷l 20
10 0,l ÷l 10 cos(x)
11 0,l ÷l 15 e3x
12 0,1 ÷l 10 sin(x+0,5)
13 0,l ÷l 10 ex×ln5
14 0,75÷2 15 ln(x)
15 0,l ÷l 10
16 0,l ÷0,9 60 ln(1 - x)
17 0,l ÷0,9 35
18 l ÷3 10 ch(x)
19 0,l ÷ 1 10
20 l ÷3 20 sh(x)

Информация о работе Лекции по "Высшая математика"