ForHosting KIT · Utilidades de desarrollo

Calculadora de número de condición

La API de número de condición toma una matriz cuadrada y devuelve su número de condición en norma 2: el cociente entre el mayor y el menor valor singular de la matriz.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Esta única cifra le dice cuánto puede amplificarse un pequeño error en sus datos —un redondeo, un ruido de medición, un coeficiente truncado— al resolver un sistema lineal o invertir la matriz. Un número de condición cercano a 1 significa que el problema es estable; uno grande advierte de que la respuesta puede estar dominada por el ruido. El cálculo se ejecuta en una sola pasada determinista: se valida la matriz, se forma A-transpuesta-A y sus autovalores se obtienen mediante una iteración de Jacobi clásica, cuyas raíces cuadradas son los valores singulares.

Qué mide realmente un número de condición

Cuando usted resuelve numéricamente un sistema Ax = b, casi nunca trabaja con A y b exactos. Los coeficientes provienen de mediciones, de cálculos previos o de entradas decimales redondeadas en el camino. El número de condición de A es el factor de amplificación, en el peor caso, de esa incertidumbre: si la entrada cambia en una cantidad relativa épsilon, la solución puede cambiar hasta kappa veces épsilon. Con kappa = 10, un error del uno por ciento en los datos puede producir un error del diez por ciento en la respuesta. Con kappa = 1,000,000, puede perder seis de las dieciséis cifras decimales que caben en un doble. El número de condición en norma 2 que aquí se calcula, kappa_2, se define mediante los valores singulares de A: el mayor valor singular sigma_max mide lo máximo que la matriz puede estirar un vector, el menor sigma_min lo máximo que puede encogerlo, y su cociente es kappa_2. Una matriz ortogonal, como una rotación, tiene kappa_2 exactamente 1 —lo mejor posible. Una matriz con filas linealmente dependientes tiene sigma_min = 0 y kappa_2 infinito, y por eso esta capacidad rechaza las matrices singulares en lugar de imprimir un número enorme y sin sentido.

Cómo se calcula aquí el número

El algoritmo es determinista y autocontenido, sin biblioteca numérica externa. Primero se normaliza su entrada: las entradas pueden enviarse como un arreglo de filas o como texto plano con filas separadas por saltos de línea o punto y coma, y valores por comas o espacios. Cada entrada debe ser un número finito, todas las filas deben tener la misma longitud y la matriz debe ser cuadrada —una matriz de 2 por 3 no tiene número de condición en este sentido, así que la solicitud se rechaza con un error claro que nombra el campo culpable. El código forma después la matriz simétrica G = A^T A y extrae sus autovalores con la iteración cíclica clásica de Jacobi: una secuencia fija de rotaciones planas que anulan las entradas fuera de la diagonal una a una hasta que la matriz queda diagonal con precisión de trabajo. Como el orden de las rotaciones, la convención de signos y el tope de barridos son fijos, la misma matriz produce siempre la misma respuesta, bit a bit. Los autovalores de G son los cuadrados de los valores singulares de A, de modo que sus raíces cuadradas dan sigma_max y sigma_min, y el cociente, redondeado a doce cifras decimales para una salida estable, es el número de condición devuelto. Las matrices cuyo valor singular más pequeño cae por debajo de un suelo numérico escalado —aproximadamente kappa_2 por encima de diez mil millones— se reportan como numéricamente singulares, porque la doble precisión no puede distinguirlas honestamente de una matriz deficiente en rango.

Cómo leer el resultado y usarlo bien

La respuesta le da cuatro cosas: el número de condición en sí, sigma_max, sigma_min y un mensaje en lenguaje claro que clasifica la matriz. Considere bien condicionada cualquier kappa por debajo de unas 10 —los solucionadores directos se comportarán bien. Entre cien y un millón, prevea una pérdida visible de precisión y prefiera algoritmos estables: descomposición QR o LU con pivoteo parcial, en lugar de formar una inversa explícita, que cuadra el error del cálculo que la alimenta. Por encima de un millón, la lectura honesta es que la respuesta depende más del ruido de sus datos que del solucionador, y la medida correcta suele ser reescalar el problema, regularizarlo o revisar si la matriz del modelo es la adecuada. Dos hábitos prácticos rinden: compruebe el número de condición antes de culpar a un solucionador por una mala respuesta, porque una matriz mal condicionada produce respuestas erróneas con código correcto; y compare números de condición entre formulaciones, porque el mismo problema físico escrito con otras unidades o funciones base puede diferir en órdenes de magnitud en kappa. El mismo código que corre aquí se ejecuta gratis en su navegador en esta página, de modo que puede pegar una matriz y ver el resultado antes de pagar $0.002 por solicitud para automatizarlo.

Comprobar un sistema lineal antes de resolverlo

Estime cuántas cifras de la solución puede confiar antes de ejecutar un cálculo LU o QR sobre coeficientes medidos.

Diagnosticar una regresión que no converge

Una matriz de diseño casi colineal aparece como un número de condición enorme de X-transpuesta-X mucho antes de que el solucionador falle.

Comparar discretizaciones del mismo problema

Dos formulaciones de elementos finitos o de funciones base de un mismo modelo físico pueden diferir en órdenes de magnitud en su condicionamiento; elija la estable.

¿Cuánto cuesta?

$0.002 por solicitud. También es gratis ejecutarlo en su navegador en esta página.

¿Por qué se rechazó mi matriz como singular?

Porque su valor singular más pequeño es numéricamente cero, lo que hace el número de condición infinito. Esto también cubre matrices técnicamente invertibles pero deficientes en rango a precisión doble (kappa por encima de unos diez mil millones).

¿Por qué la matriz tiene que ser cuadrada?

El número de condición en norma 2, kappa_2 = sigma_max / sigma_min, se define mediante los valores singulares de una matriz de coeficientes cuadrada. Para problemas de mínimos cuadrados rectangulares, condicione en su lugar la matriz cuadrada X-transpuesta-X.

¿Cómo puedo enviar la matriz?

Como un arreglo de filas numéricas de igual longitud, o como texto con filas separadas por saltos de línea o punto y coma y entradas por comas o espacios. Ambas formas dan resultados idénticos.

¿Qué tamaño de matriz admite?

Hasta 32 por 32, con valores absolutos de entrada de hasta 1e12. El cálculo es aritmética exacta en doble precisión con una iteración de Jacobi determinista.

¿Es reproducible el resultado?

Sí. La iteración de Jacobi usa un orden de rotaciones, una convención de signos y un tope de barridos fijos, de modo que la misma entrada produce siempre la misma salida, redondeada a doce cifras decimales.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/math/condition-number

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/math/condition-number \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"matrix":[[2,1],[1,2]]}'
{
  "matrix": [
    [
      2,
      1
    ],
    [
      1,
      2
    ]
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.condition_number",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_rows32
max_cols32
max_abs1000000000000
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →