1. 程式人生 > >【拉格朗日插值法求自然數冪和】

【拉格朗日插值法求自然數冪和】

求自然數冪和:

1<=n<=10^5,1<=k<=10^5 用快速冪;

1<=n<=10^9,1<=k<=10^6 用拉格朗日插值法;

1.什麼是拉格朗日插值法

拉格朗日插值法,就是對於給定的幾個點找到關於這幾個點的函式;

以下是拉格朗日插值法的具體使用:

對某個多項式函式,已知有給定的k + 1個取值點:

{\displaystyle (x_{0},y_{0}),\ldots ,(x_{k},y_{k})}(x_{0},y_{0}),\ldots ,(x_{k},y_{k})

其中{\displaystyle x_{j}}x_{j}對應著自變數的位置,而{\displaystyle y_{j}}y_{j}對應著函式在這個位置的取值。

假設任意兩個不同的x

j都互不相同,那麼應用拉格朗日插值公式所得到的拉格朗日插值多項式為:

{\displaystyle L(x):=\sum _{j=0}^{k}y_{j}\ell _{j}(x)}L(x):=\sum _{{j=0}}^{{k}}y_{j}\ell _{j}(x)

其中每個{\displaystyle \ell _{j}(x)}\ell _{j}(x)拉格朗日基本多項式(或稱插值基函式),其表示式為:

{\displaystyle \ell _{j}(x):=\prod _{i=0,\,i\neq j}^{k}{\frac {x-x_{i}}{x_{j}-x_{i}}}={\frac {(x-x_{0})}{(x_{j}-x_{0})}}\cdots {\frac {(x-x_{j-1})}{(x_{j}-x_{j-1})}}{\frac {(x-x_{j+1})}{(x_{j}-x_{j+1})}}\cdots {\frac {(x-x_{k})}{(x_{j}-x_{k})}}.}
\ell _{j}(x):=\prod _{{i=0,\,i\neq j}}^{{k}}{\frac  {x-x_{i}}{x_{j}-x_{i}}}={\frac  {(x-x_{0})}{(x_{j}-x_{0})}}\cdots {\frac  {(x-x_{{j-1}})}{(x_{j}-x_{{j-1}})}}{\frac  {(x-x_{{j+1}})}{(x_{j}-x_{{j+1}})}}\cdots {\frac  {(x-x_{{k}})}{(x_{j}-x_{{k}})}}.
[3]

拉格朗日基本多項式{\displaystyle \ell _{j}(x)}\ell _{j}(x)的特點是在{\displaystyle x_{j}}x_{j}上取值為1,在其它的點{\displaystyle x_{i},\,i\neq j}x_{i},\,i\neq j上取值為0

舉例

假設有某個二次多項式函式{\displaystyle f}f,已知它在三個點上的取值為:

  • {\displaystyle f(4)=10}f(4)=10
  • {\displaystyle f(5)=5.25}f(5)=5.25
  • {\displaystyle f(6)=1}f(6)=1

要求{\displaystyle f(18)}f(18)的值。

首先寫出每個拉格朗日基本多項式:

{\displaystyle \ell _{0}(x)={\frac {(x-5)(x-6)}{(4-5)(4-6)}}}
\ell _{0}(x)={\frac  {(x-5)(x-6)}{(4-5)(4-6)}}
{\displaystyle \ell _{1}(x)={\frac {(x-4)(x-6)}{(5-4)(5-6)}}}\ell _{1}(x)={\frac  {(x-4)(x-6)}{(5-4)(5-6)}}
{\displaystyle \ell _{2}(x)={\frac {(x-4)(x-5)}{(6-4)(6-5)}}}\ell _{2}(x)={\frac  {(x-4)(x-5)}{(6-4)(6-5)}}

然後應用拉格朗日插值法,就可以得到{\displaystyle p}p的表示式({\displaystyle p}p為函式{\displaystyle f}f的插值函式):

{\displaystyle p(x)=f(4)\ell _{0}(x)+f(5)\ell _{1}(x)+f(6)\ell _{2}(x)}p(x)=f(4)\ell _{0}(x)+f(5)\ell _{1}(x)+f(6)\ell _{2}(x)
{\displaystyle .\,\,\,\,\,\,\,\,\,\,=10\cdot {\frac {(x-5)(x-6)}{(4-5)(4-6)}}+5.25\cdot {\frac {(x-4)(x-6)}{(5-4)(5-6)}}+1\cdot {\frac {(x-4)(x-5)}{(6-4)(6-5)}}}.\,\,\,\,\,\,\,\,\,\,=10\cdot {\frac  {(x-5)(x-6)}{(4-5)(4-6)}}+5.25\cdot {\frac  {(x-4)(x-6)}{(5-4)(5-6)}}+1\cdot {\frac  {(x-4)(x-5)}{(6-4)(6-5)}}
{\displaystyle .\,\,\,\,\,\,\,\,\,\,={\frac {1}{4}}(x^{2}-28x+136)}.\,\,\,\,\,\,\,\,\,\,={\frac  {1}{4}}(x^{2}-28x+136)

此時代入數值{\displaystyle \ 18}\ 18就可以求出所需之值:{\displaystyle \ f(18)=p(18)=-11}\ f(18)=p(18)=-11

注意:(x_{0},y_{0}),\ldots ,(x_{k},y_{k})共k+1個取值點,根據拉格朗日插值法可以得到關於這k+1個點的k次多項式


2.拉格朗日插值法怎麼求自然數冪和

 求自然數冪和:

當k=1時,自然數冪和的公式為n(n+1)/2,為2次多項式,也就是k+1次多項式;

若k=k呢,則自然數冪和的公式便為k+1次多項式,那麼需要得到k+2個點來得到這個k+1次多項式哦;

首先如果得知了n=0,1,,k+1處的答案f(n),那麼給定的n處的答案可以寫成:

f(n)=i=0k+1f(i)(n0)(n1)[n(i1)][(n(i+1)][n(k+1)](i0)(i1)[i(i1)][(i(i+1)][i(k+1)]=i=0k+1f(i)i1j=0(nj)k+1j=i+1(nj)i!(1)ki+1(k+1i)!=i=0k+1(1)ki+1f(i)i1j=0(nj)k+1j=i+1(nj)i!(k

相關推薦

自然數

求自然數冪和: 1<=n<=10^5,1<=k<=10^5 用快速冪; 1<=n<=10^9,1<=k<=10^6 用拉格朗日插值法; 1.什麼是拉格

51nod 1258 序列求和 V4 自然數

題意 T(n) = n^k,S(n) = T(1) + T(2) + …… T(n)。給出n和k,求S(n)。 例如k = 2,n = 5,S(n) = 1^2 + 2^2 + 3^2 + 4^2

[bzoj5339][TJOI2018]教科書般的褻瀆

# include <bits/stdc++.h> # define ll long long # define inf 0x3f3f3f3f # define N 110 using namespace std; int read

對某個多項式函式,已知有給定的k + 1個取值點: (x0,y0),…,(xk,yk)(x0,y0),…,(xk,yk) 其中xjxj對應著自變數的位置,而yjyj對應著函式在這個位置的取值。

及應用

oci cin app .com dmg npe info sina gin 3man6h1yg巫http://shufang.docin.com/sina_6355780928 7DMg布62夏aq撂儼8秤http://www.docin.com/app/user/use

說明 -1 需要 插值 是什麽 col pre rac div   給定 $n$ 個點 $(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)$ , 其中 $x_1, x_2, ..., x_n$ 互不相等, 構造一個最高次不超過 $n-1$ 的多

4559[JLoi2016]成績比較 容斥+

mem otto spa ack input mes mod 只需要 rip 4559: [JLoi2016]成績比較Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 261 Solved: 165[Submit][Statu

Codeforces 622F The Sum of the k-th Powers ( 自然數 )

n-1 power HERE sig class text name while pow 題目鏈接 題意 : 就是讓你求個自然數冪和、最高次可達 1e6 、求和上限是 1e9 分析 : 題目給出了最高次 k = 1、2、3 時候的自然數冪和求和公式 可以發現求和公式的

Python實現

erp 拉格朗日 input 估計 while 關系 NPU init for 已知sinx的一組x,y對應關系,用拉格朗日插值法估計sin(0.3367)的值. x x0.32 0.34 0.36 y 0.314567 0.333487 0.352274

菜鷄日記——《Python資料分析與挖掘實戰》實驗6-1

實驗6-1 用拉格朗日插值法 題目描述:用拉格朗日插值法對missing_data.xls中表格的空值進行填補。 # p1, lab6 # Fill all of the null values with Lagrange's interpolation # Data file name i

快速排序 二分

快速排序法(泛型) static void Main(string[] args) { Console.WriteLine("請輸入待排序數列(以\",\"分割):"); string _s = Console.ReadLine(); string[] _

學習

有幾個很好的部落格: https://www.cnblogs.com/ECJTUACM-873284962/p/6833391.html   洛谷模板: // luogu-judger-enable-o2 #include<algorithm> #include<io

概述

在看zk-SNARK演算法。這個沒接觸過,所以轉載百度文庫 一般地,若已知 在互不相同 n+1 個點  處的函式值  ( 即該函式過  這n+1個點),則可以考慮構造一個過這n+1 個點的、次數不超過n的多項式   ,使其滿足: 要估計任一點ξ,ξ≠xi,i=0,1

複習小計

拉格朗日插值法 概述 因為n次方的函式影象可以有n+1個點確定(比如說y=kx+b就只用兩個點確定,y=ax2+bx+c,只用三個點就可以確定),所以個n次方的方程給你n+1個x或者y就能確定這個方

bzoj 4162: shlw loves matrix II +矩陣乘法

題意 給定矩陣 M,請計算 M^n,並將其中每一個元素對 1000000007 取模輸出。 對於 100% 資料,滿足 n <= 2^10000;k <= 50; 0 <= Mij < 10^9 +7 分析 我們可以帶入k+1

HDU 4059 -容斥原理 +

http://acm.hdu.edu.cn/showproblem.php?pid=4059 題意: 給出n,n<=1e8 求1到n裡,所有與n互質的數的四次方和 在這裡直接考慮,1+....n^4 減去 所有與n不互質的數的4次方 首先我們分解n的質因子,不會很多

(程式碼實現及部分證明)

6來飛起 圖片的i=j?下面第二個應該為temp = temp / (xi - xj); #include "cstdio" const int MAXN = (int) 1e5 +

(圖文詳解)

對某個多項式函式,已知有給定的k + 1個取值點: 其中對應著自變數的位置,而對應著函式在這個位置的取值。 假設任意兩個不同的xj都互不相同,那麼應用拉格朗日插值公式所得到的拉格朗日插值多項式為: 其中每個為拉格朗日基本多項式(或稱插值基函式),其表示式為: [3] 拉格朗日基本多項式的

對資料探勘中缺失處理

本文參考《Python資料分析與挖掘實戰》一書。 對於資料探勘的缺失值的處理,應該是在資料預處理階段應該首先完成的事,缺失值的處理一般情況下有三種方式:1.刪掉缺失值資料。2不對其進行處理 3.利用插補法對資料進行補充第一種方式是極為不可取的,如果你的樣本數夠多,刪掉資料較少