切比雪夫多項式擬合


 

 

 

 

切比雪夫多項式擬合,個人理解就是用其可以來擬合一個函數,如下面例子中x為1,2,3,4時,對應的y為1,3,5,4,我們用契比雪夫多項式擬合來表示這樣的一個函數。

 

 例子:

import numpy.polynomial.chebyshev as chebyshev
import numpy as np
import numpy.linalg as linalg


x = np.array([1, 2, 3, 4])
y = np.array([1, 3, 5, 4])


deg = len(x) - 1
A = chebyshev.chebvander(x, deg)


print(A, "# A")
c = linalg.solve(A, y)
print(c,"# c")
for v in x:
        print( v, np.polynomial.Chebyshev(c)(v),"#p(%d)" % v)

 

 

結果:

 

 

 

 

 -----------------------------------------------------------------------------------------------------------

 

 

例子2:

根據輸入x,擬合函數 cos(x)

import numpy.polynomial.chebyshev as chebyshev
import numpy as np
import numpy.linalg as linalg

x = np.linspace(0,1,10)
y = np.cos(x)



deg = len(x) - 1
A = chebyshev.chebvander(x, deg)


print(A, "# A")
c = linalg.solve(A, y)
print(c,"# c")
print("x值\t", "擬合的y值\t", "實際的y值\t")
for v in x:
        print( v, np.polynomial.Chebyshev(c)(v), np.cos(v))

 

結果:

 

 

 

 

 

 

 

=====================================================

 

參考:

http://liao.cpython.org/scipy09/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM