F=Kff*uf - Matrix operation

4 views (last 30 days)
BioZ
BioZ on 11 May 2021
Commented: Rik on 11 May 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

Accepted Answer

Rik
Rik on 11 May 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

More Answers (1)

EmirBeg
EmirBeg on 11 May 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 Comment
Rik
Rik on 11 May 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

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!