2017-02-04 9 views
0

두 명의 대리인, 분배 자 및 공급자가 있습니다. 이 거북들 각각은 다른 변수의 에이전트에 할당 될 수 있도록 전역 변수로 정의 된 변수가 있습니다. 문제는 다음과 같이 변수의 일부를 사용하여 배급업자를위한 방정식 시스템을 풀려고한다는 것입니다. (판매 및 계수는 매주마다 변경되는 배급 자의 일부 변수입니다.) DCoeffiecients = 행렬 A, 판매 = 행렬 C 및 나는 미지수 = 매트릭스 B 을 찾고방정식 시스템에 대한 netlogo의 행렬 확장

sales = DCoefficients * Unknowns 

내가 그것을 해결하기 위해 "매트릭스 확장을"사용 (I 프로 시저 내에서 호출하고 모든 변수는 글로벌 정의),하지만 난 예상이 오류 "로 실행 리터럴 값 "변수가 있기 때문에 일부 상수가 아닙니다!

to Solve-quantity 
ask distributers[ 
let A matrix:from-row-list [[Prod1coeff1 Prod1coeff2 Prod1coeff3 prod1coeff4] [[Prod2coeff1 Prod2coeff2 Prod2coeff3 prod2coeff4][Prod3coeff1 Prod3coeff2 Prod3coeff3 prod3coeff4][Prod4coeff1 Prod4coeff2 Prod4coeff3 prod4coeff4] ] 
let C matrix:from-row-list [[S1] [S2] [S3] [S4]] 
print matrix:solve A C 
]end 

어떻게이 오류를 수정하고 행렬에 변수를 할당 할 수 있습니까? 감사합니다.

+0

'list'에 대괄호를 사용하지 마십시오. – Alan

+0

죄송합니다. 더 자세히 설명해 주시겠습니까? 나는 그것을 얻지 못했다 – Naha

+0

'x'와'y'가 변수라면'(list x y)'를 써야한다. 브라켓의 축약어'[x y]'는 작동하지 않습니다; 그것은 리터럴 (숫자와 문자열)에서만 작동합니다. – Alan

답변

0

다음은 list 프리미티브를 사용하여 수행해야하는 작업의 약식 예입니다. 나는 한 줄로 완성한 다음, 깨뜨린 것을 기억하십시오. 목록 두 개 이상의 요소를 포함하는 경우 당신이 그들을 필요로 나는 list 원시 괄호를 넣어했습니다 그것도

extensions [matrix] 

to go 
    let Prod1coeff1 1 
    let Prod1coeff2 2 
    let prod2coeff1 3 
    let prod2coeff2 4 

    let A matrix:from-row-list (list (list Prod1coeff1 Prod1coeff2) (list Prod2coeff1 Prod2coeff2)) 
    show A 

    let row1 (list Prod1coeff1 Prod1coeff2) 
    let row2 (list Prod2coeff1 Prod2coeff2) 
    let list-of-rows (list row1 row2) 
    let B matrix:from-row-list list-of-rows 
    show B 

end 

참고.

HTH, Charles

+0

감사 유일한 문제는 내가 다음 무엇을 같은 변수를 할당 할 때, 그것은 여전히 ​​작동하지 않는다는 것입니다 : \t Proced1 에 Prod1coeff1 variablex가 Prod1coeff2의 variabley 이 prod2coeff1 variabley을 할 수 있도록하자variablex, y, z가 전역 변수이거나이 행 앞에 정의되어 있더라도! – Naha

+0

죄송합니다. 다른 질문입니다. 당신이 분해 한 부품이 동등하고 그 중 하나가 충분하다는 것을 의미합니까? 예를 들면 다음과 같습니다. 행렬 : 행 목록 (목록 (Prod1coeff1 Prod1coeff2 목록) (목록 Prod2coeff1 Prod2coeff2)) show A – Naha

+0

고마워요. 두 응답 모두 제가 오류를 해결하는 데 도움이되었습니다. – Naha