フィルターのクリア

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 Center および File ExchangeStress and Strain についてさらに検索

製品


リリース

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by