1 votes

Multiplication des coefficients polynomiaux dans Excel

J'aimerais disposer d'une méthode Excel générale pour multiplier les polynômes. Mais je ne veux pas encore évaluer le polynôme, x est en fait un nombre imaginaire. Je sais comment utiliser les nombres complexes dans Excel, j'ai déjà une feuille de calcul qui évalue les équations à partir des coefficients polynomiaux. Mais, en génie électrique, le point de départ est généralement un ensemble de polynômes factorisés qui doivent d'abord être multipliés avant que ma feuille de calcul ne fonctionne.

Exemple, commençant par :

m2*x^2 + m1*x^1 + m0*x^0 and
n2*x^2 + n1*x^1 + n0*x^0

En multipliant ces deux valeurs, on obtient

m2*n2*x^4 + (m2*n1+m1*n2)*x^3 + (m2*n0+m1*n1+m0*n2)*x^2 + (m1*n0+m0*n1)*x^1 + m0*n0*x^0

Ainsi, étant donné m2 ... m0, et n2 ... n0

Je veux connaître p4 ... p0, où :

p4 = m2*n2
p3 = m2*n1 + m1*n2
p2 = m2*n0 + m1*n1 + m0*n2 
p1 = m1*n0 + m0*n1
p0 = m0*n0

J'espère que vous pouvez voir le modèle. Bien entendu, j'aimerais disposer d'une méthode générale pour les polynômes plus grands.

Je pourrais faire de la force brute, puisque le plus grand nombre que je rencontrerais probablement serait quatre polynômes d'ordre 2 (x^2), mais il devrait y avoir une méthode plus élégante.

Je préférerais ne pas utiliser Visual Basic, car je souhaite partager ce document lorsque j'aurai terminé, et les gens sont paranoïaques à l'égard des feuilles de calcul VBA.

L'utilisation de nombreuses lignes et colonnes pour les résultats intermédiaires est autorisée. Je préférerais avoir le résultat dans une ligne avec p0 sur le côté droit (p8 ... p0). Si la méthode donne naturellement un autre format, je suis sûr que je peux la transformer pour qu'elle corresponde à mes besoins.

Edit : Voici une solution de force brute. Elle n'est pas aussi générale que je le souhaiterais, mais elle répondra à mes besoins pour l'instant.

enter image description here

-1voto

FormulaChop Points 142

Suivant l'inspiration des commentateurs, j'ai une solution de multiplication matricielle.

Voici une capture d'écran de ce que cela donne :

Matrix Multiplication

Le polynôme du côté gauche de chaque matrice est placé dans ses colonnes. Ensuite, la matrice est multipliée par le polynôme du côté droit à l'aide de la fonction MMULT() fonction. La colonne Résultat intermédiaire indique les constantes polynomiales (la constante non nulle la plus basse est s^0).

L'astuce consistait à écrire la formule pour remplir la matrice. Elle se présente comme suit :

=IF(Row-Col+1 > 0, INDEX(Polynomial_1, Row-Col+1, 1), 0)

Il utilise le Row y Col des nombres de part et d'autre de la matrice pour indexer les constantes du polynôme.

Une fois la multiplication matricielle effectuée, vous pouvez utiliser le résultat comme polynôme d'entrée pour la matrice suivante, autant de fois que nécessaire.

J'ai utilisé FormulaChop pour générer cette formule. (Divulgation complète : j'ai écrit FormulaChop). Ici est un lien vers une capture d'écran du résultat. Ici est un lien permettant de télécharger la feuille de calcul que j'ai élaborée pour cette réponse.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X