Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 데이터에 대한 Legendre 급수의 최소 제곱 맞추기

<시간/>

데이터에 대한 Legendre 시리즈의 최소 제곱 맞춤을 얻으려면 Pythonnumpy에서 legendre.legfit() 메서드를 사용하십시오. 이 메서드는 낮은 것에서 높은 순서로 르장드르 계수를 반환합니다. y가 2차원이면 y의 k열에 있는 데이터에 대한 계수는 k열에 있습니다.

매개변수 x는 M 샘플(데이터) 점(x[i], y[i])의 x 좌표입니다. 매개변수 yare는 샘플 포인트의 y 좌표입니다. 동일한 x좌표를 공유하는 여러 샘플 포인트 세트는 열당 하나의 데이터 세트를 포함하는 2차원 배열을 y에 대해 전달하여 polyfit에 대한 한 번의 호출로 (독립적으로) 맞출 수 있습니다.

매개변수 deg는 피팅 다항식의 차수입니다. deg가 단일 정수인 경우 deg'항까지 포함하여 모든 항이 피팅에 포함됩니다. 매개변수 rcond는 피팅의 상대 조건 번호입니다. 가장 큰 특이값에 비해 rcond보다 작은 특이값은 무시됩니다. 기본값은 len(x)*eps이며, 여기서 eps는 플랫폼의 float 유형의 상대 정밀도이며 대부분의 경우 약 2e-16입니다. 매개변수 full은 반환값의 특성을 결정하는 스위치입니다. False(기본값)인 경우 계수만 반환됩니다. True이면 특이값 분해의 진단 정보도 반환됩니다.

매개변수 w는 가중치입니다. None이 아닌 경우 가중치 w[i]는 x[i]에서 제곱되지 않은 잔차 y[i]-y_hat[i]에 적용됩니다. 이상적으로는 곱 w[i]*y[i]의 오차가 모두 동일한 분산을 갖도록 가중치가 선택됩니다. 역분산 가중치를 사용할 때 w[i] =1/sigma(y[i])를 사용합니다. 기본값은 없음입니다.

단계

먼저 필요한 라이브러리를 가져옵니다 -

numpy를 np로 가져오기 from numpy.polynomial import legendre를 L로

x 좌표 -

x =np.linspace(-1,1,51)

x 좌표 표시 -

print("X 좌표...\n",x)

y 좌표 -

y =x**3 - x + np.random.randn(len(x))print("\nY 좌표...\n",y)

데이터에 대한 Legendre 시리즈의 최소 제곱 맞춤을 얻으려면 Pythonnumpy에서 legendre.legfit() 메서드를 사용하십시오. 이 메서드는 낮은 것에서 높은 순서로 르장드르 계수를 반환합니다. y가 2차원이면 y의 k열에 있는 데이터에 대한 계수는 k열에 있습니다 -

c, 통계 =L.legfit(x,y,3,full=True)print("\n결과...\n",c)print("\n결과...\n",통계) 

import numpy as npfrom numpy.polynomial import legendre as L# The x-coordinatex =np.linspace(-1,1,51)# Display the x-coordinateprint("X Coordinate...\n", x)# y 좌표 =x**3 - x + np.random.randn(len(x))print("\nY Coordinate...\n",y)# 최소 제곱을 맞추려면 Legendre 시리즈를 데이터에 사용하려면 Python numpyc에서 legendre.legfit() 메서드를 사용하십시오. stats =L.legfit(x,y,3,full=True)print("\nResult...\n",c)print( "\n결과...\n",통계)

출력

X좌표... [-1. -0.96 -0.92 -0.88 -0.84 -0.8 -0.76 -0.72 -0.68 -0.64 -0.6 -0.56 -0.52 -0.48 -0.44 -0.4 -0.36 -0.32 -0.28 -0.24 -0.20 -0.24 -0.2 0.04 0.08 0.12 0.16 0.2 0.24 0.28 0.32 0.36 0.4 0.44 0.64 0.84 0.88 0.76 0.80 0.88 0.92 0.96 1.] co-ordinates ... [-5.28795520E-02 -7.61252904E-03 7.35194215E-02 - 1.33072588E-01-1.21785636E + 00 7.75679385E-01 1.42872448E + 00 8.42872448E + 00 2.4966244E-01 2.4966798E-01 -2.6733258E-01 -2.67332869E-01 -7.85575928E-01 1.93333045E + 00 7.32492468E- 01 5.23576961E-01-1.91529521E + 00 -1.41434385E + 00 4.44787343E-01 3.81831261E-01 3.81831261E-01 1.20562789E + 00 1.0562789E + 00 1.01091575E-03 8.94334713E-01 1.22342199E + 00 9.52055370E- 01-2.4264820E-01 -9.7843455E-01 1.27468237E-01 9.39468237E-01 9.39489448E-01 1.08795136E + 00 2.31230197E + 00 1.9310197E + 00 1.931070197E-02 -6.13335407E-01 1.93170835E-01 -8.77958854E-01 -3.59868085e-01 4.31331759e-01 7.24929856e -01-01 -1.29623093E-01-129623093E + 00 4.13226024E-01-1.56644E-01 1.25043737E + 00 6.32386988E-01 -2.75716271E-01 8.80669895E-02 -3.2022556E-01] [0.29249467 -0.10521942 -0.24847572 -0.24847572 0.2010877] 결과 ... [배열 ([39.35467561]), 4, 어레이 ([1.0425003, 1.02126704, 1.02126704, 0.97827074, 0.95561139]), 1.1324274851176597E-14]