Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

Chương 6: phân và tích phân số

 M - File

1.    Tính tích phần xác định theo công thức hình thang --- P1

2.    Tính gần đúng tích phân xác định theo phương pháp Simpson O = Parabol(FUN,a,b,tol) ---P1

3.    Richard.m --- P2

4.    Cài đặt chương trình dùng pp MONTE – CARLO tính thể tích của phần hình cầu: (x-3)^2+(y-2)^2+(z+1)^2<=24 --- P2

5.    Tính thể tích elipxoid --- P2

6.    tính thể tích hình paraboloid-eliptic z=45-(x/2-3)^2-(y/3-2)^2 nằm phía trên mp oxy bằng pp montecarlo --- P2

Hàm nội trú --- P2

Bài 1: tính tích phân xác định bằng phương pháp Simson và Newton_cotes19

Bài 2: Tính tích phân kép- 19

Bài 3: Tính tích phân bội 3- 19

Bài 5: Tính xấp xỉ hàm f”(x) tại x = 1,5; 2,0; 3,2 bằng phương pháp nội suy

 ==============

A -    M – file

1.     Tính tích phần xác định theo công thức hình thang

%Ham HThang.m tinh tich phan xac dinh theo

%cong thuc hinh thang

function o = HThang(FUN,a,b,tol)

  if nargin == 3

      RelTol = 1e-3;

      AbsTol = 1e-6;

  else

      AbsTol = tol(1);

      RelTol = tol(2);

  end

  n = 200;

  h = (b-a)/n;

  It = 0;

  I = 0;

  I1 = 0;

  for i = 1:n

      t = feval(FUN,a + i*h);

      It = It + t;

  end

  It = h*(It + (feval(FUN,a) + feval(FUN,b))/2);

  for i = 1:n

      y = feval(FUN,a + i*h);

      y1 = feval(FUN,a + h*(i-1));

      I = I + h*(y1 + y)/2;

      o = I;

      if abs(It - I) < RelTol

         break;

      end

      y = feval(FUN,a + h/2 + i*h);

      y1 = feval(FUN,a + h/2 + h*(i-1));

      I1 = I1 + h*(y + y1)/2;

      o = I1;

      if abs(It - I1) < AbsTol

         break;

      end

  end

2.     Tính gần đúng tích phân xác định theo phương pháp Simpson O = Parabol(FUN,a,b,tol)

function o = Parabol(FUN,a,b,tol)

  if nargin == 3

      RelTol = 1e-3;

      AbsTol = 1e-6;

  else

      AbsTol = tol(1);

      RelTol = tol(2);

  end

  n = 200;

  h = (b-a)/2*n;

  It1 = 0;

  It2 = 0;

  I = 0;

  I1 = 0;

  for i = 1:2*n

      t = feval(FUN,a + i*h);

      if mod(i,2) == 0

          It1 = It1 + t;

      else

          It2 = It2 + t;

      end

  end

  It = h*(4*It2 +2*It1 + (feval(FUN,a) + feval(FUN,b)))/3;

  disp(It);

  for i = 1:2*n

      y = feval(FUN,a + i*h);

      y1 = feval(FUN,a + h*(i-1));

      I = I + h*(y1 + y)/2;

      o = I;

      if abs(It - I) < RelTol

         break;

      end

      y = feval(FUN,a + h/2 + i*h);

      y1 = feval(FUN,a + h/2 + h*(i-1));

      I1 = I1 + h*(y + y1)/2;

      o = I1;

      if abs(It - I1) < AbsTol

         break;

      end

  end

3.      Richard.m

%Ham Richar.m tinh tich phan bang phuong phap ngoai suy Richardson

function Tp = Richard(FUN,a,b,Tol)

if nargin == 3

    Tol(1) =1e-3;Tol(2) = 1e-6;

else if length(Tol) == 1

    Tol(2) = 1e-6;

h = (b-a)/20;

x = [a+h:h:b-h];

y = feval(FUN,x);

s = sum(y) + sum(feval(FUN,[a b]))/2;

I1 = h*s;

clear x y;

h =h/2;

x = [a+h:2*h:b-h];

y = feval(FUN,x);

s = s + sum(y);

I2 = h*s;

Tp = (4*I2-I1)/3;

Tp1 = realmax;

while abs(Tp - Tp1)>Tol(2) || abs((Tp - Tp1)/Tp) > Tol (1)

    clear x y;

    h = h/2;

    x = [a+h:2*h:b-h];

    y = feval(FUN,x);

    s = s + sum(y);

    I1 = I2;

    Tp1 = Tp2;

    I2 = h*s;

    Tp = (h*I2 - I1)/3;

end

4.      Cài đặt chương trình dùng pp MONTE – CARLO tính thể tích của phần hình cầu: (x-3)^2+(y-2)^2+(z+1)^2<=24

% tinh the tich cua elipxoid bang montocarlo

 function V=monte()

 n=input('nhap so diem ngau nhien');

m=0;

for i=1:n

    x=18*rand(1);

    y=24*rand(1);

    z=10*rand(1);

    if(z<=sqrt(30-(x/2-3)^2-(y/3-2)^2)+4)

        m=m+1;

    end

end

V=18*24*10*m/n;

5.     Tính thể tích elipxoid

clear;

N=input('Give the ranom points');

M=0;

for k=1:N

    x=18*rand(1);

    y=24*rand(1);

    z=10*rand(1);

    if(x/2-3)^2 + (y/3-2)^2 + (z -4)^2<=30

        M=M+1;

    end

end

V=18*24*10*M/N;

fprint('the tich:%f',V);

6.      tính thể tích hình paraboloid-eliptic z=45-(x/2-3)^2-(y/3-2)^2 nằm phía trên mp oxy bằng phương pháp montecarlo

%tinh the tich cua hinh cau theo monte

function V=monte_carlo()

n=input('nhap so diem ngau nhien');

m=0;

for i=1:n

    x=10*rand(1)-2;

    y=10*rand(1)-3;

    z=4*rand(1);

    if(z<=sqrt(24-(x-3)^2-(y-2)^2)-1)

        m=m+1;

    end

end

V=10*10*4*m/n;

B – Hàm nội trú

Bài 1: tính tích phân xác định bằng phương pháp Simson và Newton_cotes

>> F = inline('15*log10(exp(x)+cos(x))-2*(x.^2).*tan(1./x)');

>> I = quad8(F,2,5,[1e-4 1e-8])

 >> F = inline('5*log10(cos(x))-2*x.*atan(1./x)');

>> I = quad8(F,1,10,[1e-4 1e-8])

 >> F = inline('3*log(abs(sin(x)))-2*x.*exp(3*x)');

>> I = quad8(F,1,5,[1e-4 1e-8])

Bài 2: Tính tích phân kép

>> F = inline('y.*cos(x)-2*x.*tan(y./x)','x','y');

>> I = dblquad(F,-pi,pi,2,5)

 >> F = inline('exp(y).*sin(x)-2*x.*atan(y)','x','y');

>> I = dblquad(F,0,pi,1,2)

Bài 3: Tính tích phân bội 3

>> F = inline('x*(y^2)*sin(z)+(x^3)*exp(y)*tan(z)','x','y','z');

>> I=triplequad(F,0,5,-1,2,-pi/3,pi/3)

Bài 4: tương tự bài 3

Bài 5: Tính xấp xỉ hàm f”(x) tại x = 1,5; 2,0; 3,2 bằng phương pháp nội suy

>> y=[-3.05001;-2.90250;-1.00020;2.75754;5.37002;4.83752];

>> x=[0 0.5 1 1.5 2 2.5];

>> p=vander(x)\y;// tính hệ số của đa thức

>> f1=polyder(p');// tính đạo hàm của đa thức

>> f2=polyder(f1);

>> X=[1.5 2 3.2];

>> Z=polyval(f2,X) tính giá trị hàm

Z =

   -4.9147  -14.2810   77.7692

 - 19

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: #leez