how to calculate scalar with matrix

2 次查看(过去 30 天)
Kathleen
Kathleen 2024-2-8
编辑: VBBV 2024-2-8
I need to code the following: I got to part b and I am unsure how to get a scalar in the code.
Goal: (b)
% chapter 2-1
clear; clc; close all
%% normal stress
fprintf('\n ====== Exercise 2.1 a=======\n\n')
tau = [-30 -20; -20 -40]; %2D stress tensor (Mpa)
theta = 10;
fhat = [sind(theta) , cosd(theta)];
nhat = [ cosd(theta) , -sind(theta)];
tnhat = tau * nhat.';
tn = nhat * tnhat %normal stress
%% shear stress
ts = fhat * tnhat
fprintf('\n ====== Exercise 2.1 a end=======\n\n')
%%
fprintf('\n ====== Exercise 2.1 b =======\n\n')
I = [1 0; 0 1];
det[-30-x -20; -20 -40-x] = 0
Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
fprintf('\n ====== Exercise 2.1 b end=======\n\n')
  2 个评论
VBBV
VBBV 2024-2-8
编辑:VBBV 2024-2-8
Use the symbolic toolbox to declare the unknown variable. Then solve the determinant using solve function for the unknown
syms x
D = [-30-x -20; -20 -40-x];
S = det(D) % determinant
sol = solve(S==0,x)
VBBV
VBBV 2024-2-8
编辑:VBBV 2024-2-8
syms lambda % define lambda as symbolic variable (eigen value)
tau = [-30 -20; -20 -40]; % shear stress
I = [1 0; 0 1]; % identity matrix
S = det(tau - I*lambda) % determinant of characteristic equation
S = 
sol = solve(S==0,lambda) % solve for eigen values
sol = 
double(vpa(sol))
ans = 2×1
-55.6155 -14.3845

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2024-2-8
编辑:Matt J 2024-2-8
Don't see any reason why you'd have to reinvent eigendecomposition:
lambda=eig([-30,-20; -20 -40])
lambda = 2×1
-55.6155 -14.3845

类别

Help CenterFile Exchange 中查找有关 Stress and Strain 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by