| Загрузить архив: | |
| Файл: ref-12537.zip (29kb [zip], Скачиваний: 142) скачать | 
Вычисление двойных интегралов методом ячеек.
Выполнил студент
факультета ИиВТ,
Содержание.
Теоретическая часть…………………………………………3
Задание………………………………………………………..4
Текст программы. ……………………………………………5
Блок-схема программы…………………….………………...6
Выполнение программы в математическом пакете………..7
Список использованной литературы……………………......8
Теоретическая часть.
Численные методы могут использоваться для вычисления кратных интегралов. Ограничимся рассмотрением двойных интегралов вида
I=
                                          (1)
Одним
из простейших способов вычисления этого интеграла является метод ячеек. Рассмотрим сначала случай, когда областью интегрирования
G является прямоугольник: 
, 
.По теореме о среднем найдём среднее значение функции f(x,y):
 S=(b-a)(d-c).                       (2)
 O | 
 
| 
  b  | 
 
| 
  a  | 
 
 c | 
 
| 
  d  | 
 
| 
  x  | 
 
| 
  y  | 
 
 Рис. 1 | 
 
Будем
считать, что среднее значение приближённо равно значению функции в центре прямоугольника,
т. е. 
      (3)
Точность
этой формулы можно повысить, если разбить область G на прямоугольные ячейки D
ij (рис. 1): xi-1 
i
(i=1,2,…,M), yi-1 
i  (j=1,2,…,N). Применяя к каждой ячейке формулу (3), получим 
òòDGijf(x,y)dxdy»¦(
)DxiDyi.
Суммируя эти выражения по всем ячейкам, находим значение двойного интеграла:
I,
j)                                    (4)
В правой части стоит интегральная сумма; поэтому при неограниченном уменьшении периметров ячеек (или стягивания их в точки) эта сумма стремится к значению интеграла для любой непрерывной функции f(x,y).
Можно показать, что погрешность такого приближения интеграла для одной ячейки оценивается соотношением
Rij»
DxiDyj
.
Суммируя эти выражения по всем ячейкам и считая все их площади одинаковыми, получаем оценку погрешности метода ячеек в виде
O(Dx2+Dy2).
Таким образом, формула (4) имеет второй порядок точности. Для повышения точности можно использовать обычные методы сгущения узлов сетки. При этом по каждой переменной шаги уменьшают в одинаковое число раз, т. е. отношение M/N остаётся постоянным.
Если
область G
непрямоугольная, то в ряде случаев её целесообразно привести к прямоугольному
виду путём соответствующей замены переменных. Например, пусть область задана в
виде криволинейного четырёхугольника: 


  

 – область,
ограниченная функциями 
Текст программы.
#include
#include
float f(float,float);
void main() {
const float h1=.0005,h2=.001;
float s1,x,y,i,I;
clrscr();
s1=h1*h2;
I=0;
y=h2/2;
x=1-h1/2;
for(i=0;i<1/h2;i++) {
while (y<2*x-1) {
I+=s1*f(x,y);
x-=h1;
}
y+=h2;
x=1-h1/2;
}
cout<<"Площадь интеграла равна: "<
getch();
}
float f(float x,float y){
return x*x+y*y;
}
Блок-схема программы.
 
  | 
 
| 
  Начало  | 
 
| 
  h1=0.0005 h2=0.001  | 
 
| 
  Очистка экрана  | 
 
| 
  s1=h1*h2  | 
 
| 
  I=0  | 
 
| 
  y=h2/2  | 
 
| 
  i=0  | 
 
| 
  i<1/h2  | 
 
| 
  y<2x-1  | 
 
| 
  I=I+s1*f(x,y)  | 
 
| 
  x=x-h1  | 
 
| 
  1  | 
 
| 
  2  | 
 
| 
  3  | 
 
![]()  | 
 
SHAPE * MERGEFORMAT
| 
  y=y+h2  | 
 
| 
  x=1-h1/2  | 
 
| 
  i=i+1  | 
 
| 
  Вывод: «Площадь интеграпа равнв:», I  | 
 
| 
  1  | 
 
| 
  2  | 
 
| 
  Конец  | 
 
| 
  3  | 
 
Выполнение программы в математическом пакете.
h1=.0005;
h2=.001;
s1=h1*h2;
I=0;
y=h2/2;
x=1-h1/2;
for i=1:1/h2
while y<2*x-1 I=I+s1*(x*x+y*y);
x=x-h1;
end
y=y+h2;
x=1-h1/2;
end
disp('Площадь интеграла равна:');
disp(I);
В зависимости от шагов сетки получаем с различной точностью значение искомого интеграла

Площадь интеграла равна:
0.2190


Список использованной литературы.
1. Бахвалов Н.С. Численные методы. т.1 – М.: Наука. 1975.
2. Демидович Б.П., Марон И.А. Основы вычислительной математики. – М.: Наука, 1966.
3. Калиткин Н.Н Численные методы. – М.: Наука, 1978.
4. Турчак Л. И. Основы численных методов. – М.: Наука, 1987.