(91) 350-9520 support@omarine.org M-F: 7 AM - 7 PM; Weekends: 9 AM - 5 PM

Thuật toán nội suy đa thức

Capt. Phạm Thành Tuyên

Xin tặng các bạn trong ngành tin một chương trình con khả chạy nằm trong phần mềm Loading Wizard 2011 từ phiên bản 4.0. Đó là một hàm nội suy đa thức kiểu Ayken, rất đơn giản.

double LookAyken(double ValueIn, double* columnIn, double* columnOut, int count)

{

      double sum=0;

      int i,j;

      for(i=0; i<count; i++)

      {

            // x ≠ xi ∀ i in [0,n], else return yi

            if(ValueIn==columnIn[i])

                  return columnOut[i];

            double Wc= 1, Wi=1;

            for(j=0; j<count; j++)

            {

                  if(j!=i)

                  {

                        Wc*= (ValueIn-columnIn[j]);

                        Wi*=(columnIn[i]-columnIn[j]);

                  }

            }

            sum+= (columnOut[i]*Wc/Wi);

      }

      return sum;

}

Hàm lấy 4 tham số với ValueIn có vai trò của x, columnIn là con trỏ đến một mảng các giá trị xi, columnOut là con trỏ đến một mảng các giá trị yi, số cặp (xi,yi) là count. Hàm trả về giá trị cần tìm ứng với giá trị vào ValueIn. Thuật toán thật đơn giản, tôi đã tranh thủ viết đoạn mã này khi đang cùng với hoa tiêu nước ngoài điều động tàu vào cảng.

Advertisements

1 thought on “Thuật toán nội suy đa thức

Gửi phản hồi

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

%d bloggers like this: