| 제목 | 답변완료 입력인수부족 메세지 | ||
|---|---|---|---|
| 질문유형 | 강좌내용 | 교수님 | 권준표 |
| 과목 | 매트랩 | 강좌명 | |
| 작성자 | 백*민 (s******9) | 등록일 | 2018-07-21 11:57 |
| 첨부파일 | |||
|
[1-3] 48강: 상미분방정식의 활용, 기호 상미분방정식 풀이(dsolve)에서
function dy = reac(t,y) dy = [-0.04*y(1)+10^4*y(2)*y(3); 0.04*y(1)-10^4*y(2)*y(3)-3*10^7*y(2)^2; 3*10^7*y(2)^2];
라는 Robertson 화학반응 모델을 푸는 과정이 있는데요.
첨부파일에서 보듯이, 저장을 하면 입력인수가 부족하다고 합니다. 하지만 ode45함수를 쓰면 책에 있는대로, 말씀하신대로 실행은 잘 되고요.
t가 dy 함수에 없어서 경고 메세지가 표시되었던 것 같은데, 암묵적으로 `y는 t에 관한 식이다`라고 인식해서 그런 것인가요?
강의 항상 감사드립니다. 확인부탁드립니다. 답변 완료된 질문과 답변은 수정 및 삭제가 불가합니다. |
|||
- 댓글
- 0
MATLAB function(reac.m)에서 t와 y가 인수로 있는데 그냥 함수만 실행시키면 입력인수가 부족하다고 나오게 됩니다.
ode45함수는 기본적으로 [t,y] = ode45(odefun,tspan,y0)의 형식을 갖습니다.
교재에 나와있는 것처럼 solreac.m이라는 안에서 ode45를 작성해줘야 미분이 되는 겁니다.
solreac.m에서의 ode45는
odefun = reac.m이 되는 것이고 (@reac으로 표현)
tspan = [0 3]
y0 = [1;0;0]
으로 구성되어 있는 상태죠.
함수만 실행시키면 안되고, 그 함수를 불러서 상에서 실행시켜줘야 계산이 되겠습니다.
- 2018-07-23
- 2024-12-12 수정























