실습 · 연습문제 1개
반응 네트워크의 보존량 찾기와 검사 conserved-quantities
화학종 개, 반응 개인 반응 네트워크의 농도 는
를 따른다. 은 화학량론 행렬(stoichiometric matrix)로, 열 는 반응 가 한 번 일어날 때 각 화학종이 얼마나 늘고 주는지를 적는다. 는 반응 속도 벡터다.
인 벡터 가 있으면 반응 속도가 무엇이든
이므로 는 보존된다(원소 보존, 총 질량 보존). 이런 들은 의 왼쪽 영공간(left null space)을 이룬다.
두 함수를 완성한다.
conservation_laws(N, tol=1e-10)— 왼쪽 영공간의 정규직교 basis를 행으로 쌓은 행렬W를 반환한다. shape은(K, S)이고, 이다. 보존량이 없으면 shape(0, S).max_violation(Y, W)— 궤적Y(shape(T, S), 행이 시각)에서 모든 시각과 모든 보존량에 대해 의 최댓값을 반환한다.
| 인자 | shape |
|---|---|
N |
(S, R) |
Y |
(T, S) |
W |
(K, S) |
힌트: 특이값 분해 (np.linalg.svd(N, full_matrices=True))에서 0인 특이값(최대 특이값 × tol 이하)에 대응하는 의 열이 왼쪽 영공간을 이룬다(7.3장, 7.6장). 의 열 수가 행 수보다 적으면 특이값의 개수도 보다 적다는 점에 주의한다.