1

solve コマンドを使用して 2 つの連立非線形方程式を解いた後、 と の配列を取得して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$  

solve([
    x^2*(A*y^3+B*y-C)-D*x*y^2+E*y^3,
    A*x^2+(x/y^2)*(H*y+G)+F
    ] ,[x,y]),numer;

ここには、それぞれ 8 つの値が含まれてxおりy、2 番目の要素だけにアクセスする必要があります。

4

1 に答える 1

2

Maxima はここに結果のリストを返します (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座標だけが必要なのか、それとも解決が見つかった2番目の解決策が必要なのかわかりません。2 番目の解決策では、単に[n]n 番目のものを取得するために使用します。したがって、上記のリストを変数として保存した場合solns、使用できます

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

y座標が必要な場合は、リストにマップする必要があります。たとえば、これを試してください:

(%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));

まったく同じ答えが得られますが、ラムダ形式を記述する必要はありません。

于 2012-02-15T15:54:25.650 に答える