사용자 지정 선형 피팅
사용자 지정 선형 모델 정보
곡선 피팅기 앱에서 사용자 지정 수식 피팅을 사용하여 고유의 선형 또는 비선형 수식을 정의할 수 있습니다. 사용자 지정 수식 피팅은 비선형 최소제곱 피팅 절차를 사용합니다.
사용자 지정 수식에서 사용자 지정 선형 수식을 정의할 수 있지만 비선형 피팅은 선형 최소제곱 피팅보다 덜 효율적이고 일반적으로 속도가 느립니다. 사용자 지정 수식에 대해 선형 최소제곱 피팅이 필요한 경우에는 대신 선형 피팅을 선택하십시오. 선형 모델은 항(비선형일 수 있음)의 선형 결합입니다. 선형 모델은 파라미터가 선형인 수식으로 정의됩니다.
팁
사용자 지정 수식에 대해 선형 최소제곱 피팅이 필요한 경우에는 선형 피팅을 선택하십시오. 수식이 일련의 선형 함수로 표현될 수 있는지 여부를 잘 모르겠으면 대신 사용자 지정 수식을 선택하십시오. 대화형 방식으로 사용자 지정 수식 피팅 선택하기 항목을 참조하십시오.
대화형 방식으로 선형 피팅 사용자 지정 피팅 선택하기
곡선 피팅기 앱에서 곡선 데이터를 선택합니다. 곡선 피팅기 탭의 데이터 섹션에서 데이터 선택을 클릭합니다. 피팅 데이터 선택 대화 상자에서 X 데이터 값과 Y 데이터 값을 선택합니다.
곡선 피팅기가 디폴트 다항식 피팅을 만듭니다.
모델 유형을 변경합니다. 곡선 피팅기 탭의 피팅 유형 섹션에서 화살표를 클릭하여 갤러리를 엽니다. 갤러리의 사용자 지정 그룹에서 선형 피팅을 클릭합니다.
선형 피팅을 클릭하면 피팅 옵션 창에 수식 예제가 표시됩니다.
x
와y
를 임의의 유효한 변수 이름으로 바꿀 수 있습니다.아래쪽 상자에 수식 예제가 표시됩니다. 계수 및 항 항목을 변경하여 예제 항을 변경하고 고유한 수식을 정의합니다.
예제는 곡선 피팅기 앱에서 사용자 지정 선형 르장드르 다항식 피팅하기 항목을 참조하십시오.
명령줄에서 선형 피팅 선택하기
선형 피팅 알고리즘을 사용하려면 fit
또는 fittype
함수에 대한 입력값으로 모델 항으로 구성된 셀형 배열이나 string형 배열을 지정하십시오. 항에 대한 표현식에는 계수를 포함하지 마십시오. 상수항이 있으면 배열의 해당 위치에서 '1'로 표현하십시오.
선형 모델이 다음 형식을 갖고
coeff1 * term1 + coeff2 * term2 + coeff3 * term3 + ...
term1
, term2
등에 계수가 나타나지 않도록 지정하려면 각 항이 계수 없이 개별 요소로 지정된 셀형 배열이나 string형 배열을 사용하십시오. 예를 들어, 다음과 같이 입력합니다.LinearModelTerms = {'term1', 'term2', 'term3', ... }
fittype
에 입력해야 하는 선형 모델 항을 식별합니다. 예를 들어, 다음 모델은a*log(x) + b*x + c
a
,b
,c
에서 선형입니다. 모델에는log(x)
,x
,1
(c=c*1
이므로)이라는 3개 항이 있습니다. 이 모델을 지정하려면 항LinearModelTerms = {'log(x)','x','1'}
을 사용하십시오.선형 모델 항으로 구성된 셀형 배열이나 string형 배열을
fittype
함수에 대한 입력값으로 사용합니다.linearfittype = fittype({'log(x)','x','1'})
linearfittype = Linear model: linearfittype(a,b,c,x) = a*log(x) + b*x + c
데이터를 불러온 후
fittype
을fit
함수에 대한 입력값으로 사용합니다.load census f = fit(cdate,pop,linearfittype)
또는 선형 모델 항으로 구성된 셀형 배열이나 string형 배열을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'})
피팅과 데이터를 플로팅합니다.
plot(f,cdate,pop)
예제는 명령줄에서 사용자 지정 선형 르장드르 다항식 피팅하기 항목을 참조하십시오.
사용자 지정 선형 르장드르 다항식 피팅하기
곡선 피팅기 앱에서 사용자 지정 선형 르장드르 다항식 피팅하기
이 예제에서는 여러 사용자 지정 선형 수식을 사용하여 데이터를 피팅하는 방법을 보여줍니다. 생성된 데이터는 핵반응 12C(e,e'α)8Be를 기반으로 합니다. 수식은 르장드르 다항식 항의 합을 사용합니다.
12C개의 핵에서 124MeV의 전자가 흩뿌려진 실험을 살펴보겠습니다. 후속 반응에서는 알파 입자가 방출되어 잔류핵 8Be를 생성합니다. 방출된 알파 입자의 개수를 각도의 함수로 분석해 보면 12C의 핵 동특성과 관련된 특정 정보를 알아낼 수 있습니다. 다음은 반응 동역학입니다.
데이터는 10o부터 240o까지 10o씩 증가하는 Θα 값에 고체 상태 탐지기를 배치하여 수집되었습니다.
각도의 함수로 표현된 변수를 다음과 같은 르장드르 다항식으로 표현하는 것이 유용한 경우가 있습니다.
여기서 Pn(x)는 n차 르장드르 다항식이고, x는 cos(Θα)이고, an은 피팅의 계수입니다. 르장드르 다항식을 생성하는 방법에 대한 정보는 legendre
함수를 참조하십시오.
알파 방출 데이터의 경우 이론적인 모델을 호출하여 핵 동특성에 직접 계수를 연결할 수 있습니다. 이에 더해, 이론적인 모델은 위에 나온 무한 합에 대한 제약 조건을 적용합니다. 반응의 각운동량을 살펴보면 짝수 항만 사용하는 4차 르장드르 다항식으로 데이터를 효과적으로 설명할 수 있을 것입니다.
르장드르 다항식은 다음과 같은 로드리게스 공식으로 생성할 수 있습니다.
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차 르장드르 다항식을 사용하여 데이터를 피팅하는 방법을 보여줍니다.
12C 알파 방출 데이터를 불러옵니다.
load carbon12alpha
작업 공간에는 다음과 같은 2개의 새로운 변수가 있습니다.
angle
은 10o부터 240o까지 10o씩 증가하는 각도(단위: 라디안)로 구성된 벡터입니다.counts
는 원시 알파 분자 개수로 구성된 벡터로,angle
의 방출 각도에 대응됩니다.
곡선 피팅기 앱을 엽니다.
curveFitter
곡선 피팅기 앱의 곡선 피팅기 탭에 있는 데이터 섹션에서 데이터 선택을 클릭합니다. 피팅 데이터 선택 대화 상자에서 X 데이터 값과 Y 데이터 값으로 각각
angle
및counts
를 선택하여 두 변수에 대한 디폴트 다항식 피팅을 만듭니다.피팅 유형을 디폴트 사용자 지정 선형 피팅으로 변경합니다. 곡선 피팅기 탭의 피팅 유형 섹션에서 화살표를 클릭하여 갤러리를 엽니다. 갤러리의 사용자 지정 그룹에서 선형 피팅을 클릭합니다.
피팅 유형으로 사용자 지정 수식 대신 선형 피팅을 사용하는 이유는 르장드르 다항식은 예측 변수와 상수에만 종속되기 때문입니다. 모델에 대해 지정할 수식은 y1(x)입니다(이 절차의 시작 부분에서 주어진 수식임).
angle
은 단위가 라디안이므로 르장드르 항의 인수는 cos(Θα)로 주어집니다.피팅 옵션 창에서 수식 항을 변경합니다.
계수 이름을
a2
,a4
,a0
으로 변경합니다.a2
의 항 값을 다음으로 변경합니다.(1/2)*(3*cos(x)^2-1)
항을 편집하면 곡선 피팅기 앱이 피팅을 업데이트합니다.
a4
의 항 값을 다음으로 변경합니다.(1/8)*(35*cos(x)^4-30*cos(x)^2+3)
곡선 피팅기 앱에 피팅이 나타납니다.
피팅 테이블 창에서 피팅 이름 값을 더블 클릭한 다음
Leg4Even
으로 변경합니다.잔차를 표시합니다. 곡선 피팅기 탭의 시각화 섹션에서 잔차 플롯을 클릭합니다.
피팅은 데이터의 추세를 잘 따르는 것으로 보이며, 잔차는 무작위로 분포되어 있고 규칙적인 동작을 보이지 않는 것으로 보입니다.
결과 창에서 수치적 피팅 결과를 봅니다. 각 계수의 값과 괄호 안의 신뢰한계를 살펴봅니다. 95% 신뢰한계는 a0(x) 및 a4(x)의 계수는 상당히 정확하다고 볼 수 있으나 a2(x)의 계수는 상대적으로 불확실성이 높음을 나타냅니다.
알파 방출 데이터는 짝수 항만 갖는 4차 르장드르 다항식으로 가장 잘 설명된다는 이론적인 주장을 확인하기 위해, 이번에는 짝수 항과 홀수 항을 모두 사용하여 데이터를 피팅해 보겠습니다.
먼저, 수정할 르장드르 다항식 피팅의 복사본을 만듭니다. 곡선 피팅기 탭의 파일 섹션에서 복제를 클릭합니다. 피팅 창의 새 탭에 복제된 피팅이 나타납니다.
피팅 테이블 창에서 새 피팅의 이름을
Leg4EvenOdd
로 바꿉니다.피팅 옵션 창에서 수식 항을 변경합니다.
다음과 같이 항을 편집하여 y2(x)로 주어진 모델을 피팅합니다.
마지막 + 버튼을 두 번 클릭하여 홀수 르장드르 항을 추가합니다.
새로운 계수 이름을
a1
과a3
으로 변경합니다.a1
의 항 값을 다음으로 변경합니다.cos(x)
a3
의 항 값을 다음으로 변경합니다.(1/2)*(5*cos(x)^3-3*cos(x))
곡선 피팅기 앱에 플로팅된 새로운 피팅을 살펴보고, 결과 창에서 수치 결과를 봅니다.
홀수 르장드르 계수(
a1
과a3
)는 값이 작고 신뢰한계가 영을 포함하기 때문에 피팅을 단순화하기 위해 제거할 후보가 된다는 사실을 알 수 있습니다. 이 결과는 홀수 르장드르 항은 피팅에 유의미하게 기여하지 않으며 이전 피팅에서의 짝수 르장드르 항이 실질적으로 변경되지 않았음을 보여줍니다.Leg4Even
피팅이라는 첫 번째 모델 선택이 최적의 선택이었음을 알 수 있습니다.피팅을 나란히 비교합니다. 피팅 Figure 탭의 맨 오른쪽에 있는 문서 동작 버튼을 클릭합니다.
모두 타일 형식으로 배열
옵션을 선택하고 1×2 레이아웃을 지정합니다.피팅 옵션, 결과, 피팅 테이블 창을 끌어서 놓아 숨기면 플롯만 표시할 수 있습니다.
명령줄에서 사용자 지정 선형 르장드르 다항식 피팅하기
곡선 피팅기 앱에서 만든 모델을 명령줄에서 피팅해 봅니다.
선형 피팅 알고리즘을 사용하려면
fittype
함수에 대한 입력값으로 모델 항으로 구성된 셀형 배열이나 string형 배열을 지정하십시오. 곡선 피팅기 앱에서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
작업 공간으로
angle
변수와counts
변수를 불러옵니다.load carbon12alpha
fittype
을fit
함수에 대한 입력값으로 사용하고, 작업 공간에 있는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)
피팅과 데이터를 플로팅합니다.
plot(f,angle,counts)
선형 모델 항에 대한 자세한 내용은 fittype
함수를 참조하십시오.