Solving a symbolic system of equations
2 views (last 30 days)
Show older comments
I'm trying to solve a symbolic system of equations in MATLAB, but it keeps giving me zero for the variables I'm solving for. I know this isn't the answer since I worked the problem out by hand. Is there a way to use the solve function to do this?
% Equillateral Strain Rosette Problem
% angle values (A = 0, B = 120; C =60; seems to be standard for a 60 degree
% equilateral triangle)
A = 0;
B = 120;
C = 60;
% Given Angles
ThetaA = deg2rad(A); %radians for A, it always seems to start at 0
ThetaB = deg2rad(B); %in an equillateral triangle seems to be 180-interior angle
ThetaC = deg2rad(C); %seems to be just interior angle
syms strainx strainy strainxy strainA strainB strainC
strainA = (strainx+strainy)/2 + (strainx-strainy)/2*cos(2*ThetaA) + strainxy*sin(2*ThetaA);
strainB = (strainx+strainy)/2 + (strainx-strainy)/2*cos(2*ThetaB) + strainxy*sin(2*ThetaB);
strainC = (strainx+strainy)/2 + (strainx-strainy)/2*cos(2*ThetaC) + strainxy*sin(2*ThetaC);
eqns = [strainA, strainB, strainC];
vars = [strainx, strainy, strainxy];
[strainx, strainy, strainxy] = solve(eqns,vars); %Need to solve in terms of strainA strainB and strainC
0 Comments
Accepted Answer
Stephan
on 23 Oct 2020
Try:
% Equillateral Strain Rosette Problem
% angle values (A = 0, B = 120; C =60; seems to be standard for a 60 degree
% equilateral triangle)
A = 0;
B = 120;
C = 60;
% Given Angles
ThetaA = deg2rad(A); %radians for A, it always seems to start at 0
ThetaB = deg2rad(B); %in an equillateral triangle seems to be 180-interior angle
ThetaC = deg2rad(C); %seems to be just interior angle
syms strainx strainy strainxy strainA strainB strainC
eq(1) = strainA == (strainx+strainy)/2 + (strainx-strainy)/2*cos(2*ThetaA) + strainxy*sin(2*ThetaA);
eq(2) = strainB == (strainx+strainy)/2 + (strainx-strainy)/2*cos(2*ThetaB) + strainxy*sin(2*ThetaB);
eq(3) = strainC == (strainx+strainy)/2 + (strainx-strainy)/2*cos(2*ThetaC) + strainxy*sin(2*ThetaC);
vars = [strainx, strainy, strainxy];
[strainx, strainy, strainxy] = solve(eq,vars) %Need to solve in terms of strainA strainB and strainC
which gives:
strainx =
strainA
strainy =
(2*strainB)/3 - strainA/3 + (2*strainC)/3
strainxy =
-(3^(1/2)*(strainB - strainC))/3
0 Comments
More Answers (0)
See Also
Categories
Find more on Calculus 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!