Excel VBA에서 Linest로 다차방정식 커브피팅 적용

가끔 사용하지만 엑셀에서는 편리하게 curve fitting 기능이 있습니다.아래와 같이 이차 방정식 이상의 고차 방정식에도 기능을 지원합니다.기본 그래프에서는 6차까지 지원됩니다.

이것을 수식화하면 이렇게 되는데 12차까지 사용할 수 있기 때문에 편리합니다.Linest는 기본적으로 배열 함수이므로 index의 도움이 필요합니다.

이것을 VBA에서 사용하려면 중괄호 {}가 문제가 됩니다.”{“라고 써도 에러가 나기 때문입니다.사용법에 대해 소스를 정리했습니다.

Sub ex_lin()Dim conf()Dim ran_x As Range, ran_y As RangeSet ran_x=Worksheets(“sheet1”). Range(“$B$6:$B$16”)’x범위를 지정 Set ran_y=Worksheets(“sheet1”). Range(“$C$6:$C$16″)’y범위를 지정 tem_1=ran_x’x범위를 임시 배열에 옮기ReDim tem_2(1To UBound(tem_1), 1To 3)As DoubleFor j=LBound(tem_1)To UBound(tem_1)Step 1 tem_2(j, 1)=tem_1(j, 1)’원 하는 차수만 x의 승수를 올린 tem_2(j, 2)=tem_1(j, 1)^2 tem_2(j, 3)=tem_1(j, 1)^3Nextconf=Application.WorksheetFunction.LinEst(ran_y, tem_2, 0)’배열을 넣어서 계산하는 배열을 갚을 MsgBox conf(1)”,”&conf(2)&conf(3nd)”를 출력한다

포인트는 원하는 순서만큼 배열을 만들어 적용되도록 합니다.Linest는 배열이 바로 처리되도록 되어 있어 편리합니다.값도 소수점 처리가 잘 되어 상당한 정밀 실험을 커버할 수 있습니다.

포인트는 원하는 순서만큼 배열을 만들어 적용되도록 합니다.Linest는 배열이 바로 처리되도록 되어 있어 편리합니다.값도 소수점 처리가 잘 되어 상당한 정밀 실험을 커버할 수 있습니다.

https://www.youtube.com/watch?v=4OGp-E09hHk

error: Content is protected !!