Pregunta

Quiero resolver x. ¿Cómo puedo hacerlo en 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

Mi intento es:

(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
¿Fue útil?

Solución

No estoy seguro de por qué estás creando todas esas funciones de orden superior, solo hace las cosas confusas en mi opinión. En cambio, desempolve su sombrero de álgebra y piense un poco en esto.

Tienes 5 ecuaciones con 5 incógnitas. (F1, F2, T1, T2 yx). Tres de esas ecuaciones ( T1-F2 = 0 , F1 = 0.1 * T1 y F2 = 0.3 * T2 ) son triviales, como parece para darse cuenta, así que elimine 3 de las incógnitas desde el principio a través de la sustitución, por ejemplo donde sea que vea T1, pegue F2 en su lugar ya que T1 = F2. (Si eres como yo y no confías en ti mismo, siempre puedes sustituir los números finales de nuevo en las ecuaciones originales para verificar que lo has hecho bien).

Entonces te quedan dos ecuaciones. Si puede resolver las ecuaciones a mano, tendrá una ecuación para x y solo tendrá que escribir un programa para evaluarla. De lo contrario, utilice el enfoque general con un sistema de 2 ecuaciones y 2 incógnitas.

En general, para resolver ecuaciones lineales para incógnitas x1, x2, ... xn, dadas las cantidades conocidas, póngalas en forma estándar (donde se conocen los coeficientes A y 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

o, en forma de matriz:

Ax = B

Esto tiene muchas formas de resolver para x, consulte wikipedia ; El método estándar para sistemas grandes.

Para un sistema de 2 ecuaciones y 2 incógnitas:

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

hay pocas ecuaciones suficientes para seguir adelante y usar Regla de Cramer . La regla de Cramer es horrible para N grande, tanto por la precisión numérica y la sensibilidad al error, como porque es muy lenta en comparación con otras técnicas. Pero para N = 2 está bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top