operator01.jpg

또 만났내요~ ^^ LGS입니다.
정말 오랫동안 하늘에서 비가 내려요~ 쨍하고 맑은 하늘을 본지 2달은 된 듯 ㅜㅜ
광합성 좀 해서 키가 쑥쑥 자라야되는뎅 ㅜㅡ
막바지 더위에 건강 조심하시구요~
그럼 또 강의 시작하겠습니다..

이번 시간에는 저번 강좌에 이어 Curve Fitting Toolbox 2부를 진행하겠습니다.

xyRdgIUklgRjU_Q3cw3czy82zKtjvVUfObyisxQgV030TqjwmCorUaV8KxUxsvkJJDd4dZbmzRLvOHDknFP-1Bm4LVMEiS4UqcToRPeeRMDuKOqLpiM

Curve Fitting Toolbox 1부에서는 fitting할 data를 cftool(curve fitting tool)로 불러들이고
간단하게 sin 함수로 Fitting 하는 것 까지 했습니다.
오늘은 그 결과를 해석하고 응용하는 방법을 알아보도록 하죠~

위의 그림에서 Results 부분을 보겠습니다.
(command window에서 data를 생성할 때 rand 함수를 사용하였기 때문에 숫자들이 조금씩 다를 수 있습니다.)

wCDpFb3PKp276zFf9WqOtgK47__SZy_UCCGG2saPfTdFxBEhrjh-6lYwx4GG2_NRbFXvTuV4dKO4OJD0-Gz5XPl4CaKXic_1V42jtrHFy0ycqmn0MsI

General model 과 Coefficients 부분은 문제 없으실 거구요...

y6VI_dOC-Smmd5wAyE_i6ZqyLWGNKbR-RweBDi96H6N6QhFCfsgeC62Oq9B8uoBE338qPlJeWcq0RbydnPM4h93kYTE4jeDnPc7JGXDNIsfOeQY2rH8

General model에 각각의 계수(coefficient 숫자)를 대입하여 정리하면
즉 위의 빨간선을 그리는 함수는

MXdhV7p6sV47b9qs8LjBCccSbIMUQpjN4yVgqRHe8tApMc5XI6c-Kba2So-RpF87KiTEf19hX_HGqxkVrGHdW5dAczMiuvyRjATj5X7pMBgbQhIqg30

이고 이 결과는 처음에 우리가 command  window에서 생성했던 data = sin(x)+cos(2*x)와 일치합니다. o(^o^)o


Goodness of fit 부분은 Curve Fitting 한 결과가 얼마나 data에 잘 맞는냐 하는 것을 보여주는 곳이예요.
각각의 의미는 아래 Table을 참조하세요~ ^^

5u9jG0akizIFvdQq8-9afsrpnEd1Z_P3qkrVW-G24SUW3ff6rU6tfoLlRZcv-NhJl3yMWCggyzFfuJ9PXzA8lg3X7Jj5rcuNET6NriUcdkaJ8eCtEw4

SSE와 RMSE는 맨 뒤의 E가 Error의 약자이기 때문에 0에 가까울 수록 좋구요(Error가 적을 수록 좋겠죵?),
R-Square, Adjusted R-Square은 1에 가까울 수록 data를 더 잘 표현한 다고 할 수 있습니다.
즉 R-Square가 0.99라는 말은 원본 data를 Fitting한 곡선이 99%의 설명력을 가지고 원본 data를 표현한다고 말씀들릴 수 있어요~
SSE,R-Square, RMSE의 각각의 계산법은 통계학적 설명이 추가 되어야 하므로
추후 'Statistics 때려잡기'의 Regression 부분에서 다루도록 하겠습니다.^^;;

New fit 버튼을 눌러 Curve Fitting을 하나 더 만들어 볼까요
1부에서 시도해봤던 8차 다항식으로 근사해 봅시다.
그러면 Curve Fitting Tool 메인 화면에서 두 곡선을 쉽게 비교할 수있습니다.

OKZnxjWa9Bs4k7aZvJ60RAwLJsL9cG_c-D1pvvA1VpQTZ9LI3kO6wga779dbNe-oklBmIcTi5dHHDf3QYV6iIIlQ2QoQjZRSL7cxLNtIlZNtzfpMn-c

Main 화면에서 Plotting 버튼을 누르시면

dBTzVlDvZnc7xNrwR83Xp4htKHe-TU3tUpP6M_GfDmY-RA4VvFKvJVqb_V5zxX808SFYfe_D5HwiH71XGTwTe4dVxIsbilikOSORYwQb5wUTgexAar8

Plotting 다이알로그가 뜨고 여기에서 Fitting된 Curve를 끄고 켤 수 있고 Data set이 여러개라면
data set도 선택하실 수 있습니다. ㅎㅎ

(별로 어려운 내용이 없으니까 슥슥 쉽게 잘 넘어 갑니다요 ㅋㅋ)
메인화면에서 Analysis 버튼을 누르시면 

5u2hsO9euzANx-lC4ZpY6itKwTQSmq2I_rjNvA50TVGoLcLX8FNiRudZKrtdhLV9CZjcIRo2k1sfpTiTYkOPiLH2N9BCWskwdhr7PatEa1658qtpNxM

Fit to analyze 항목에서 여러분이 사용하실 fitting model을 선택하실 수 있구요
Analyze at Xi 부분에 여러분이 값을 알고자 하는 x의 point를 넣으시면 됩니다.
예를 들어 0부터 15까지 0.1 간격으로 data 값을 뽑아 내시려면 Xi를 0:0.1:15 라고 설정하시면 되것습니다
다시말해 이가 빠진 data의 값도 뽑아 낼 수 있고 실험으로  구한 data 이외의 구간에 대해서 예측도 가능하단 말씀!!
derivative, Integrate 항목을 체크하시면 각각 1차, 2차 미분값도 바로 구하실 수 있고 적분값도 바로 계산해서 보여줍니다.
Plot results에 체크하시고 오른쪽 아래의 Apply 버튼을 클릭하시면 그래프도 바로 보실수 있어요~

1OTWSiYeOzZ6nXwCQWEuBTl7BLIvNrOoHg-lbNwvW7CnI93oJdgTgchO6moMJZerHF7RHbGkqcrAL68B8W4h_-n8pNnLyQIT1PHrPbwHhzjf9dazCCE

다했나요?? 아 Exclude가 남아있군요... ;;

d-Nf5FIbxnCcM7MasAPKT95RLmj_D0qbe6ESsos2VTg9qBAQ2Rvpm_Q5R2Y4yD0kUj--n_5-pY93TXdKe-wFDw5mydQ-7_SuWDQIwExgVyVi-AnfwYg

Exclude는 말그대로 curve fitting 할때 제외시킬 data를 지정하는 겁니다.
버리실 구간을 X로도 자를 수 있구요 Y값으로도 지정할 수 있습니다.
위의 그림의 예제에서는 원래 data의 x의 범위 0~10까지 중에서 1보다 작은 값과 8보다 큰 값은 무시하고 
잘라서 버리겠다는 거죠 즉 여러분이 원하시는 data만을 가지고 fitting 하실 수 있어요~
Create exclusion rule을 클릭 하시면 왼쪽 Existing exclusion rules에 여러분이 설정한 rule이 생기구요
(Exclusion rule name에서 이름을 정할 수 있습니다)
View 버튼을 눌러보시면 

IcBdOHXt4-keCt6qxVbRiqDE25-Sp9ODLP-Uoi0IRp41Aljbj2MGwOmoYceHddBE2ajZEjuz6mUh1fd2S6gDANBQG4pkeuu6BQyFoOv9pmZlGivB8C0

Graphic하게 제외되는 부분을 확인 할 수 있습니다.
a0D2byBFNnjJEL7itse9_qYJs6fcAGnaQ2TGGwESofNhG8Q-hG3cZTMLoslKxJB41ITUG0Ix5QqDtlOc0KLVYPjajeuRcvOIN3dZEMz6llEZ0tNtOtI

Exclude rule을 적용하시려면 Fitting Dialog에서 Exclusion rule 항목을 지정하시면 되구요~~

이제 다 끝났나요? 아!! Workspace로 내보는 일이 남았네요 ^^;;

gCpqFe__yfI8qK0SZz20MmO7hj_1SVWJCESHI7ISlGJAy9nM7n7XGHv-94zSj67cPJKyzTBVj32wFRiYzo1jTGLpQ8syTCkacOXPpDBftV4ERVgGYKU

원하시는 fit을 선택 후 Save to Woarkspace Click @@

DAP4Lb6srkoaggMMOqSGx9nTowKtZT2LDfMWWsSdsdALcmSRfl9HeOF9T-LOsQbJgfpJN5wdQxX-MytdikEopD37PBs-h64iy5RaPAHfHyTX5O7EIYk

OK 누르시면 Workspace로 저장됩니다.
workspace를 보시면 결과들이 object와 struct 형태로 저장된 것을 볼 수 있습니다.
struct 변수의 사용법은 'MATLAB 때려잡기 - Data Type - 2부'를 참조해주세용~ ㅎㅎ
object 변수(fittedmodel1)은 command window에서 >>fittedmodel1 이라 치시고 점을 찍으신 뒤에 Tab 키를 눌러보시면

(이하생략)

생략된 내용은 VIP 게시판에서 확인 가능합니다.
http://www.matlabinuse.com/index.php?mid=VIP_ONLY&page=4&document_srl=1449
profile