Đánh giá đa điểm | Nội suy
Đa điểm giá trị của đa thức
Mô tả
Cho đa thức \(f\left(x\right)\) và \(n\) điểm \(x_{1},x_{2},\dots,x_{n}\), hãy tính
Lời giải
Dùng chia để trị để giảm kích thước bài toán.
Chia các điểm thành hai phần:
Xây đa thức
thì \(\forall x\in X_{0}:g_{0}\left(x\right)=0\).
Biểu diễn \(f\left(x\right)\) dưới dạng \(g_{0}\left(x\right)Q\left(x\right)+f_{0}\left(x\right)\), tức:
Suy ra với \(\forall x\in X_{0}\): \(f\left(x\right)=g_{0}\left(x\right)Q\left(x\right)+f_{0}\left(x\right)=f_{0}\left(x\right)\); tương tự cho \(X_{1}\).
Như vậy kích thước giảm một nửa, có thể dùng chia để trị + lấy modulo đa thức.
Độ phức tạp
Nội suy nhanh đa thức
Mô tả
Cho tập \(n+1\) điểm
Hãy tìm đa thức bậc \(n\) là \(f\left(x\right)\) sao cho \(\forall\left(x,y\right)\in X:f\left(x\right)=y\).
Lời giải
Xét công thức nội suy Lagrange
Đặt \(M(x) = \prod_{i=1}^n (x - x_i)\), theo định lý L'Hôpital:
Do đó
Ta dùng chia để trị để tính hệ số của \(M(x)\), rồi dùng đa điểm giá trị trong \(O(n\log^2 n)\) để tính các \(M'(x_i)\).
Đặt \(v_i = \frac{y_i}{M'(x_i)}\), tiếp theo tính \(f(x)\). Với \(n=1\), có \(f(x) = v_1, M(x) = x - x_1\). Nếu không, đặt
Suy ra \(f(x) = f_0(x)M_1(x) + f_1(x)M_0(x), M(x) = M_0(x)M_1(x)\), vì vậy có thể chia để trị, độ phức tạp là \(O(n\log^2 n)\)
Last updated on this page:, Update history
Found an error? Want to help improve? Edit this page on GitHub!
Contributors to this page:OI-wiki
All content on this page is provided under the terms of the CC BY-SA 4.0 and SATA license, additional terms may apply