본문 바로 가기

학습 Q&A

강의 내용 궁금증! 교수님이 직접 답변 드립니다.

  • 홈
  • 교수소개
  • 공학계열
  • 권준표 교수님
  • 학습 Q&A

Q&A 메뉴.png

※ 유의사항
강의에 나오지 않는 내용에 대한 풀이나 해설은 답변을 드릴 수가 없습니다.
학습과 무관한 내용 및 비방/욕설 등 게시판 성격과 무관한 내용은 사전 고지없이 삭제됩니다.
답변 완료된 게시글은 수정 및 삭제 불가합니다.

kwonjunpyo_03.png

게시판 글보기
제목 답변완료 [MATLAB 한방에 끝내기 - Basic] 10강 25분~26분 / 초깃값 행렬의 차원..?
질문유형 강좌내용 교수님 권준표
과목 매트랩 강좌명
작성자 정*연 (j*****2) 등록일 2021-06-22 15:13

x` + 5x` + 4x = sin(10t)라는 2차미분방정식을 풀이하는 과정에서

다음과 같이

적분이 되야 할 함수 (dxdt) 는 2X1의 행렬이잖아용?

 

 


 

 

그런데 


y0에 해당하는... 그러니까 적분이 되고 난(?) 함수의 초깃값은

1X2의 행렬이잖아용..??

 

이 두개의 차원은 달라도 되는 것일까요??

(이 두개의 차원이  꼭 일치해야 한다고 교수님께서 말씀하신 적은 없었지만)

 

그렇다면 

그 두개의 차원을 

완전히 제맘대로 설정해도 되는 것일까요?? 그냥 원소?의 갯수만 맞춰서..?

 

 

그리고 제가 두번째 사진에서 하이라이트 한 부분

[initial_x initial_dxdt]

이것을

[initial_x ; initial_dxdt]

로 해도 똑같이 잘 돌아가더라구요..??
 

그렇다면 정말 차원을 아무렇게나 설정해도 되는 건가요??

 

#차원 #행렬 #초기값 #초깃값 #dxdt

답변 완료된 질문과 답변은 수정 및 삭제가 불가합니다.

댓글
0
정*연

안녕하세요.

질문해주신 내용에 대해 답변을 먼저 드리자면,
- function(ode45)에 해당하는 것은 차원을 확실하게 해주셔야 하고,
- ode45를 이용해서 값을 plot하는 스크립트에서는 ;의 여부가 중요하지 않습니다.

"help ode45"를 해보셨겠지만,

[t,y] = ode45(odefun,tspan,y0)
[t,y] = ode45(odefun,tspan,y0,options)
[t,y,te,ye,ie] = ode45(odefun,tspan,y0,options)
sol = ode45(___)

와 같이 질문하신 차원에 대한 값은
ode45에서 options에 해당하는데
이는 function이 자체적으로 구분해서 계산할 수 있는 것 같습니다.

즉, ode45 option의 경우
;를 붙이든 안 붙이든
결과값이 잘 나옵니다.

[ode45 ]
t=0:0.001:30;
initial_x = 0;
initial_dxdt = 0;

[t,x] = ode45(@myode4, t, [initial_x; initial_dxdt]);
-> [initial_x; initial_dxdt]은 option으로 초기값을 넣어주는 것인데 ;의 여부가 크게 상관 없습니다.

다만 function 인 경우,

[function : myode4]
function dxdt = myode4(t,x)
% x``+5x`+4x=sin10t
% x``=-5x`-4x+sin10t

dxdt_1 = x(2);
dxdt_2=-5*x(2)-4*x(1)+sin(10*t);
dxdt = [dxdt_1; dxdt_2];

여기에서 [dxdt_1; dxdt_2]는
실제 한번 그리고 두번 미분된 결과값을 지정하는 자리이기 때문에
;를 붙여서 column별로 정리를 해줘야지
;를 붙이지 않으면 오류가 나오게 됩니다.

Screen-Shot-2021-06-29-at-6.20.18-AM.png 

  • 2021-06-29
  • 2024-12-12 수정