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.

Một suy nghĩ 1 thoughts on “Thuật toán nội suy đa thức

  1. Pingback: Tấn công Ngày sinh (Birthday attack) | Chuyên toán Thái Phiên

Bình luận về bài viết này