He creado un código para resolver un sistema de 6 ecuaciones en 6 incógnitas. Cuando trato de resolverlos juntos, MATLAB crea una nueva variable z. ¿Por qué?

Es un poco confuso seguir cuáles son sus entradas, cuáles son las salidas y cuáles son los comentarios, en el registro de la consola capturado.

Sin embargo, mirando la documentación de la función root() (Representa las raíces del polinomio), que se incluye en la solución simbólica desordenada al final, los nombres de las variables a los que hace referencia pueden necesitar ser declarados antes de su uso con la función syms ( Crear variables y funciones simbólicas).

Esta z parece caer de la función solve() (Ecuaciones y solucionador de sistemas), y a partir de esa documentación, la forma de evaluarla adecuadamente es usar la función vpa() (aritmética de precisión variable – MATLAB vpa).


Todo esto supone que el problema está configurado y evaluado correctamente; No puedo ayudarte con esa parte.

Algunos pensamientos:

¿Están A / I1 definidos / asignados? Las declaraciones de asignación para ellos en la parte superior de la página 1 no proporcionan ningún valor.

z puede referirse a una cantidad compleja.

Si A e I1 no están definidos, tampoco lo están k1, k2 o k3, que son funciones de A e I1.

¿Por qué no le pides que te muestre la expresión vectorial para eq? Eso le mostrará de inmediato qué sistema de ecuaciones está tratando de resolver. Muestre el resultado de cada paso para solucionarlo y es posible que vea el problema.

Por lo que puedo ver, solo tienes dos incógnitas, u1 y c. Las otras cantidades (f2, f3, f5, f6) no son variables libres, porque están limitadas a ser expresables en términos de u1 mediante la asignación de f [] = matrixb * u [] en la primera página.

Por lo tanto, tiene un sistema de cuatro incógnitas (si toma A e I1 como variables) y seis ecuaciones de restricción, que pueden estar sobre restringidas (todavía obtiene un conjunto de soluciones, por lo que algunas de las seis ecuaciones pueden no ser restricciones, de hecho no implican todas las variables o están implicadas por otras ecuaciones de restricción para que no agreguen más restricciones).

Espero que esto ayude. Perdón por los errores que te llevan por mal camino.

Es imposible establecer la respuesta explícitamente, por lo que Matlab la ha encontrado implícitamente, en términos de las raíces de un polinomio. En ese caso, ese polinomio godawful en z que ves allí.

Una forma de imaginar esto es imaginar una respuesta más simple. Digamos que la solución a ese problema fue [math] \ sqrt {2}. [/ Math] Podrías escribir [math] \ sqrt {2} [/ math] directamente, o decir que la respuesta es la raíz de [math] ] z [/ math] [math] ^ 2 – 2 = 0 [/ math] y déjalo en esa forma. La nueva variable [math] z [/ math] no importa, porque es solo una variable ficticia. Todo lo que te importa es la raíz.

Para los polinomios de orden 5 y superiores, no siempre hay una forma de escribir directamente las raíces usando funciones elementales, por lo que Matlab se ve obligado a dejarlo como “la raíz de [matemáticas] f \ izquierda (z \ derecha) [/ matemáticas] “y espero que sea suficiente.