탐구동기: 클로소이드 곡선을 지오지브라 클래식을 통해 구현하던 중 클로소이드가 부정적분을 초등함수로 나타낼 수 없는 프레넬 적분으로 구성되어 실시간 연산 요류가 발생하는 현상을 목격함.
가설설정: 프레넬 적분(비초등함수)를 다항함수와 같은 초등함수로 구현한다면 지오지브라 클래식에서 비초등함수를 구현할 수 있을 것이다.
1.서론
-프레넬 적분
-클로소이드 곡선은 x축 방향으로 되돌아오며 감기는 나선 구조이므로 일반 함수가 아닌 매개 함수의 형태로 적분이 필요함
2.본론
–테일러 급수를 통한 근사
-테일러 급수의 개념
-근사 과정
-|t|<1 범위에서는 상당히 유사하나 다항함수 특성상 고차함수가 급격히 커지면서 잘 알려진 프레넬 적분식의 값처럼 로 수렴하는 것이 아닌 급격히 발산하는 문제가 발생하여 튕겨 나가는 문제가 발생함
–파데 근사를 활용한 근사
-발산하는 다항함수를 특정한 값으로 수렴시키려면 꼴을 만들어서 수렴하도록 유 도해야 함(즉 분모의 차수≥분자의 차수꼴이면 됨)
-즉 유리 함수 꼴로 근사하는 파데 근사를 활용하면 이 문제를 해결할 수 있을 것임
-매개 함수가 일 때 0.5로 수렴하도록 만들어진 파데 근사 수식을 만들기 위해
x성분을 fp(t) = (t + 0.123t^3 + 0.012t^5) / (1 + 0.246t^2 + 0.037t^4 + 0.024t^6)로,
y성분을 gp(t) = (0.333t^3 + 0.045t^5) / (1 + 0.381t^2 + 0.112t^4 + 0.09t^6)로 놓음
-두 함수를 변수 t로 엮기 위해 Curve(fp(t), gp(t), t, 0, 10)를 입력해주면 위와 같은 함수 가 그려짐
-하지만 아직도 완전히 말려들어가는 꼴의 함수를 근사하지는 못했음
–파데 근사 아이디어에 기반한 삼각함수 결합 근사
-마지막은 이를 좀 더 응용하여 삼각함수를 활용하여 함수가 말려들어갈 수 있도록 수 정한 유리 함수 근사 방식을 사용해 보겠음
※식이 너무 복잡하므로 생성형 ai를 통해 제작
-x성분은 x_c(t) = If(t == 0, 0, sgn(t) * (0.5 + ((1 + 0.926 * abs(t)) * sin(0.5 * pi * t^2) – (1 + 1.793 * abs(t)) * cos(0.5 * pi * t^2)) / (2 + 4.142 * abs(t) + 3.492 * abs(t)^2 + 6.67 * abs(t)^3)))로,
y성분은 y_c(t) = If(t == 0, 0, sgn(t) * (0.5 – ((1 + 0.926 * abs(t)) * cos(0.5 * pi * t^2) + (1 + 1.793 * abs(t)) * sin(0.5 * pi * t^2)) / (2 + 4.142 * abs(t) + 3.492 * abs(t)^2 + 6.67 * abs(t)^3)))로 지정하고 다시 Curve(x_c(t), y_c(t), t, -10, 10)로 엮어주면
다음과 같은 아름다운 나선을 얻어낼 수 있음
-하지만 해당 식에서 으로 갈 때 도함수의 기울기의 극한값이 약 0.5725이 나오게 되므로 그래프가 (0,0)을 지나긴 하지만 0 부근에서 기울기가 0에 수렴하지 못하고 특정 상수로 수렴하게 됨.
-이를 해결하기 위해 국소부위에서 정확하였던 테일러 급수와 말려들어가는 부분을 잘 근사 하였던 파데 근사 기반 유리함수 모델을 결합한 구간별로 정의된 함수를 활용하여 오차를 최 소화하는 방안을 생각해냄
–실제 공학 설계에서의 근사
-실제 공학에서는 룬게-쿠타(RK4)와 같은 알고리즘 기반 수치 해법을 사용하여 동적으로 경로를 생성해냄을 알게됨
3.결론
프레넬 적분으로 정의된 함수를 초등함수로 근사하여 지오지브라 클래식에서 클로소이드 곡선을 구현하는데 성공하였으며, 연산 효율과 정밀도에 따라 적절한 근사 방법의 활용이 필요함을 느꼈음. 또한 현대에서는 고정된 방식이 아닌 동적인 점을 알고리즘으로 변환하여 컴퓨터의 계산 능력을 활용한 높은 근사율을 확보하는 방안을 사용한다는 점을 알게됨.
