【問題描述】考慮[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...