2016-06-26 4 views
3

질량 행렬을 사용하지 않고, ode45과 같은 ode 해석기는 y '= f (t, y)를 풀 수 있습니다.MATLAB의 ode 해석기에서 질량 행렬이란 무엇입니까?

그러나 "질량"행렬 M (t, y) y '= f (t, y)를 포함하는 문제에 대한 해결책으로는 질량 행렬 옵션이 있습니다.

정확히 "질량"매트릭스 란 무엇입니까? 이 용어는 질량 - 스프링 시스템 진동의 질량에서 오는 것입니까? 이 문서의 예제 코드를 찾을 수 없습니다. 또한, y '= f (t, y)의 방정식에서 f (t, y)의 t와 y에 대한 정보를 인코딩 할 수있는 것 같습니다. 어떤 상황/예에서 M (t, y) y '= f (t, y)는 M (t, y)가 필요한 곳에서 발생합니까?

답변

1

이것은 완전히 here in the documentation for odeset으로 설명됩니다. 예, 2 차 시스템의 질량/관성 항과 관련 될 수 있지만, 동일한 형태를 갖는 다른 시스템의 다른 매개 변수를 나타낼 수도 있습니다. 이 옵션은 경우에 따라 효율성을 향상시키고 단수 (역행 불가) 질량 행렬을 처리 할 수 ​​있습니다 (일반적이지 않은 물리적 시스템).

The book Solving ODEs with Matlab (Shampine, et al. 자세한 내용과 좋은 예 (2.3.2, 105 페이지 섹션) - Matlab의 batonode을 참조하십시오.

0

질량 행렬은 결합 된 상미 분 방정식과 대수 방정식을 동시에 해결하는 데 사용할 수 있습니다. 예를 들어

y'(1) = 2y(1) + 3(y)^2
y'(2) = 5y(1) - 2y(2)^4
0 = y(1)^3 + y(3) + 2
0 = y(2)^4 + y(4) - 8

뿐만 질량 행렬 ode23t 사용하여 해결 될 수있다 :

M =
[1 0 0 0
0 1 0 0 01 23, 0 0 0 0
0 0 0 0] 몇 ODE 해법이 잘 단수 질량 행렬을 처리 할 수있는 것보다

참고. ode23t와 ode15s는이 일을 할 수 있습니다.

자세한 내용은 https://se.mathworks.com/help/matlab/ref/odeset.html#input_argument_namevalue_d119e730030

을 참조하십시오.