우리 주위에는 굉장히 많은 벡터장이 있다. 중력장, 자기장, 전기장... 등등. 공학자는 자기 분야에 해당하는 벡터장에서 어떠한 물체가 어떻게 운동하는지 알 수 있어야 한다. 이번에는 벡터장 안에서 곡선이 어떻게 적분 되는 지를 판단해 보자.
먼저 곡선의 식 r(t)와 벡터장 F(x, y)의 식은 아래와 같다.
이 두 함수를 이용하여 문제를 풀어보자.
1. 함수 정의
syms F1(x,y) F2(x,y) r1(t) r2(t)
r1(t) = cos(t);
r2(t) = sin(t);
F1(x,y) = -y;
F2(x,y) = -x*y;
r = [r1;r2];
F = [F1;F2];
r과 F 모두 symfunc이며 각각
>> r >> F
r(t) = F(x, y) =
cos(t) -y
sin(t) -x*y을 갖는다.
2. 선적분의 정의에 따라서 F(r(t)) 와 r'(t) 값을 설정해 준다.
Fr = F(r1(t),r2(t));
dr = diff(r(t),t);
3. 적분하기. 위에서 구한 Fr과 dr을 dot 함수를 사용하여 곱해준 뒤 0부터 pi/2 구간에서 t에 대해 적분한다.
integrand = dot(Fr, dr);
work = int(integrand, t, [0 pi/2]);
>> work
work =
pi/4 - 1/3 실제로 손으로 푼 결과와 일치한다!
이번엔 벡터장과 곡선을 같은 그래프 상에 그려 어떤 모습인지 그려보자.
먼저 벡터장 F 먼저 그려준다. F는 r(t)를 함수 인자로 받기 때문에 (F(r(t)) r의 범위 먼저 정의해 주자.
k = linspace(0,pi/2,20);
a = r1(k);
b = r2(k);
위에서 구한 a, b를 통해 좌표계를 설정하고 F에 대입한다.
[A, B] = meshgrid(a,b);
F1_field = F1(A,B);
F2_field = F2(A,B);
quiver 함수를 이용하여 그래프를 그린다!
quiver(A,B,F1_field,F2_field), axis tight ;
마지막으로 곡선을 그린다! 이미 구한 k를 이용하여 쉽게 그릴 수 있다.
r_x = r1(k);
r_y = r2(k);
hold on
plot(r_x, r_y);
hold off
끝!