eigval01.gms : 고유값 유틸리티 테스트

설명

고유값 예.

기고자: Erwin Kalvelagen, 2008년 10월.

소형 모델 유형 :슬롯 게임


카테고리 : 슬롯 게임 테스트 라이브러리


메인 파일 : eigval01.gms

$title 테스트 고유값 유틸리티(EIGVAL01,SEQ=409)

$onText

고유값 예.

기고자: Erwin Kalvelagen, 2008년 10월.

옥타브:1>a=[9 1 1; 1 9 1; 1 1 9]
a =

  9 1 1
  1 9 1
  1 1 9

옥타브:2> eig(a)
답변 =

   8
   8
  11

$offText

내가 /i1*i3/으로 설정;
별칭(i,j);

테이블 a(i,j)
      i1 i2 i3
나는1 9 1 1
나는2 1 9 1
i3 1 1 9

;

매개변수 e(i) '고유값';

Execute_unload 'a.gdx', i, a;
ExecuteTool.checkErrorLevel 'linalg.eigenvalue i a e -gdxin=a.gdx -gdxout=b.gdx';
Execute_load 'b.gdx', e;
abort$(abs(e('i1')-8)>1e-3 또는 abs(e('i2')-8)>1e-3 또는 abs(e('i3')-11)>1e-3) '잘못된 고유값', e;

옵션 클리어=e;
ExecuteTool.checkErrorLevel 'linalg.eigenvalue i a e';
abort$(abs(e('i1')-8)>1e-3 또는 abs(e('i2')-8)>1e-3 또는 abs(e('i3')-11)>1e-3) '잘못된 고유값', e;
*
* A의 아래쪽 삼각형 부분만 사용됨
*

테이블 a2(i,j)
      i1 i2 i3
i1 9 
i2 1 9    
i3 1 1 9

;

Execute_unload 'a.gdx', i, a2;
ExecuteTool.checkErrorLevel 'linalg.eigenvalue i a2 e -gdxin=a.gdx -gdxout=b.gdx';
Execute_load 'b.gdx', e;
abort$(abs(e('i1')-8)>1e-3 또는 abs(e('i2')-8)>1e-3 또는 abs(e('i3')-11)>1e-3) '잘못된 고유값', e;

옵션 클리어=e;
ExecuteTool.checkErrorLevel 'linalg.eigenvalue i a2 e';
abort$(abs(e('i1')-8)>1e-3 또는 abs(e('i2')-8)>1e-3 또는 abs(e('i3')-11)>1e-3) '잘못된 고유값', e;

*
* A의 위쪽 삼각형 부분만 사용됨
*
매개변수 a3(i,j); a3(i,j) = a2(j,i)

Execute_unload 'a.gdx', i, a3;
ExecuteTool.checkErrorLevel 'linalg.eigenvalue i a3 e -gdxin=a.gdx -gdxout=b.gdx';
Execute_load 'b.gdx', e;
abort$(abs(e('i1')-8)>1e-3 또는 abs(e('i2')-8)>1e-3 또는 abs(e('i3')-11)>1e-3) '잘못된 고유값', e;

옵션 클리어=e;
ExecuteTool.checkErrorLevel 'linalg.eigenvalue i a3 e';
abort$(abs(e('i1')-8)>1e-3 또는 abs(e('i2')-8)>1e-3 또는 abs(e('i3')-11)>1e-3) '잘못된 고유값', e;