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 5: Nội suy và xấp xỉ hàm

A- M-file --- P1

1.    Cài đặt hàm tính vecto hệ số của đa thức nội suy  Newton tiến bậc n-1xuất phát từ x1

2.    Cài đặt hàm tính xấp xỉ giá trị đa thức nội suy P(x) bậc n-1 tại xx=(xx1,xx2…xxn) bằng Lagrange

3.    Tính hệ số a,b ,c của quan hệ y= ax2+bx+c theo pp bình phương tối thiểu – p = Parabolfit(x, y)

4.    Tính hệ số a, b ,c của quan hệ y= a+bcosx+csinx theo pp bình phương tối thiểu – S = sincosfit(x, y)

5.    Tính hệ số a và b của quan hệ hàm y=ae^bx – [a,b] = ExpFit(x, y)

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

Bài 1:tìm xấp xỉ các hệ số của đa thức P(x) bậc 3 tại X = 1:0.2:3

bài 3: tính xấp xỉ hàm bằng phương pháp spline bậc 3

bài 5:dùng ma trận pascal,đưa ra màn hình vector hệ số của khai triển nhị thức newton

bài 6: tính vector hệ số của đa thức nội suy bậc 5 bằng cách sử dụng ma trận Vandermomde

Bài 7: hệ số của tổng ,tich,thương và phần dư phép chia cho 2 tương ứng p,q,s

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

A –   M- file

1.     Cài đặt hàm tính vecto hệ số của đa thức nội suy  Newton tiến bậc n-1xuất phát từ x1:

% tinh newton

function A=newton(x,y)

    m=length(x);

    n=length(y);

    if(m~=n)

        disp('??? error using newton');

        disp('length x,y must be equal');

        A=NaN;

    else

        B=zeros(m,m);

        B(:,1)=y;

        for j=2:m

            for i=1:m-j+1

               B(i,j)=(B(i+1,j-1)-B(i,j-1));

               B(i,j)=B(i,j)/(x(i+j-1)-x(i));

            end

        end

        A=B(1,:);

    end

2.      Cài đặt hàm tính xấp xỉ giá trị đa thức nội suy P(x) bậc n-1 tại xx=(xx1,xx2…xxn) bằng Lagrange.

function V = Lagrange(x,y,xx)

    n = length(x);

    l = length(y);

    m = length(xx);

    if n~= l

        disp('ERROR');

        V = NaN;

    else

        T = 1;

        M = 1;

        for i = 1:m

            for e = 1:n

                for k = 1:n

                    T = T*(xx(i) - x(k));

                    for t=1:n

                        M = M*(x(k) - x(t));

                    end

                end

                V(i) = V(i) + y(e)*(T/M);

            end

        end

    end

end

3.     Tính hệ số a,b ,c của quan hệ y= ax2+bx+c theo phương pháp bình phương tối thiểu – p = Parabolfit(x, y)

%xap xi ham bac 2 bang phuong phap binh phuong toi thieu

function p = parabolfit(x, y)

    plot(x,y,'*');

    axis auto;

    hold on;  grid on;

    a11=sum(x.^4); a12=sum(x.^3); a13=sum(x.*x); a14=sum(x);

    n=length(x);

    b1=sum(x.*x.*y); b2=sum(x.*y); b3=sum(y);

    X=[a11 a12 a13; a12 a13 a14; a13 a14 n];

    Y=[b1; b2; b3];

    sol=X\Y;

    a = sol(1) ; b = sol(2); c = sol(3);

    p = [a, b, c];

    x0 = -2:0.1:2;

    y0 = a*(x0.^2) + b*x0 + c;

    plot(x0, y0, 'r');

    hold off;

    xlabel('X-Axis'); ylabel('Y-Axis');

    title('Parabol');

end

4.     Tính hệ số a, b ,c của quan hệ y= a+bcosx+csinx theo phương pháp bình phương tối thiểu – S = sincosfit(x, y)

function S= sincosfit(x,y)

n=length(x);

m=length(y);

if(n~=m)

    disp(' Có loi');

    disp(' Yêu cau 2 vector cùng co!!!');

else

    A=[sum(x.*x) sum(x.*cos(x)) sum(x.*sin(x));

        sum(x.*cos(x)) sum(cos(x).*cos(x)) sum(sin(x).*cos(x));

        sum(x.*sin(x)) sum(sin(x).*cos(x)) sum(sin(x).*sin(x))];

    B=[sum(x.*y) sum(cos(x).*y) sum(sin(x).*y)]';

    S=A\B;

end

5.      Tính hệ số a và b của quan hệ hàm y=ae^bx – [a,b] = ExpFit(x, y)

 function [a,b]=ExpFit(x,y)

n=length(x);

if length(y)~=n

    disp('error using ==> ExpFit');

    disp('x,y must be the some size');

    a=NaN*one(n,1);

else

    Y=log(y);

    a11=sum(x.*x);

    a12=sum(x);

    b1=sum(x.*Y);

    b2=sum(Y);

    A=[a11 a12;a12 n];B=[b1;b2];

    C=A\B;

    b=C(1,1);

    a=exp(C(2,1));

end

 B – Hàm nội trú

Bài 1:tìm xấp xỉ các hệ số của đa thức P(x) bậc 3 tại X = 1:0.2:3

>> x=[1 1.5 2 2.5 3 3.5];

>> y=[1.2341 3.9242 2.4563 -0.2224 -1.3215 0.5506];

>> p=polyfit(x,y,3)//tính hệ số của đa thức xấp xỉ hàm

 p =

     3.2605  -22.1954   44.9958  -24.7762

 >> X=[1:0.2:3];

>> Y=polyval(p,X) // tính giá trị của đa thức có hệ số p

Bài 2:tính tương tự bài 1

bài 3: tính xấp xỉ hàm bằng phương pháp spline bậc 3

>> x=[1 1.5 2 2.5 3 3.5];

>> y=[-2.95001 -2.90250 -1.00020 2.75754 8.37002 15.83752];

>> xx=[1:0,1:3];

>> yy=spline(x,y,xx)

 yy =

    -2.9500   -1.0002    8.3700

Bài 4: tương tự bài 3 với xx=[1.25]

bài 5:dùng ma trận pascal,đưa ra màn hình vector hệ số của khai triển nhị thức newton

>> A=pascal(10);

>> B=A(10,:)

bài 6: tính vector hệ số của đa thức nội suy bậc 5 bằng cách sử dụng ma trận Vandermomde

>> x=[1 1.5 2 2.5 3 3.5];

>> y=[-1.3065;-1.12320;-1.00020;2.75754;8.37002;15.83752];

>> p=vander(x)\y

 p =

     1.9348

  -22.9975

  105.4485

 -227.3483

  229.1974

  -87.5413

Bài 7: hệ số của tổng ,tich,thương và phần dư phép chia cho 2 tương ứng p,q,s

>> a=[5 12 0 -4 3 0 0 0 -5 0 -10];

>> b=[0 0 -3 8 0 6 2 3 0 -11 -2];

>> p=a+b

 p =

      5    12    -3     4     3     6     2     3 -5   -11   -12

>> tich=conv(a,b)

tich =

  0     0   -15     4    96    42    41    63    12 -45  -133   -55    74  -135   -16   -75   -20    25

 10   110    20

 >> [q,r]=deconv(a,b)

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

Tags: #leez