Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[51]

При равномерном разбиении отрезка [a, b] на "N" малых отрезков (интервалов) необходимо определять значения функции "f(x;)" в "M" точках внутри отрезка [a, b].

Метод прямоугольников основан на интерполяции функции на малом отрезке постоянным значением. Кривую f(x) на каждом малом интервале "h" заменяют горизонтальной линией, пересекающей кривую в середине отрезка, при этом M=N. Интеграл вычисляется по формуле:

Si = fi * h; - на одном отрезке.

S =( f1 + f2 + ... + fM )*h; - на M отрезках.

Здесь fi = f(xi); h = (b-a)/N; x± = a - h/2 + h*i; i = 1, 2, . . . ,

a x1 x2 x3 b Xa x1 x2 b Xa x1 x2 x3 b Xa x1 x2 x3 x4 x5 b X

Метод трапеций состоит в том, что кривую f(x) на каждом малом интервале "h" заменяют отрезком прямой, соединяющим точки кривой f(x) на краях этого интервала, при этом M=N- 1. Интеграл вычисляется по формуле:

S1 =((fa + fb)/2)* h; - на одном отрезке.

S = ((fa + fb)/2 + fi + f2 + ... + fM )*h; - на N отрезках. Здесь fi = f(xi); h = (b-a)/N; Xi = a + h*i; i = 1, 2, . . . , M.

Метод Симпсона основан на интерполяции функции на малом отрезке квадратичной параболой, проходящей через крайние и среднюю точки кривой f(x). При этом M=2*N-1, а интеграл вычисляется по формуле:

S1 =((fa + 4*f1 + fb)/3)* h - на одном отрезке.

S=(fa+fb+ 2*(f2+f4+...+fM-2)+ 4*(f1+f3+...+fM-1))*h/3; - на N отрезках. Здесь fi = f(Xi); h = (b-a)/(2*N); Xi = a + h*i; i = 1, 2, . . . , M.

Метод "трех восьмых" основан на интерполяции функции на малом отрезке кубической параболой, проходящей через крайние и две равноотстоящие по "x" точки кривой f(x). При этом M=3*N- 1, а интеграл вычисляется по формуле:

S1 =((fa + 3*(f1+f2) + fb)*3/8)* h - на одном отрезке.

S = (fa+fb+ 2*(f3+f6+...+fM-3)+ 3*(f1+f2+...+fM-1))*3*h/8; - на N отрезках. Здесь fi = f(xi); h = (b-a)/(3*N); xi = a + h*i; i = 1, 2, . . . , M.

Операторы для вычисления интеграла в этом случае имеют вид:

m:= 3*n-1; h:= (b-a)/(3*n); s:= f(a) + f(b); for i:=1 to m do begin


x:= a+h*i; if i mod 3 = 0 then S:= S+2*f(x) else S:= S+3*f(x) end; S:= 3/8*S*h;

Отметим, что методы прямоугольников и трапеций точны для многочленов первой степени, формулы Симпсона и "трех восьмых" - для многочленов третьей степени.

Практическое задание N 2. 31

1.Рассчитать определенные интегралы с заданной погрешностью двух последовательных приближений от функций: f(x) = sin(x); на интервале [0. . pi], и f(x) = cos(x); на интервале [pi/2 . . pi/2]. Сравнить результат с точным значением интеграла от функции.

2.Показать на примерах точность квадратурных формул при n=1. Например: метод прямоугольников и трапеций для f( x) = x+5; на интервале [ 1. . 3], формулы Симпсона и "трех восьмых" - для f( x) = x3/4 + 1; на интервале [ 0. . 4].

Можно построить квадратурные формулы, точные для многочленов k -ой степени. С помощью замены переменных x= (b-a)*u/2 + (a+b)/2; и V(u) = (b-a)*f(x)/2; получаем:

S = j f(x)*dx = j V(u)du = A1*V1 + A2*V2 + A3*V3 + ... + Am*Vm ;

где Vi = V(ui); Такого вида формулы получены Чебышевым и Гауссом. Для различных значений "M" (числа точек интегрирования) приводятся таблицы данных для коэффициентов "Ai" и аргументов "ui". В формуле Чебышева A1=A2=A3=... =AM=2/M. Формула Чебышева точна для многочленов M - ой степени (при четных M - для многочленов M+1 - ой степени), формула Гаусса - для многочленов 2*M-1 -ой степени. Приведем данные для M=3 и M=6.

формула Чебышева

формула Гаусса

значение "ui"

значение "ui"

значение "Ai"

0.888888

0.707107

0.774597

0.555555

0.266635

0.238619

0.467914

0.422519

0.661209

0.360762

0.866247

0.932470

0.171325

Метод интегрирования, основанный на представлении подынтегральной функции в виде сходящегося ряда, применяется при расчете интегралов, не выражающихся через элементарные функции. Рассмотрим пример вычисления интеграла:

S= j e-X dx= x- x3/(3*1!)+ ...+ (-1)k*x(2*k+1)/((2*k+1)*k!); k=0,1,2,...

При интегрировании может использоваться формула:

S = j f(x)*dx = j f(x)*dx - j f(x)*dx;


1.Составить процедуры расчета определенных интегралов по формулам Чебышева и Гаусса для заданного числа точек интегрирования. Рассчитать численными методами интеграл от функций: f( x) = sin( x); на интервале [ 0. . pi ] и f( x) = cos( x); на интервале [-pi/2 . . pi/2 ] при M=6. Сравнить результат с точным значением и вывести значение относительной погрешности. Провести расчет с разбиением интервала N>1.

2.Показать на примерах точность квадратурных формул при M=3 и при M=6. Например: по формуле Чебышева для f(x)= x3/4 + 1; и f(x)= x7/8 + 5; по формуле Гаусса для f(x)= x5+3; и f(x)= x11/18 + 5; на интервале [1. . 3]. Функцию можно задать в виде: function f(x:real):real; begin f:=exp(k*ln(x))+c end;

3.Рассчитать интегралы от функций f( x) = sin( x)/ x; и f( x) = (1 - cos( x))/ x, применяя разложение тригонометрической функции в ряд (см. стр. ). Рассчитать интегралы на интервале [ pi/2 . . pi ] для числа членов ряда от 1 до 8 и сравнить с данными расчета по формуле Гаусса при M=6.

2. 5. 4. Сортировка одномерных массивов

Сортировка заключается в перестановке элементов массива в порядке возрастания или убывания их значений. Методы сортировки основаны на сравнении элементов массива в проверяемой части и перестановке наибольшего, либо наименьшего элемента в начало, либо в конец этой части массива. Процесс перестановок повторяется до полного упорядочения значений элементов массива. Известно несколько методов сортировки, обладающих различной эффективностью при решении конкретных задач. Пусть заданы значения элементов массива "X". Приведем алгоритмы и блоки операторов, выполняющие некоторые наиболее распространенные методы сортировки.

Схемы перестановок при сортировках по возрастанию.

(упорядоченные элементы выделены)

x1 xM

x1 x2 xi xi+ 1

Сортировка выбором

Сортировка обменом

x1 x2 xj

xi xN

Сортировка вставками

Сортировка выбором основана на определении наибольшего (наименьшего) элемента, который переносится в начало или конец массива в зависимости от вида сортировки ( по возрастанию или по убыванию). Затем эта процедура применяется ко всем оставшимся элементам, кроме уже перемещенных элементов, всего ( N- 1 ) раз. Приведем пример операторов для сортировки элементов массива "Х" по возрастанию:

for j: = 1 to N-1 do begin{ цикл по числу "проходов" }

k:= N-j + 1; { k - номер последнего элемента в проверяемой части массива } m:= k;{ m - номер элемента с наибольшим значением }

for i:= 1 to N-j do {цикл сравнения элементов в оставшейся части массива} if x[i] > x[m] then m: = i;{ запоминаем значение "m" }

b:= x[k]; x[k]:= x[m]; x[m]:= b{ переставляем элементы }



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53]