2012-02-01 4 views
1

solve 명령을 사용하여 두 개의 비선형 동시 문제를 해결 한 후 x 및 y 배열을 얻고이 배열의 특정 요소에 액세스해야합니다.최대 배열의 특정 요소에 액세스하는 방법은 무엇입니까?

A : 0.500000000000000 $ B : 0.709506070053745 $ C : $ 0.242527534593605 D : 0.719012140107490 $ E : 0.357164044380080 $ F : $ -0.505315948652670 G : 0.181895650945204 $ H : 0.300000000000000 $

해결 (A * x^2 + (x/y^2) * (H * y + 2) * D * x * G) + F], [x, y]), numer; 여기서 'x'와 'y'는 각각 8 개의 값을 포함하고 있으며 두 번째 요소 만 액세스해야합니다.

답변

2

Maxima는 여기서 결과 목록을 반환합니다 (최대 배열은 약간 다른 것입니다). 목록의 각 요소는 방정식 쌍 (x = ... 및 y = ...)입니다. 다른 사람이이 글을 읽는 경우, 결과 지금

[[x = .06111426947129051, y = .1679154401926679], 
    [x = - 6.026109660574413, y = .3056091599125177], 
    [x = .2909171173159695, y = .4452108480953128], 
    [x = .4561445354339108 %i + 1.180400961416986, 
    y = .8695950265919334 %i + .05136082885038127], 
    [x = 1.180400961416985 - .4561445354339104 %i, 
    y = .05136082885038127 - .8695950265919334 %i], 
    [x = .06097600174281474 %i - 0.77772869099467, 
    y = 0.792517152411182 %i - .5107285531053073], 
    [x = - .06097600174281463 %i - 0.77772869099467, 
    y = - 0.792517152411182 %i - .5107285531053073], 
    [x = 0, y = 0]] 

처럼, 당신은 단지 각 y 좌표 여부를 질문에서 확실하지 않다, 또는 당신이 발견 해결 번째 솔루션을할지 여부를 선택합니다. 두 번째 해결 방법은 [n]을 사용하면됩니다. 내가 변수 solns로 위의 목록을 저장하는 경우 각 y 좌표를 원한다면, 당신이 목록에 매핑해야

(%i12) solns[2]; 
(%o12)   [x = - 6.026109660574413, y = .3056091599125177] 

를 사용할 수 있습니다. 예를 들어, 다음과 같이 입력하십시오 :

(%i14) map(lambda([pair], rhs(second(pair))), solns); 
(%o14) [.1679154401926679, 
     .3056091599125177, 
     .4452108480953128, 
     .8695950265919334 %i + .05136082885038127, 
     .05136082885038127 - .8695950265919334 %i, 
     0.792517152411182 %i - .5107285531053073, 
     - 0.792517152411182 %i - .5107285531053073, 
     0] 

(약간 출력 결과를 정리했습니다.) 아니면 똑같이 할 수 있습니다

map(rhs, map(second, solns)); 

정확하게 동일한 대답을 제공하지만 람다 형식을 쓰지 않아도됩니다.

관련 문제