КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Погрешность численного интегрирования
0.9992 99.9195 E-001 0.4137750613 E-001 0.2933317183 E-001 0.2032723690 E-001 0.4966040522 E-001 0.0896208493 E-001 0.4137750613 E-001 0.2933317183 E-001 0.2032723690 E-001 0.4966040522 E-001 0.0896208493 1.0000 E-015 1.0000 Else 1.0000 0.9996 E-004 1.0004 Интегрирование функций, заданных аналитически (формула прямоугольников, формула трапеций, формула Симпсона) С геометрической точки зрения определенный интеграл
есть площадь фигуры, ограниченная графиком функции
Рис. 6.3 Разделим отрезок
Тогда координата правого конца i -го отрезка определяется по формуле
где
Простейшая оценка площади под кривой Значение определенного интеграла вычисляется по формулам
для методов левых и правых прямоугольников, соответственно. Можно повысить точность вычисления определенного интеграла, если заменять реальную функцию на каждом интервале В этом случае фигура, ограниченная графиком функции и прямыми
Более высокая точность вычисления интегралов обеспечивается при использовании параболической интерполяции (полиномом второй степени) по трем соседним точкам:
Более высокая точность вычисления интегралов обеспечивается при использовании параболической интерполяции (полиномом второй степени) по трем соседним точкам:
Для нахождения коэффициентов a, b, c полинома, проходящего через точки
относительно неизвестных a, b, c. Решив систему (6.18) относительно неизвестных a, b, c любым известным методом (например, Крамера), подставив найденные выражения в (6.17) и выполнив элементарные преобразования, получаем Площадь под параболой
где
Обратите внимание на то обстоятельство, что в формуле Симпсона N должно быть четным числом. Пример 6.2. Вычисление интеграла >> f=inline('sin(x)'); % задание подынтегральной функции >> Xmin=0; >> Xmax=pi/2; >> N=2001; >> i=1:N; >> dx=(Xmax-Xmin)/(N-1); % шаг интегрирования >> x=Xmin:dx:Xmax; % вычисление координат узлов сетки >> y=feval(f,x); % вычисление значений функции в узлах сетки % вычисление интеграла по формуле правых прямоугольников >> m=2:N; >> y1(m-1)=y(m); >> Fr=sum(y1)*dx Fr = >> Fr-1 ans = % вычисление интеграла по формуле левых прямоугольников >> m=1:N-1; >> y1(m)=y(m); >> Fl=sum(y1)*dx Fl = >> Fl-1 ans = -3.9295e-004 % вычисление интеграла методом трапеций >> s=0; for i=2:N-1 s=s+y(i); end; Ft=(0.5*y(1)+s+0.5*y(N))*dx Ft = >> Ft-1 ans = -5.1456e-008 % вычисление интеграла методом Симпсона >> s=0; for i=2:N-1 if i-2*ceil(i/2)==0 k=4; k=2; end; s=s+k*y(i); end; Fs=(y(1)+s+y(N))*dx/3 Fs = >> Fs-1 ans =
Для вычисления значений определенных интегралов в пакете MATLAB имеются следующие функции quad(), quadl(), trapz(), cumtrapz(), которые имеют следующий синтаксис.
>> q = quad(fun,a,b) % возвращает значение интеграла от функции % fun на интервале [a,b], при вычислении % используется адаптивный метод Симпсона. >> q = quad(fun,a,b,tol) % возвращает значение интеграла от % функции fun с заданной относительной % погрешностью tol (по умолчанию tol=10-3) >> q = quad(fun,a,b,tol,trace) % возвращает значение интеграла от % функции fun на интервале [a,b] на % каждом шаге итерационного % процесса >> q = quad(fun,a,b,tol,trace,p1,p2,...) % возвращает значение % интеграла от функции fun % на на интервале [a,b] на % каждом шаге % итерационного процесса, % p1, p2, … - параметры, % передаваемые в функцию % fun >> [q,fcnt] = quadl(fun,a,b,...) % возвращает в переменную fcnt % дополнительно к значению % интеграла число выполненных % итераций Функция quadl() возвращает значения интеграла, используя для вычислений метод Лоббато (Lobbato). Синтаксис функции аналогичен синтаксису функции quad(). q = quadl(fun,a,b) q = quadl(fun,a,b,tol) q = quadl(fun,a,b,tol, 'trace ') q = quadl(fun,a,b,tol, 'trace ',p1,p2,...) [q,fcnt] = quadl(fun,a,b,...) Пример 6.3. Вычисление интеграла >> q=quad('sin',0,pi/2,10^-4) q = >> q-1 ans = -3.7216e-008 >> q=quad('sin',0,pi/2,10^-6,'trace'); >> q-1 ans = -2.1269e-009 >> [q,fnct]=quad('sin',0,pi/2,10^-6,'trace'); >> 17 Функция trapz() вычисляет интеграл, используя метод трапеций. Синтаксис функции trapz(): Z = trapz(Y) % возвращает значение определенного интеграла, в % предположении, что X=1:length(Y) Z = trapz(X,Y) % возвращает значение интеграла % на интервале [X(1),X(N)] Z = trapz(...,dim) % интегрирует вектор Y, формируемый из чисел, % расположенных в размерности dim % многомерного массива
Функция cumtrapz() вычисляет интеграл, как функцию с переменным верхним пределом. Синтаксис функции cumtrapz() аналогичен синтаксису функции trapz(). Z = cumtrapz(Y) Z = cumtrapz(X,Y) Z = cumtrapz(... dim) Пример 6.4. Вычисление определенного интеграла
>> x=0:0.01:pi/2; % задание координат узловых точек >> y=sin(x); % вычисление значений подынтегральной функции в % узловых точках >> trapz(y) % вычисление значения интеграла, в предположении о % том, что шаг интегрирования равен единице ans = >> trapz(x,y) % вычисление значения интеграла на отрезке % шагом интегрирования 0.01 ans =
Пример 6.5. Вычисление интеграла с переменным верхним пределом >> x=0:0.01:3*pi/2; % задание координат узловых точек >> y=sin(x); % вычисление значений подынтегральной функции в % узловых точках >> z=cumtrapz(x,y); % вычисление значений интеграла с % переменным верхним пределом в узловых % точках >> plot(x,y,x,z) % построение графиков подынтегральной функции и % интеграла с переменным верхним пределом % (рис. 6.6)
Рис. 6.6 Для нахождения зависимостей погрешности вычисления определенного интеграла на отрезке
Тогда интеграл от данной функции на отрезке
Оценим погрешность метода левых прямоугольников. Погрешность интегрирования
Из (6.24) видно, что основной член погрешности на каждом отрезке имеет порядок Погрешность формулы трапеций оценивается аналогичным образом. Так как значение интеграла на отрезке
Заменив в (6.25) первый член выражением (6.23), значение функции в точке
раскрыв скобки и приведя подобные, обнаруживаем, что член, пропорциональный первой производной функции, сокращается, и погрешность на одном отрезке равна Так как формула Симпсона основывается на приближении функции Полезно получить оценку погрешности вычисления интеграла от функции, зависящей от двух переменных, который с геометрической точки зрения представляет собой объем фигуры под поверхностью, заданной функцией
где Погрешность вычисления интеграла
Подставив (6.26) в (6.27), выполнив интегрирование и приведя подобные, получаем, что член пропорциональный
Из (6.28) видно, что погрешность интегрирования по одному параллелепипеду составляет Аналогичные оценки для двумерных обобщений формул трапеций и Симпсона показывают, что они соответственно равны
Дата добавления: 2014-01-06; Просмотров: 470; Нарушение авторских прав?; Мы поможем в написании вашей работы! |