Main Content

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

사용자 지정 선형 피팅

사용자 지정 선형 모델 정보

곡선 피팅 앱에서 사용자 지정 수식 피팅을 사용하여 고유의 선형 또는 비선형 수식을 정의할 수 있습니다. 사용자 지정 수식 피팅은 비선형 최소제곱 피팅 절차를 사용합니다.

사용자 지정 수식에서 사용자 지정 선형 수식을 정의할 수 있지만 비선형 피팅은 선형 최소제곱 피팅보다 덜 효율적이고 일반적으로 속도가 느립니다. 사용자 지정 수식에 대해 선형 최소제곱 피팅이 필요한 경우에는 대신 선형 피팅을 선택하십시오. 선형 모델은 항(비선형일 수 있음)의 일차 결합입니다. 선형 모델은 파라미터가 선형인 수식으로 정의됩니다.

사용자 지정 수식에 대해 선형 최소제곱 피팅이 필요한 경우에는 선형 피팅을 선택하십시오. 수식이 일련의 선형 함수로 표현될 수 있는지 여부를 잘 모르겠으면 대신 사용자 지정 수식을 선택하십시오. 대화형 방식으로 사용자 지정 수식 피팅 선택하기 항목을 참조하십시오.

대화형 방식으로 선형 피팅 사용자 지정 피팅 선택하기

  1. 곡선 피팅 앱의 X 데이터Y 데이터 목록에서 곡선 데이터를 선택합니다. 선형 피팅은 곡면이 아닌 곡선용이므로 곡선 데이터를 선택한 경우에만 모델 유형 목록에 선형 피팅이 표시됩니다.

    곡선 피팅 앱이 디폴트 다항식 피팅을 만듭니다.

  2. 모델 유형 목록에서 모델 유형을 다항식에서 선형 피팅으로 변경합니다.

    목록에서 선형 피팅을 선택하면 수식 예제가 표시됩니다.

  3. xy를 임의의 유효한 변수 이름으로 바꿀 수 있습니다.

  4. 아래쪽 상자에 수식 예제가 표시됩니다. 사용자 지정 일차항 편집 대화 상자에서 예제 항을 변경하고 고유한 수식을 정의하려면 편집을 클릭하십시오.

예제는 곡선 피팅 앱에서 사용자 지정 선형 르장드르 다항식 피팅하기 항목을 참조하십시오.

명령줄에서 선형 피팅 선택하기

선형 피팅 알고리즘을 사용하려면 fit 또는 fittype 함수에 대한 입력값으로 모델 항으로 구성된 셀형 배열을 지정하십시오. 항에 대한 표현식에는 계수를 포함하지 마십시오. 상수항이 있으면 셀형 배열의 해당 위치에서 '1'로 표현하십시오.

선형 모델이 다음 형식을 갖고

 coeff1 * term1 + coeff2 * term2 + coeff3 * term3 + ...
term1, term2 등에 계수가 나타나지 않도록 지정하려면 다음과 같이 문자열로 구성된 셀형 배열에 각 항이 계수 없이 지정된 셀형 배열을 사용하십시오.
LinearModelTerms = {'term1', 'term2', 'term3', ... }

  1. fittype에 입력해야 하는 선형 모델 항을 식별합니다. 예를 들어, 다음 모델은

    a*log(x) + b*x + c
    a, b, c에서 선형입니다. 모델에는 log(x), x, 1(c=c*1이므로)이라는 3개 항이 있습니다. 이 모델을 지정하려면 항으로 구성된 셀형 배열 LinearModelTerms = {'log(x)','x','1'}을 사용하십시오.

  2. 선형 모델 항으로 구성된 셀형 배열을 fittype 함수에 대한 입력값으로 사용합니다.

    linearfittype = fittype({'log(x)','x','1'})
    linearfittype = 
    
         Linear model:
         linearfittype(a,b,c,x) = a*log(x) + b*x + c

  3. 데이터를 불러온 후 fittypefit 함수에 대한 입력값으로 사용합니다.

    load census
    f = fit(cdate,pop,linearfittype)
    f = 
    
         Linear model:
         f(x) = a*log(x) + b*x + c
         Coefficients (with 95% confidence bounds):
           a =  -4.663e+04  (-4.973e+04, -4.352e+04)
           b =        25.9  (24.26, 27.55)
           c =   3.029e+05  (2.826e+05, 3.232e+05)
    또는 선형 모델 항으로 구성된 셀형 배열을 fit 함수에 대한 입력값으로 지정할 수도 있습니다.
    f = fit(x,z,{'log(x)','x','1'})

  4. 피팅과 데이터를 플로팅합니다.

    plot(f,cdate,pop)

예제는 명령줄에서 사용자 지정 선형 르장드르 다항식 피팅하기 항목을 참조하십시오.

사용자 지정 선형 르장드르 다항식 피팅하기

곡선 피팅 앱에서 사용자 지정 선형 르장드르 다항식 피팅하기

이 예제에서는 여러 사용자 지정 선형 수식을 사용하여 데이터를 피팅하는 방법을 보여줍니다. 생성된 데이터는 핵반응 12C(e,e'α)8Be를 기반으로 합니다. 수식은 르장드르 다항식 항의 합을 사용합니다.

12C개의 핵에서 124MeV의 전자가 흩뿌려진 실험을 살펴보겠습니다. 후속 반응에서는 알파 입자가 방출되어 잔류핵 8Be를 생성합니다. 방출된 알파 입자의 개수를 각도의 함수로 분석해 보면 12C의 핵 동특성과 관련된 특정 정보를 알아낼 수 있습니다. 다음은 반응 동역학입니다.

데이터는 10o부터 240o까지 10o씩 증가하는 Θα 값에 고체 상태 탐지기를 배치하여 수집되었습니다.

각도의 함수로 표현된 변수를 다음과 같은 르장드르 다항식으로 표현하는 것이 유용한 경우가 있습니다.

y(x)=n=0anPn(x)

여기서 Pn(x)는 n차 르장드르 다항식이고, x는 cos(Θα)이고, an은 피팅의 계수입니다. 르장드르 다항식을 생성하는 방법에 대한 정보는 legendre 함수를 참조하십시오.

알파 방출 데이터의 경우 이론적인 모델을 호출하여 핵 동특성에 직접 계수를 연결할 수 있습니다. 이에 더해, 이론적인 모델은 위에 나온 무한 합에 대한 제약 조건을 적용합니다. 반응의 각운동량을 살펴보면 짝수 항만 사용하는 4차 르장드르 다항식으로 데이터를 효과적으로 설명할 수 있을 것입니다.

르장드르 다항식은 다음과 같은 로드리게스 공식으로 생성할 수 있습니다.

Pn(x)=12nn!(ddx)n(x21)n

4차까지의 르장드르 다항식

n

Pn(x)

0

1

1

x

2

(1/2)(3x2– 1)

3

(1/2)(5x3 – 3x)

4

(1/8)(35x4 – 30x2 + 3)

이 예제에서는 짝수 항만 갖는 4차 르장드르 다항식을 사용하여 데이터를 피팅하는 방법을 보여줍니다.

y1(x)=a0+a2(12)(3x21)+a4(18)(35x430x2+3)

  1. 다음을 입력하여 12C 알파 방출 데이터를 불러옵니다.

    load carbon12alpha
    

    작업 공간에는 다음과 같은 2개의 새로운 변수가 있습니다.

    • angle은 10o부터 240o까지 10o씩 증가하는 각도(단위: 라디안)로 구성된 벡터입니다.

    • counts는 원시 알파 분자 개수로 구성된 벡터로, angle의 방출 각도에 대응됩니다.

  2. 다음을 입력하여 곡선 피팅 앱을 엽니다.

    cftool

  3. 곡선 피팅 앱에서 X 데이터Y 데이터에 대해 anglecounts를 선택하여 두 변수에 대한 디폴트 다항식 피팅을 만듭니다.

  4. 피팅 유형을 다항식에서 선형 피팅으로 변경하여 디폴트 사용자 지정 선형 피팅을 만듭니다.

    피팅 유형으로 사용자 지정 수식 대신 선형 피팅을 사용하는 이유는 르장드르 다항식은 예측 변수와 상수에만 종속되기 때문입니다. 모델에 대해 지정할 수식은 y1(x)입니다(이 절차의 시작 부분에서 주어진 수식임). angle은 단위가 라디안이므로 르장드르 항의 인수는 cos(Θα)로 주어집니다.

  5. 편집을 클릭하여 사용자 지정 일차항 편집 대화 상자에서 수식 항을 편집합니다.

    1. 계수 이름을 a2, a4, a0으로 변경합니다.

    2. a2을 다음으로 변경합니다.

      (1/2)*(3*cos(x)^2-1)

      항을 수정함에 따라 곡선 피팅 앱이 피팅을 업데이트합니다.

    3. a4을 다음으로 변경합니다.

      (1/8)*(35*cos(x)^4-30*cos(x)^2+3)

      곡선 피팅 앱에 피팅이 나타납니다.

  • 피팅 이름Leg4Even으로 바꿉니다.

  • 보기 > 잔차 플롯을 선택하여 잔차를 표시합니다.

    피팅은 데이터의 추세를 잘 따르는 것으로 보이며, 잔차는 무작위로 분포되어 있고 규칙적인 동작을 보이지 않는 것으로 보입니다.

  • 결과 창에서 수치적 피팅 결과를 봅니다. 각 계수의 값과 괄호 안의 신뢰한계를 살펴봅니다. 95% 신뢰한계는 a0(x) 및 a4(x)의 계수는 상당히 정확하다고 볼 수 있으나 a2(x)의 계수는 상대적으로 불확실성이 높음을 나타냅니다.

  • 피팅 > Leg4Even 복제를 선택하여 수정할 기존 르장드르 다항식 피팅의 복사본을 만듭니다.

    새 탭에 복제된 피팅이 나타납니다.

    알파 방출 데이터는 짝수 항만 갖는 4차 르장드르 다항식으로 가장 잘 설명된다는 이론적인 주장을 확인하기 위해, 이번에는 짝수 항과 홀수 항을 모두 사용하여 데이터를 피팅해 보겠습니다.

    y2(x)=y1(x)+a1x+a3(12)(5x33x)

  • 새로운 피팅의 이름을 Leg4EvenOdd로 바꿉니다.

  • 편집을 클릭하여 수식 항을 변경합니다. 사용자 지정 일차항 편집 대화 상자가 열립니다.

    다음과 같이 항을 편집하여 y2(x)로 주어진 모델을 피팅합니다.

    1. 홀수 르장드르 항이 추가되도록 + 버튼을 클릭하여 하나의 항을 두 번 추가합니다.

    2. 새로운 계수 이름을 a1a3으로 변경합니다.

    3. a1을 다음으로 변경합니다.

      cos(x)

    4. a3을 다음으로 변경합니다.

      pro(1/2)*(5*cos(x)^3-3*cos(x))

  • 곡선 피팅 앱에 플로팅된 새로운 피팅을 살펴보고, 결과 창에서 수치 결과를 봅니다.

    홀수 르장드르 계수(a1a3)는 값이 작고 신뢰한계가 영을 포함하기 때문에 피팅을 단순화하기 위해 제거할 후보가 된다는 사실을 알 수 있습니다. 이 결과는 홀수 르장드르 항은 피팅에 유의미하게 기여하지 않으며 이전 피팅에서의 짝수 르장드르 항이 실질적으로 변경되지 않았음을 보여줍니다. Leg4Even 피팅이라는 첫 번째 모델 선택이 최적의 선택이었음을 알 수 있습니다.

  • 피팅을 나란히 비교하기 위해 좌/우 타일을 선택합니다. 곡선 피팅 앱의 보기 메뉴에서 피팅 설정과 결과 창을 숨기면 플롯만 표시할 수 있습니다.

명령줄에서 사용자 지정 선형 르장드르 다항식 피팅하기

곡선 피팅 앱에서 만든 모델을 명령줄에서 피팅해 봅니다.

  1. 선형 피팅 알고리즘을 사용하려면 fittype 함수에 대한 입력값으로 모델 항으로 구성된 셀형 배열을 지정하십시오. 곡선 피팅 앱에서 Leg4Even 피팅에 대해 입력한 을 사용하고, 계수는 지정하지 않습니다.

    linearft = fittype({'(1/2)*(3*cos(x)^2-1)', ...
    '(1/8)*(35*cos(x)^4-30*cos(x)^2+3)','1'})
    linearft = 
    
         Linear model:
         linearft(a,b,c,x) = a*((1/2)*(3*cos(x)^2-1))...
           + b*((1/8)*(35*cos(x)^4-30*cos(x)^2+3)) + c

  2. 작업 공간으로 angle 변수와 counts 변수를 불러옵니다.

    load carbon12alpha

  3. fittypefit 함수에 대한 입력값으로 사용하고, 작업 공간에 있는 angle 변수와 counts 변수를 지정합니다.

    f = fit(angle, counts, linearft)
    f = 
    
         Linear model:
         f(x) = a*((1/2)*(3*cos(x)^2-1))...
         + b*((1/8)*(35*cos(x)^4-30*cos(x)^2+3)) + c
         Coefficients (with 95% confidence bounds):
           a =       23.86  (4.436, 43.29)
           b =       201.9  (180.2, 223.6)
           c =       102.9  (93.21, 112.5)

  4. 피팅과 데이터를 플로팅합니다.

    plot(f, angle, counts)

선형 모델 항에 대한 자세한 내용은 fittype 함수를 참조하십시오.