Смекни!
smekni.com

Приближенное вычисление определенного интеграла при помощи квадратурной формулы Чебышева (стр. 2 из 2)

Хотя численные методы и не дают очень точного значения интеграла, но они очень важны, так как не всегда можно решить задачу интегрирования аналитическим способом.

Листинг программы.

Программа написана на языке Tubro Pascal 7.0 для MS-DOS. Ниже приведен ее листинг:

program integral;

uses crt;

const n=5;

k=-0.832498;

l=-0.374541;

z=0.0;

type aa=array[1..n] of real;

var x,y:aa;

a,b,h,ich:real;

{ заполнение х-сов в массив х[5] }

procedure vvod(var a,b:real;var c:aa);

var i:integer;

t:aa;

Begin

t[1]:=k;

t[2]:=l;

t[3]:=z;

t[4]:=l;

t[5]:=k;

for i:=1 to n-1 do

c[i]:=((b+a)/2+(b-a)/2*t[i]);

for i:=n-1 to n do

c[i]:=1 - c[n+1-i];

end;

{ заполнение y-ков в массиве у[5] }

procedure form(var x:aa; var y:aa);

var i:integer;

Begin

for i:=1 to n do

y[i]:=sin(x[i]); {функция}

end;

{ процедура для расчета интеграла по квадратурной

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

procedure cheb(var y:aa;var ich:real);

var i:integer;

Begin

ich:=0;

for i:=1 to n do

ich:=ich+y[i]*h;

end;

{ процедура вывода таблицы}

procedure tabl;

var i:integer;

Begin

writeln(' ___________________________________ ');

writeln('| i | t| x|y |');

writeln(' ___________________________________ ');

writeln('| 1 |',k:9:6,'|',x[1]:9:6,' |',y[1]:9:6,'|');

writeln('| 2 |',l:9:6,'|',x[2]:9:6,' |',y[2]:9:6,'|');

writeln('| 3 |',z:9:6,'|',x[3]:9:6,' |',y[3]:9:6,'|');

writeln('| 4 |',l:9:6,'|',x[4]:9:6,' |',y[4]:9:6,'|');

writeln('| 5 |',k:9:6,'|',x[5]:9:6,' |',y[5]:9:6,'|');

writeln(' ___________________________________ ');

end;

Begin

clrscr;

writeln(' П Р О Г Р А М М А Д Л Я В Ы Ч И С Л Е Н И Я');

writeln(' О П Р Е Д Е Л Е Н Н О Г ОИ Н Т Е Г Р А Л А ');

writeln;

writeln('Введите границы интегрирования a,b:');

readln(a,b);

vvod(a,b,x);

h:=(b-a)/n;

writeln('h=',h:9:6);

form(x,y);

cheb(y,ich);

tabl;

writeln('I=',ich:8:6);

end.

Вывод результата :

П Р О Г Р А М М А Д Л Я В Ы Ч И С Л Е Н И Я

О П Р Е Д Е Л Е Н Н О Г ОИ Н Т Е Г Р А Л А

Введите границы интегрирования a,b:

0 1.5708

h= 0.314160

____________________________

| i | t | x | y |

____________________________

| 1 |-0.832498| 0.131556 | 0.131177|

| 2 |-0.374541| 0.491235 | 0.471716|

| 3 | 0.000000| 0.785400 | 0.707108|

| 4 |-0.374541| 0.508765 | 0.487099|

| 5 |-0.832498| 0.868444 | 0.763325|

____________________________

I=0.804383

Список литературы:

1. Ракитин Т.А., Первушин В.А. “Практическое руководство по численным методам с приложением программ на языке Basic“

2. Крылов В.И. “Приближенные вычисления интегралов“ - М. : Физмат.

3. Демидович и Марон “Основы вычислительной математики“

4. Копченова и Марон “Вычислительная математика в примерах и задачах”

5. Вольвачев А.Н., Крисевич В.С. Программирование на языке Паскаль для ПЭВМ ЕС. Минск.: 1989 г.

6. Зуев Е.А. Язык программирования Turbo Pascal. М.1992 г.

7. Скляров В.А. Знакомьтесь: Паскаль. М. 1988 г.