計算方法 牛頓插值多項式

2021-10-05 19:21:02 字數 1601 閱讀 8898

【問題描述】考慮[0,4]內的函式y=f(x)=cos(x)。利用多個(4、5等)節點構造牛頓插值多項式。

【輸入形式】在螢幕上依次輸入在區間[0,4]內的乙個值x*,構造插值多項式後求其p(x*)值,和多個節點的x座標。

【輸出形式】輸出牛頓插值多項式係數向量,差商矩陣和p(x*)值(保留小數點後6位有效數字)。

【樣例1輸入】

0.30 1 2 3 4

【樣例1輸出】

[-0.01465683 0.23450012 -0.8492783 0.16973731 1. ]

[[ 1. 0. 0. 0. 0. ]

[ 0.54030231 -0.45969769 0. 0. 0. ]

[-0.41614684 -0.95644914 -0.24837572 0. 0. ]

[-0.9899925 -0.57384566 0.19130174 0.14655916 0. ]

[-0.65364362 0.33634888 0.45509727 0.08793184 -0.01465683]]

p4(0.3)=0.980699

【樣例1說明】輸入:x*為0.3,5個節點為(k, cos(k)),其中k = 0, 1, 2, 3, 4。

輸出:牛頓插值多項式係數向量,表示p4(x)=0.01466 x^4 + 0.2345 x^3 - 0.8493 x^2 + 0.1697 x + 1; 差商矩陣;當x*為0.3時,p4(0.3)值為0.980699

【評分標準】根據輸入得到的輸出準確

import math

import numpy as np

xx=float

(input()

)x=np.array(

input()

.split(

),dtype=

float)n=

len(x)

d=np.zeros(

(n,n)

)for i in

range(0

,n):

d[i][0

]=math.cos(x[i]

)for i in

range(1

,n):

for j in

range

(i,n)

: d[j]

[i]=

(d[j]

[i-1

]-d[j-1]

[i-1])

/(x[j]

-x[j-i]

)s=d[n-1]

[n-1

]for i in

range(1

,n):

s=np.polymul(s,np.poly1d([1

,-x[n-i-1]

]))+d[n-i-1]

[n-i-1]

print

(s.c)

print

(d)print

('p{}({})='

.format

(n-1

,xx,s(xx)))

'''''

0.30 1 2 3 4

'''''

實驗三 牛頓插值多項式

實驗三 牛頓插值多項式 實驗內容 天安門廣場公升旗的時間是日出的時刻,而降旗的時間是日落時分,根據天安門廣場管理委員會的公告,某年10月份公升降旗的時間如下 日期 1 15 22 公升旗 6 09 6 23 6 31 降旗 17 58 17 36 17 26 根據上述資料構造newton插值多項式,...

插值多項式例子

給定函式 ex 在區間 1,1 上的資料表如下 x 101 f x 0.3679 1.0000 2.7182f x 0.3679 1.0000 2.7182 給出 hermite 插值多項式,並計算其誤差。mathematica code create by zzw clear f,f1,a her...

lagrange插值多項式

簡潔版 hanshu input 請輸入函式f x s fprintf 請輸入差值區間最小值 n xmin input fprintf 請輸入差值區間最大值 n xmax input fprintf 請輸入等分份數 n n input fprintf 請輸入自變數x n xin input h xm...