F=Kff*uf - Matrix operation

2 vues (au cours des 30 derniers jours)
BioZ
BioZ le 11 Mai 2021
Commenté : Rik le 11 Mai 2021
Greetings everyone, I am trying to do some simple matrix operation in Matlab.
I have equation: Ff=Kff*Uf where Ff is 3x1 matrix, Kff is 3x3 matrix and Uf is 3x1 matrix. As in the following picture.
How can I solve this to find U1,U2,U3 in matlab?
When I attempt solving this with matlab I get number of errors such as: (Error using / ).
Any help would be much appreciated. Thank you.
clc
clear
F = [383.02;
321.39;
0;];
Kff = [634.8 -191.2 -353.6;
-191.2 447.3 353.6;
-353.6 353.6 683;];
%%Uf = F./Kff

Réponse acceptée

Rik
Rik le 11 Mai 2021
You were almost there:
F = [383.02;
321.39;
0;];
Kff = [634.8 -191.2 -353.6;
-191.2 447.3 353.6;
-353.6 353.6 683;];
Uf=Kff\F
Uf = 3×1
0.8703 1.2431 -0.1930
fprintf('%.5f\n',F-Kff*Uf)%check if they are indeed equal (within a rouding error)
0.00000 0.00000 -0.00000

Plus de réponses (1)

EmirBeg
EmirBeg le 11 Mai 2021
Maybe like this?
F = [383.02;
321.39;
0;];
Kff = 10^2* [634.8 -191.2 -353.6;
-191.2 447.3 353.6;
-353.6 353.6 683];
Uf = F'/Kff; % You used a dot but u need to use ' to transpose
  1 commentaire
Rik
Rik le 11 Mai 2021
Almost. You would have to transpose the result again to make sure Uf is a column vector.
F = [383.02;321.39;0];
Kff = 10^2* [634.8 -191.2 -353.6;-191.2 447.3 353.6;-353.6 353.6 683];
Uf = (F.'/Kff).'
Uf = 3×1
0.0087 0.0124 -0.0019
fprintf('%.5f\n',F-Kff*Uf)%check if they are indeed equal (within a rouding error)
0.00000 -0.00000 0.00000

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by