質問

xを解きたい。 Schemeでどうすればいいですか?

T1-F2=0
F1+T2=GM-Gm
Cos(60)(2.5*Gm+x*GM-l*F1)-l*Sin(60)*T1=0

F1=0.1*T1
F2=0.3*T2
M=20
m=80
l=5

私の試みは:

(lambda T1 .            ;; T1=F2
(lambda F2 .            ;; F2=0.3*T2
 (lambda F1 .           ;; F1=0.1*T1
  (lambda Gm .
   ( lambda GM .
     (- 
      ( * 1/2
        ( - 
          ( + ( * 2.5 Gm ) ( * x GM ) )    ;; solve x
          5 * F1
        )
      )
      ( * 
        ( * 10 1/sqrt(3) ) 
        T1 
      )
     )
   ) 80
  ) 20
 ) ( * 0.1 T1 )
 ) ( * 0.3 T2 )
) F2

;; ???   F1+T2=GM-Gm
役に立ちましたか?

解決

これらの高階関数をすべて作成している理由はわかりませんが、私の意見では混乱を招くだけです。代わりに、代数学の帽子からほこりを取り除き、少し考えてみてください。

5つの未知数を持つ5つの方程式があります。 (F1、F2、T1、T2、およびx)。これらの方程式の3つ( T1-F2 = 0 F1 = 0.1 * T1 および F2 = 0.3 * T2 )は、ごく簡単なことです。実現するために、置換により、バットからすぐに3つの未知数を排除します。 T1が表示されるすべての場所で、T1 = F2なのでF2をその場所に固定します(あなたが私と似ていて、自分自身をあまり信用していない場合は、いつでも元の方程式に最終的な数値を代入して、正しいことを確認できます。)

次に、2つの方程式が残ります。手で方程式を解くことができる場合、xの方程式が得られ、それを評価するプログラムを作成するだけです。それ以外の場合は、2つの方程式と2つの未知数のシステムで一般的なアプローチを使用します。

一般に、既知の量が与えられた未知数x1、x2、... xnの線形方程式を解くには、それらを標準形式(AおよびB係数が既知)に入れます:

A11*x1 + A12*x2 + A13*x3 ... + A1n*xn = B1
A21*x1 + A22*x2 + A23*x3 ... + A2n*xn = B2
 .
 .
 .
An1*x1 + An2*x2 + An3*x3 ... + Ann*xn = Bn

または、マトリックス形式:

Ax = B

これにはxを解決する多くの方法があります。 wikipedia を参照してください。大規模システムの標準的な方法。

2つの方程式と2つの未知数のシステムの場合:

A11*x1 + A12*x2 = B1
A21*x1 + A22*x2 = B2

先に進んで Cramerのルールを使用できる十分な方程式があります。 Cramerのルールは、数値の精度とエラーに対する感度の両方、および他の手法と比較して非常に遅いため、大きなNに対してひどいです。ただし、N = 2の場合は問題ありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top