zoukankan      html  css  js  c++  java
  • 【数论】拉格朗日插值

    (n) 次多项式定义为 :(f(x) = a_nx^n + a_{n-1}x^{n-1} + a_{n-2}x^{n-2} + cdots + a_0)

    给出 (n + 1) 个点 ((x_i, y_i)),表示 (f(x_i)=y_i),要求求出 (f(t))

    做法 1:

    高斯消元。

    我们把这 (n + 1) 个点都写出来:

    [left{ egin{aligned} a_nx_1^n + a_{n-1}x_1^{n-1} + a_{n-2}x_1^{n-2}+cdots+a_0 = y_1 ~~~~ \ a_nx_2^n + a_{n-1}x_2^{n-1} + a_{n-2}x_2^{n-2}+cdots+a_0 = y_2 ~~~~ \ cdots ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \ a_nx_{n+1}^n + a_{n-1}x_{n+1}^{n-1} + a_{n-2}x_{n+1}^{n-2}+cdots+a_0 = y_{n+1} \ end{aligned} ight. ]

    我们把 (a_n, a_{n-1}, cdots, a_0) 看作未知量,把 (x,y) 看作已知量,这样就可以高斯消元进行求解,解出 (a_n,a_{n-1},cdots,a_0)

    时间复杂度:(O(n^3))

    做法 2:

    拉格朗日插值。

    我们从二次多次项入手,我们给出 (3) 个点,((x_1, y_1), (x_2, y_2), (x_3,y_3))

    可以列出方程组:

    [left{ egin{aligned} a_2x_1^2 + a_1x_1^1+a_0 = y_1 \ a_2x_2^2 + a_1x_2^1+a_0 = y_2 \ a_2x_3^2 + a_1x_3^1+a_0 = y_3 \ end{aligned} ight. ]

    可以使用高斯消元来做,这里我们换一种思路,我们构造三个二次函数,然后相加得到我们要的函数。

    构造函数

    [f_1(x)=left{ egin{aligned} 1 && (x=x_1) \ 0 && (x ot=x_1) \ end{aligned} ight. , f_2(x)=left{ egin{aligned} 1 && (x=x_2) \ 0 && (x ot=x_2) \ end{aligned} ight. ,f_3(x)=left{ egin{aligned} 1 && (x=x_3) \ 0 && (x ot=x_3) \ end{aligned} ight. ]

    那么当 (f(x)=y_1f_1(x)+y_2f_2(x)+y_3f_3(x)),此时就满足 (x) 的取值为 (x_1,x_2,x_3) 时,(f(x)) 的取值就为 (y_1,y_2,y_3)

    现在考虑 (n) 次多项式,给出 (n + 1) 个点:((x_1, y_1), (x_2, y_2),cdots,(x_{n + 1}, y_{n + 1}))

    我们考虑构造 (f_1 sim f_{n+1})

    (f_i(k)=prodlimits_{j=1,j ot=i}^{n+1}dfrac{k-x_j}{x_i-x_j})(f_i(k)) 满足在 (k=x_i) 时函数值为 (1),在 (k=x_j(j ot= i)) 时函数值为 (0)

    那么多项式 (f(k)=sumlimits_{i=1}^{n+1}y_if_i(k)=sumlimits_{i=1}^{n+1}y_iprodlimits_{j=0,j ot=i}^ndfrac{k-x_j}{x_i-x_j}) 就满足当 (k)(x_1, x_2, cdots, x_{n+1})(f(k)) 的取值就为 (y_1, y_2, cdots, y_{n + 1})

    如果我们只要求解特定函数值,我们可以使用逆元来代替除法。

    时间复杂度:(O(n^2))

    (x_a)(a) 有关系时,例如 (x_a=a) 时,可以使用前缀乘来优化,时间复杂度:(O(n))

  • 相关阅读:
    struts2 action 之间的跳转
    json格式字符串用jquery.parseJSON()出现的问题 Uncaught SyntaxError: Unexpected token ' Uncaught SyntaxError: Unexpected number (index)
    转:Java生成带有二维码图片的word文档
    PowerDesigner 15 进行 数据库反转到 数据库模型
    模型方案参数更改 对比栏入选模型方案 图表效果对比 已不在项目中使用
    久违的博客园
    [转]不要if else的编程
    希望
    eclipse修改源码导出jar包
    compareTo 比较器
  • 原文地址:https://www.cnblogs.com/chzhc-/p/13519181.html
Copyright © 2011-2022 走看看