1 votos

Mathematica 8 no puede resolver el problema de valores propios

No puedo explicar este problema de valores propios. Ambas matrices son positivas definidas y simétricas, pero algunas soluciones son complejas.

Pero si se trata de matrices de orden inferior, las soluciones son reales. A medida que aumento el número de orden de las matrices, tengo soluciones cada vez más complejas (y al mismo tiempo las matrices son definidas positivas y simétricas) ¿Cuál es el problema? Intento aumentar la precisión, pero nada.

Desde aquí puedes copiar y pegar en la hoja de trabajo de Mathematica para ver.

http://pastebin.com/raw.php?i=hM6DBVk5

Saludos

5voto

Afetter Puntos 943

No estoy seguro de que este sea el lugar apropiado para hacer esta pregunta. En el futuro, intentaría tal vez enlazar a un documento CDF o dar un resumen del problema que estás resolviendo para que la gente pueda opinar sin ser gurús de Mathematica.

El problema aquí es que estás haciendo aritmética de punto flotante. Los resultados no son precisos por ello. Quizás las matrices tienen un número de condición malo. Afortunadamente Mathematica es capaz de trabajar con números simbólicamente que es lo que querrás hacer aquí.

En particular, observe que la matriz b está llena de números de punto flotante. Estos se pueden convertir en números procesables simbólicamente con el comando Rationalize.

Después de definir la matriz b evaluar:

B = Racionalizar[B, 0]

B se llenará de números racionales en lugar de números de punto flotante.

Los resultados de Solve son ahora todos números reales.

3voto

Matthew Trevor Puntos 5277

El problema aquí es que los elementos de la matriz $B$ son números de punto flotante. Y puede que en algún momento se pierda precisión. Si para hacer $B$ una matriz con elementos racionales, entonces las respuestas serán reales. Por ejemplo,

B = Round[B 10^30]/10^30;
D0 := -x*A + B;
Solve[Det[D0] == 0, x]//N

da

{{x -> 14847.993867199206}, {x -> 148848.79011442242}, {x -> 
   609570.78149666}, {x -> 1.8969502426287285*^6}, 
   {x -> 8.338192814798254*^6}, {x -> 2.2248467905151808*^8}, {x -> 
   2.3271962509336177*^8}, {x -> 2.4808572853336135*^8}, 
   {x -> 2.746203941496255*^8}, {x -> 3.9842849588286966*^8}, {x -> 
   1978.2943756360853}, {x -> 55725.53921427025}, 
   {x -> 321863.65320953313}, {x -> 1.1383725875194645*^6}, {x -> 
   5.278252037812979*^6}, {x -> 2.1976933210891974*^8}, 
   {x -> 2.2745356114392006*^8}, {x -> 2.4019361153335622*^8}, {x -> 
   2.6138647573316988*^8}, {x -> 3.547388273684647*^8}}

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X