Chương 5: Nội suy và xấp xỉ hàm

Màu nền
Font chữ
Font size
Chiều cao dòng

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: Truyen2U.Pro

#leez