Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

polyval

설명

예제

y = polyval(p,x)x의 각 점에서 다항식 p를 계산합니다. 인수 p는 길이가 n+1인 벡터이며, 이 벡터의 요소는 n차 다항식의 계수이며 다항식의 차수를 기준으로 내림차순으로 정렬되어 있습니다.

p(x)=p1xn+p2xn1+...+pnx+pn+1.

p의 다항식 계수는 polyint, polyder, polyfit과 같은 함수에 의해 다양한 목적으로 계산될 수 있으며, 계수에 대해 임의의 벡터를 지정할 수 있습니다.

행렬 방식으로 다항식을 계산하려면 polyvalm을 사용하십시오.

예제

[y,delta] = polyval(p,x,S)polyfit으로 생성되는 선택적 출력 구조체 S를 사용하여 오차 추정값을 생성합니다. deltap(x)x에 대한 향후 관측값을 예측할 때 사용되는, 표준 오차에 대한 추정값입니다.

예제

y = polyval(p,x,[],mu) 또는 [y,delta] = polyval(p,x,S,mu)polyfit으로 생성되는 선택적 출력값 mu를 사용하여 데이터를 정규화합니다. mu(1)mean(x)이고, mu(2)std(x)입니다. 이러한 값을 사용하여 polyvalx의 중심을 0에 두고 단위 표준편차를 갖도록 스케일링합니다.

x^=xx¯σx.

이 정규화 변환은 다항식의 수치적 속성을 향상시킵니다.

예제

모두 축소

x=5,7,9에서 다항식 p(x)=3x2+2x+1을 계산합니다. 다항식 계수는 벡터 [3 2 1]로 표현될 수 있습니다.

p = [3 2 1];
x = [5 7 9];
y = polyval(p,x)
y = 1×3

    86   162   262

정적분 계산하기

I=-13(3x4-4x2+10x-25)dx.

다항식 피적분 함수 3x4-4x2+10x-25를 표현하는 벡터를 만듭니다. x3 항이 없으므로 계수는 0입니다.

p = [3 0 -4 10 -25];

polyint에서 적분 상수 0을 사용하여 다항식을 적분합니다.

q = polyint(p)
q = 1×6

    0.6000         0   -1.3333    5.0000  -25.0000         0

적분 한계에서 q를 계산하여 적분의 값을 구합니다.

a = -1;
b = 3;
I = diff(polyval(q,[a b]))
I = 49.0667

데이터 점 집합에 선형 모델을 피팅하고 95% 예측 구간의 추정값을 포함하는 결과를 플로팅합니다.

샘플 데이터 점 (x,y)로 구성된 벡터를 몇 개 만듭니다. polyfit을 사용하여 1차 다항식을 데이터에 피팅합니다. 선형 피팅의 계수와 오차 추정값 구조체를 반환하는 2개의 출력값을 지정합니다.

x = 1:100; 
y = -0.3*x + 2*randn(1,100); 
[p,S] = polyfit(x,y,1); 

x의 점에서의 p의 1차 다항식 피팅을 계산합니다. polyval이 표준 오차의 추정값을 계산하도록 오차 추정값 구조체를 세 번째 입력값으로 지정합니다. 표준 오차 추정값이 delta에 반환됩니다.

[y_fit,delta] = polyval(p,x,S);

원래 데이터, 선형 피팅, 그리고 95% 예측 구간 y±2Δ를 플로팅합니다.

plot(x,y,'bo')
hold on
plot(x,y_fit,'r-')
plot(x,y_fit+2*delta,'m--',x,y_fit-2*delta,'m--')
title('Linear Fit of Data with 95% Prediction Interval')
legend('Data','Linear Fit','95% Prediction Interval')

Figure contains an axes. The axes with title Linear Fit of Data with 95% Prediction Interval contains 4 objects of type line. These objects represent Data, Linear Fit, 95% Prediction Interval.

1750년에서 2000년 사이의 인구 데이터 테이블을 만들고 데이터 점을 플로팅합니다.

year = (1750:25:2000)';
pop = 1e6*[791 856 978 1050 1262 1544 1650 2532 6122 8170 11560]';
T = table(year, pop)
T=11×2 table
    year       pop   
    ____    _________

    1750     7.91e+08
    1775     8.56e+08
    1800     9.78e+08
    1825     1.05e+09
    1850    1.262e+09
    1875    1.544e+09
    1900     1.65e+09
    1925    2.532e+09
    1950    6.122e+09
    1975     8.17e+09
    2000    1.156e+10

plot(year,pop,'o')

Figure contains an axes. The axes contains an object of type line.

polyfit을 3개의 출력값과 함께 사용하고, 문제의 수치적 속성 향상을 위해 정규화를 사용하여 5차 다항식을 피팅합니다. polyfityear의 데이터 중심을 0에 두고 표준편차 1을 갖도록 스케일링합니다. 이를 통해 피팅 계산 시 조건이 나쁜 방데르몽드 행렬(Vandermonde Matrix)을 방지할 수 있습니다.

[p,~,mu] = polyfit(T.year, T.pop, 5);

polyval을 4개의 입력값과 함께 사용하여 스케일링된 연도 (year-mu(1))/mu(2)에 대해 p를 계산합니다. 원래 연도에 대해 결과를 플로팅합니다.

f = polyval(p,year,[],mu);
hold on
plot(year,f)
hold off

Figure contains an axes. The axes contains 2 objects of type line.

입력 인수

모두 축소

다항식 계수로, 벡터로 지정됩니다. 예를 들어, 벡터 [1 0 1]은 다항식 x2+1을 나타내고 벡터 [3.13 -2.21 5.99]는 다항식 3.13x22.21x+5.99를 나타냅니다.

자세한 내용은 다항식을 만들고 계산하기 항목을 참조하십시오.

데이터형: single | double
복소수 지원 여부:

쿼리 점으로, 벡터로 지정됩니다. polyvalx에 포함된 점에서 다항식 p를 실행하고 대응하는 함수 값을 y에 반환합니다.

데이터형: single | double
복소수 지원 여부:

오차 추정값 구조체입니다. 이 구조체는 [p,S] = polyfit(x,y,n)의 선택적 출력값으로, 오차 추정값을 구하기 위해 사용할 수 있습니다. S는 다음 필드를 포함합니다.

필드설명
Rx의 방데르몽드 행렬(Vandermonde Matrix)에 대한 QR 분해의 삼각 인수
df자유도
normr잔차의 노름(Norm)

y의 데이터가 확률적 데이터인 경우 p의 공분산 행렬 추정값은 (Rinv*Rinv')*normr^2/df입니다. 여기서 RinvR의 역행렬입니다.

정규화 값으로, 요소를 2개 가진 벡터로 지정됩니다. 이 벡터는 [p,S,mu] = polyfit(x,y,n)의 선택적 출력값으로, 다항식 p의 피팅 및 실행의 수치적 속성을 향상시키는 데 사용할 수 있습니다. 값 mu(1)mean(x)이고, mu(2)std(x)입니다. 이러한 값은 x에서 쿼리 점 중심을 0에 두고 단위 표준편차를 적용하는 데 사용됩니다.

스케일링된 점 (x - mu(1))/mu(2)에서 p를 실행하도록 mu를 지정합니다.

출력 인수

모두 축소

함수 값으로, 쿼리 점 x와 같은 크기를 갖는 벡터로 반환됩니다. 이 벡터는 x의 각 점에서 다항식 p를 실행한 결과를 포함합니다.

예측에 대한 표준 오차로, 쿼리 점 x와 같은 크기를 갖는 벡터로 반환됩니다. 일반적으로 구간 y ± Δ는 다량의 샘플에 대한 향후 관측값의 경우 대략 68% 예측 구간에 대응하고, y ± 2Δ는 대략 95% 예측 구간에 대응합니다.

p의 계수가 polyfit으로 구한 최소제곱해 추정값이고 polyfit에 대한 데이터 입력값의 오차가 독립적이며 등분산 정규분포를 이루는 경우 y ± Δ는 최소 50% 예측 구간입니다.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

R2006a 이전에 개발됨