.


:




:

































 

 

 

 


-




 

MATLAB quad ( ) quad1 ( -). , , .. , ( ). , quad1 quad, (.., , ). quad quad1 (, , MATLAB), . : , :

 

q=quad (fun, a, b)

q1=quad1 (fun, a, b)

 

fun ; a b .

 

() , , ( 10-6).

 

, quad quad1. :

 

>> f=inline ('1-x+x.^2-x.^3', 'x');

>> TolX=1e-5;

>> [I, cnt]=quad (f, a, b, TolX);

I=

-12.749999999999996

cnt=

>> [I,cnt]=quad1 (f, a, b, TolX)

I=

-12.750000000000002

cnt=

 

, , - , . , , quad , quad (13 18). , , , . , ,

 

>> f=inline ('sin(x)', 'x');

>> TolX=1e-5;

>> [I, cnt]=quad (f, -pi, pi, TolX);

I=

2.220446049250313e-16

cnt=

>> [I,cnt]=quad1 (f, -pi, pi, TolX)

I=

2.015274060089494e-17

cnt=

 

.. quad1 ( 18 21 quad).

 

.

 

-. -.

 

function Lab_3_5

a=input(' a=');

b=input(' b=');

eps=input(' eps=');

nmax=input(' nmax=');

fprintf('\n S :');

% MATLAB

f=@(x)p(x);

squad=quad(f,a,b);

fprintf('\n - ( quad), S=%10.3f',squad);

%

[spr,npr]=INT_Pr(a,b,eps,nmax);

fprintf('\n - , S=%10.3f',spr);

fprintf(' (n=%4d)',npr);

[str,ntr]=INT_Tr(a,b,eps,nmax);

fprintf('\n - , S=%10.3f',str);

fprintf(' (n=%4d)',ntr);

[ssimps,nsimps]=INT_Simps(a,b,eps,nmax);

fprintf('\n - , S=%10.3f',ssimps);

fprintf(' (n=%4d)',nsimps);

end

 

function [s,nf]=INT_Pr(a,b,eps,nmax)

n=4;

s1=pr(a,b,n);

n=2*n;

s2=pr(a,b,n);

while(abs(s2-s1)>eps&n<nmax)

s1=s2;

n=2*n;

s2=pr(a,b,n);

end

s=s2;

nf=n;

end

 

function [s,nf]=INT_Tr(a,b,eps,nmax)

n=4;

s1=tr(a,b,n);

n=2*n;

s2=tr(a,b,n);

while(abs(s2-s1)>eps&n<nmax)

s1=s2;

n=2*n;

s2=tr(a,b,n);

end

s=s2;

nf=n;

end

 

function [s,nf]=INT_Simps(a,b,eps,nmax)

n=4;

s1=simps(a,b,n);

n=2*n;

s2=simps(a,b,n);

while(abs(s2-s1)>eps&n<nmax)

s1=s2;

n=2*n;

s2=simps(a,b,n);

end

s=s2;

nf=n;

end

 

function y=pr(a,b,n)

h=(b-a)/n;

x=a+h/2;

s=0;

for i=1:n

s=s+p(x);

x=x+h;

end

y=h*s;

end

 

function y=tr(a,b,n)

h=(b-a)/n;

x=a;

s=(p(a)+p(b))/2;

for i=2:n

x=x+h;

s=s+p(x);

end

y=h*s;

end

 

function y=simps(a,b,n)

h=(b-a)/n;

x=a+h;

s=p(a)+p(b);

z=1;

for i=2:n

s=s+(3+z)*p(x);

z=-z;

x=x+h;

end

y=h/3*s;

end

 

function y=p(x)

y=1-x+x.^2-x.^3;

end

 

 

a=0, b=3, eps=0.001,

nmax=1000:

 

S :

 

- ( quad), S= -12.750

 

- , S= -12.750 (n= 256)

 

- , S= -12.750 (n= 256)

 

- , S= -12.750 (n= 8)

 

.

 

1. MATLAB , , quad, . , .. , ( ). quad , . : , :

q=quad(fun,a,b), fun ( @); a b . () , , ( ). .

 

2. : pr INT_Pr ; tr INT_Tr ; simps INT_Simps .

 

3. ( nmax) ( ,

) , .

n , ( eps), . : nmax=1000, eps=0.001.

 





:


: 2017-03-11; !; : 2358 |


:

:

- , - .
==> ...

1451 - | 1370 -


© 2015-2024 lektsii.org - -

: 0.02 .