Plotting error: Need to plot the evolution of symbolic matrix?

1 view (last 30 days)
syms t
PHI=[ 1, t, t/3 - (2*exp(-3*t))/9 + 2/9, (2*t)/3 + (2*exp(-3*t))/9 - 2/9;
0, 1, (5*exp(-3*t))/12 - (3*exp(t))/4 + 1/3, 2/3 - exp(t)/4 - (5*exp(-3*t))/12;
0, 0, exp(-3*t)/4 + (3*exp(t))/4, exp(t)/4 - exp(-3*t)/4;
0, 0, (3*exp(t))/4 - (3*exp(-3*t))/4, (3*exp(-3*t))/4 + exp(t)/4];
N=norm(PHI);
ezplot(N,[0,1])

Accepted Answer

Star Strider
Star Strider on 7 Dec 2019
Try this:
PHI = @(t) [ 1, t, t/3-(2*exp(-3*t))/9+2/9, (2*t)/3+(2*exp(-3*t))/9-2/9;
0, 1, (5*exp(-3*t))/12-(3*exp(t))/4+1/3, 2/3-exp(t)/4-(5*exp(-3*t))/12;
0, 0, exp(-3*t)/4+(3*exp(t))/4, exp(t)/4-exp(-3*t)/4;
0, 0, (3*exp(t))/4-(3*exp(-3*t))/4, (3*exp(-3*t))/4+exp(t)/4];
N = @(t) norm(PHI(t));
t = linspace(0, 1, 50);
for k = 1:numel(t)
Nt(k) = N(t(k));
end
figure
plot(t, Nt)
grid
  4 Comments
Shauvik Das
Shauvik Das on 7 Dec 2019
syms t
PHI=[ 1, -t, -t/3 - (2*exp(-3*(-t)))/9 + 2/9, (2*-t)/3 + (2*exp(-3*(-t)))/9 - 2/9;
0, 1, (5*exp(-3*(-t)))/12 - (3*exp(-t))/4 + 1/3, 2/3 - exp(-t)/4 - (5*exp(-3*(-t)))/12;
0, 0, exp(-3*(-t))/4 + (3*exp(-t))/4, exp(-t)/4 - exp(-3*(-t))/4;
0, 0, (3*exp(-t))/4 - (3*exp(-3*(-t)))/4, (3*exp(-3*(-t)))/4 + exp(-t)/4];
PHIT=transpose (PHI);
B=[0;1;2;1];
BT=transpose (B);
GRAMi = PHI*B*BT*PHIT
GRAMfinal=int(GRAMi,t, 0, t)
A= det(GRAMfinal)
N = @(t) (A(t));
t = linspace(0, 1, 50);
for k = 1:numel(t)
Nt(k) = N(t(k));
end
figure
plot(t, Nt)
grid
%% Not sure why is it not plotting determinant of the matrix in the same way.
Star Strider
Star Strider on 7 Dec 2019
Try this:
PHI = @(t) [ 1, t, t/3-(2*exp(-3*t))/9+2/9, (2*t)/3+(2*exp(-3*t))/9-2/9;
0, 1, (5*exp(-3*t))/12-(3*exp(t))/4+1/3, 2/3-exp(t)/4-(5*exp(-3*t))/12;
0, 0, exp(-3*t)/4+(3*exp(t))/4, exp(t)/4-exp(-3*t)/4;
0, 0, (3*exp(t))/4-(3*exp(-3*t))/4, (3*exp(-3*t))/4+exp(t)/4];
PHIT = @(t) transpose(PHI(t));
B=[0;1;2;1];
BT=transpose(B);
GRAMi = @(t) PHI(t)*B*BT*PHIT(t);
GRAMfinal = @(t) integral(GRAMi, 0, t, 'ArrayValued',1)
A = @(t) det(GRAMfinal(t));
N = @(t) (A(t));
t = linspace(0, 1, 50);
for k = 1:numel(t)
Nt(k) = N(t(k));
end
figure
plot(t, Nt)
grid
That ran without error for me, and appears to do what you want.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!