J'essaye d'écrire un programme Matlab qui accepte des variables pour un système de l'utilisateur, mais il y a plus de variables que de paramètres système. Pour être précis, six variables de trois équations:Résolution de variables dans un système sur-paramétré
w - d - M = 0
l - d - T = 0
N - T + M = 0
Cela pourrait être représenté sous forme matricielle A*x=0
où
A = [1 0 0 -1 0 -1;
0 1 0 -1 -1 0;
0 0 1 0 -1 1];
x = [w l N d T M]';
Je voudrais être en mesure de résoudre ce système donné un sous-ensemble connu du variables Par exemple, si l'utilisateur donne d
, T
, M
, alors le système est trivialement résolu pour les trois autres variables. Si l'utilisateur fournit w
, N
, M
, il devient alors un système 3-DOF résoluble. Etc. (Si l'utilisateur sur ou sous-spécifie le système, une erreur peut évidemment entraîner.)
Compte tenu de tout un de ces combinaisons, il est simple à (a priori) utiliser l'algèbre matricielle pour calculer les quantités inconnues. Mais je ne sais pas comment résoudre le cas général, mis à part l'utilisation de la boîte à outils symbolique (que je préfère ne pas faire pour des raisons de compatibilité). Quand j'ai commencé avec cette approche, j'ai pensé que cette étape serait facile, mais mon algèbre linéaire est rouillée; Ai-je manqué quelque chose de simple?
Cela semble prometteur, merci! –
En effet, fonctionne comme un charme :) Après avoir vu la solution j'aurais pu être en mesure de comprendre que pour moi-même ... trop longtemps une soirée pour moi, je pense! –