Calkowanie metoda trapezow i Simpsona

background image

Jadwiga Chudzicka 1

background image

Jadwiga Chudzicka 2

Metoda trapezów

Metoda trapezów polega na tym, że figurę ABCD
zastępujemy figurą złożoną z trapezów wpisanych, tzn.
krzywą aproksymujemy linią łamaną w nią wpisaną.

.

Przedział całkowania (a,b) dzielimy przy tym na n równych
części o długościach: h= (b – a) / n

background image

Jadwiga Chudzicka 3

Punktami podziału (końcami części) są wówczas:

Wówczas pole figury złożonej z trapezów wynosi

Gdzie y

i

: = f(x

i

) – wartości funkcji w punktach podziału.

background image

Jadwiga Chudzicka 4

Stąd otrzymujemy wzór przybliżony w metodzie trapezów:

Oszacowanie błędu tej metody wynosi

gdzie

PROGRAM

background image

Jadwiga Chudzicka 5

Przedstawiony dalej program w Delphi 7

służy do całkowania funkcji f(x) w
przedziale [a, b] dla zadanej liczby
podprzedziałów m z wykorzystaniem 4
rodzajów złożonych kwadratur:

1) wzoru trapezów,

2) wzoru parabol,

3) wzoru Gaussa z dwoma węzłami,

4) wzoru Gaussa z trzema węzłami.

background image

Jadwiga Chudzicka 6

W programie przyjęto m = 10 i obliczono 3 całki o wartościach:

099

056

389

,

6

1

2

2

0

=

e

dx

e

x

181

147

693

.

0

2

ln

1

1

0

=

+

x

dx

474

717

398

.

1

3

1

3

2

1

1

0

=

+

dx

x

Wg wzoru trapezów:
0,693 7…
Wg wzoru Simpsona:
0,693 15…

SIMPSON

PODSUMOWANIE

background image

Jadwiga Chudzicka 7

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes,
Graphics,

Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

Program w Delphi 7

type

TForm1 = class(TForm)

Label5: TLabel; Button1: TButton; Button2: TButton;

Button3: TButton; GroupBox1: TGroupBox;

background image

Jadwiga Chudzicka 8

SaveDialog1: TSaveDialog; LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit; LabeledEdit3: TLabeledEdit;
RadioButton1: TRadioButton; RadioButton2: TRadioButton;
RadioButton3: TRadioButton; LabeledEdit4: TLabeledEdit;
LabeledEdit5: TLabeledEdit; LabeledEdit6: TLabeledEdit;
LabeledEdit7: TLabeledEdit;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function ZapiszWyniki:Boolean;
end;

background image

Jadwiga Chudzicka 9

var

Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.ZapiszWyniki:Boolean;

var

plik:TextFile;

begin

if SaveDialog1.Execute then

begin

AssignFile(plik,SaveDialog1.FileName);

Rewrite(plik);

background image

Jadwiga Chudzicka 10

Writeln(plik,'Program 5.1.');
Writeln(plik,'Obliczanie całki oznaczonej.');
Writeln(plik,'Funkcja podcałkowa: ');
if RadioButton1.Checked = True then
Writeln(plik,'f = Exp(x).');
if RadioButton2.Checked = True then
Writeln(plik,'f = 1/(1+x).');
if RadioButton3.Checked = True then
Writeln(plik,'f = Sqrt(1+2*x).');
Writeln(plik,' ');
Writeln(plik,'Granice całkowania:');
Writeln(plik,' a = ',StrToFloat(LabeledEdit1.Text));
Writeln(plik,' b = ',StrToFloat(LabeledEdit2.Text));

Writeln(plik,'Liczba podprzedziałów - m = ',

StrToInt(LabeledEdit3.Text));
Writeln(plik,' ');

3 różne
funkcje
podcałkowe

background image

Jadwiga Chudzicka 11

Writeln(plik,'Obliczone wartości całki:');

Writeln(plik,'1) wzór trapezów - I =
',StrToFloat(LabeledEdit4.Text));

Writeln(plik,'1) wzór parabol - I =
',StrToFloat(LabeledEdit5.Text));

Writeln(plik,'1) wzór Gaussa (n=2) - I =
',StrToFloat(LabeledEdit6.Text));

Writeln(plik,'1) wzór Gaussa (n=3) - I =
',StrToFloat(LabeledEdit7.Text));

CloseFile(plik);
Result:=True;
end

else Result:=False;

end;

Koniec funkcji TForm1

background image

Jadwiga Chudzicka 12

procedure TForm1.Button1Click(Sender: TObject);

var

m: Integer; a,b: Real;

label powt;

function f(x: Real): Real;

begin

if RadioButton1.Checked = True then f:=Exp(x);

if RadioButton2.Checked = True then f:=1/(1+x);

if RadioButton3.Checked = True then f:=Sqrt(1+2*x);

end;

background image

Jadwiga Chudzicka 13

function Calka1(a,b: Real; m: Integer): Real;
{złożony wzór trapezów}
var

i: Integer; h,s,x: Real;

begin

h:=(b-a)/m;

s:=(f(a)+f(b))/2;

for i:=1 to m-1 do begin

x:=a+i*h;

s:=s+f(x);

end;

Calka1:=s*h;

end;

m – liczba
podprzedziałów

background image

Jadwiga Chudzicka 14

function Calka2(a,b: Real; m: Integer): Real;
{złożony wzór parabol}
var
k,q: Integer; h,s1,s2,x1,x2: Real;
begin
h:=(b-a)/m; q:=m div 2; s1:=0; s2:=0;

for k:=1 to q do begin

x1:=a+(2*k -1)*h; s1:=s1+f(x1);

end;

for k:=1 to q -1 do begin
x2:=a+2*k*h; s2:=s2+f(x2);
end;
Calka2:=h*(f(a)+f(b)+4*s1+2*s2)/3;
end;

m – liczba
podprzedziałów

s1 – suma w
punktach
nieparzystych

s2 – suma
w punktach
parzystych

background image

Jadwiga Chudzicka 15

function Calka3(a,b: Real; m: Integer): Real;
{złożony wzór Gaussa z dwoma węzłami}
var
i: Integer; h,s,t0,t1,x0,x1,xp: Real;

begin

s:=0;

h:=(b-a)/m;

t0:=-1/Sqrt(3);

t1:=1/Sqrt(3);

for i:=1 to m do begin

xp:=a+(i-1)*h+h/2;

x0:=xp+h*t0/2;

x1:=xp+h*t1/2;

s:=s+(f(x0)+f(x1));

end;

Calka3:=s*h/2;

end;

background image

Jadwiga Chudzicka 16

function Calka4(a,b: Real; m: Integer): Real;
{złożony wzór Gaussa z trzema węzłami}
var
i: Integer; h,s,t0,t1,t2,x0,x1,x2,xp: Real;
begin
s:=0; h:=(b-a)/m;

t0:=-Sqrt(3/5); t1:=0;

t2:=Sqrt(3/5);

for i:=1 to m do begin

xp:=a+(i-1)*h+h/2;

x0:=xp+h*t0/2;

x1:=xp+h*t1/2;

x2:=xp+h*t2/2;

s:=s+(5*f(x0)+8*f(x1)+5*f(x2));

end;

Calka4:=s*h/18;

end;

background image

Jadwiga Chudzicka 17

begin

a:=StrToFloat(LabeledEdit1.Text);

b:=StrToFloat(LabeledEdit2.Text);

m:=StrToInt(LabeledEdit3.Text);

if (m div 2)*2<>m then begin

m:=m+1;

end;

LabeledEdit4.Text:=FloatToStrF(Calka1(a,b,m),ffExponent,12,12);

LabeledEdit5.Text:=FloatToStrF(Calka2(a,b,m),ffExponent,12,12);

LabeledEdit6.Text:=FloatToStrF(Calka3(a,b,m),ffExponent,12,12);

LabeledEdit7.Text:=FloatToStrF(Calka4(a,b,m),ffExponent,12,12);

end;

background image

Jadwiga Chudzicka 18

procedure TForm1.Button2Click(Sender: TObject);
begin
ZapiszWyniki;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
RadioButton1.Checked:=True;
LabeledEdit1.Text:='0';
LabeledEdit2.Text:='2';
LabeledEdit3.Text:='10';
SaveDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
end;

end.

Koniec programu

background image

Jadwiga Chudzicka 19

Metoda parabol (Simpsona)

Wymaga podzielenia przedziału całkowania na parzystą liczbę
podprzedziałów, tzn.

background image

Jadwiga Chudzicka 20

Wykonując całkowanie wielomianu interpolacyjnego Lagrange'a
z 3 kolejnych punktów otrzymujemy wzór Simpsona:

dla uproszczenia oznaczamy: x

i

= a + ih oraz f

i

= f(x

i

)

Zamiast trapezami zastępujemy f. podcałkową na danym
odcinku parabolą opartą na 3 p-ktach: w wierzchołku i na
końcach odcinka. Stąd 2 podprzedziały na każdym odcinku.

background image

Jadwiga Chudzicka 21

Dla całego przedziału (a,b) otrzymujemy:

PROGRAM

background image

Jadwiga Chudzicka 22

Złożony wzór trapezów i złożony wzór parabol
są szczególnymi przypadkami złożonych
kwadratur Newtona-Cotesa. Są to kwadratury
otrzymane przez całkowanie wielomianów
interpolacyjnych opartych na równoodległych
węzłach:
x

0

= a, x

1

= a + h, …, x

n

= a + nh = b.

Kwadratury Newtona-Cotesa mają więc ustalone
węzły. Natomiast w kwadraturach Gaussa
dobierane są współczynniki i węzły x

i

w taki sposób,

aby kwadratura była dokładna dla możliwie
najwyższego stopnia wielomianu.


Document Outline


Wyszukiwarka

Podobne podstrony:
całkowanie metoda trapezowa
Całkowanie numeryczne metoda trapezów mini, Studia, ZiIP, SEMESTR III, Metody numeryczne
metoda prostokątów trapezów i simpsona, Elektrotechnika, SEM3, Metody numeryczne, egzamin metody num
całkowanie num metoda trapezów
Metoda trapezów
metoda trapezów
metoda trapezow
Programowanie całkowitoliczbowe metoda podziału i ograniczeń
Ustawianie zebow sztucznych w protezach calkowitych metoda Plonki
calkowanie richard trapez trzyosme
calkowanie trapez, prostokat, simpson id 1
Calkowania num metoda Simpsona id 107369
Całkowity potencjał antyoksydacyjny wyznaczony metodą chromatograficzną niektórych ziół i napoi alko
matlab metoda prostokatow i trapezow

więcej podobnych podstron