nm

11363 Reputation

20 Badges

13 years, 39 days

MaplePrimes Activity


These are questions asked by nm

I know this has to do with name scoping issue. But I do not see how to fix it now.

Calling J,Q:=LinearAlgebra:-JordanForm(A,output=['J','Q']); works in global, but not inside a proc.

What is the correct way to use this inside a proc?


 

restart;
A:=Matrix([[1,2],[3,4]]);
J,Q:=LinearAlgebra:-JordanForm(A,output=['J','Q']);

Matrix(2, 2, {(1, 1) = 1, (1, 2) = 2, (2, 1) = 3, (2, 2) = 4})

Matrix(%id = 18446745500542083790), Matrix(%id = 18446745500542076678)

restart;
foo:=proc(A::Matrix)
local J,Q;
J,Q:=LinearAlgebra:-JordanForm(A,output=['J','Q']);
end proc;
A:=Matrix([[1,2],[3,4]]);
foo(A);

foo := proc (A::Matrix) local J, Q; J, Q := LinearAlgebra:-JordanForm(A, output = ['J', 'Q']) end proc

Matrix(%id = 18446745500542658910)

Error, (in foo) invalid input: LinearAlgebra:-JordanForm expects value for keyword parameter output to be of type {list(identical(J, Q)), identical(J, Q)}, but received [J, Q]

 


 

Download jordan_issue.mw

I remember seeing sometime ago an option called something like "fraction free" in LinearAlgebra. But may be I was looking at something else or different package. I can't remember now. I searched the help pages now and googled and can't find it.

In Maple, when asking for eigenvectors of matrix, I'd like the vectors to come out fraction free, like with Mathematica.

It is ofcourse easy to write code to post process this and remove the fractions.

But before I do this, I thought to ask. Here is an example

restart;
A:=Matrix([[48,-30,-14,1],[65,-41,-19,0],[17,-10,-5,3],[-35,22,10,0]]);
(e,v):=LinearAlgebra:-Eigenvectors(A);

In Mathematica:

Anyone knows if such option exists somewhere?

Maple 2020.1

In this example, PDEtools:-Solve throws an error, while solve returns empty solution.

Why the different behavior? Should PDEtools:-Solve also return empty solution like solve?

I noticed this, when I changed my code from using solve to using PDEtools:-Solve

restart;
eq:=[ eta1+2*eta2 = 0, eta1+2*eta2 = a1+a3, eta2 = a2+2*a3];
PDEtools:-Solve(eq,[a1, a2, a3]);


solve(eq,[a1, a2, a3])

interface(version)
Standard Worksheet Interface, Maple 2020.1, Windows 10, July 30 

   2020 Build ID 1482634


Physics:-Version()

The "Physics Updates" version in the MapleCloud is 832 and is 

   the same as the version installed in this computer, created 

   2020, October 3, 5:34 hours Pacific Time.


Maple 2020.1 

Why Maple gives different looking solution when calling  

dsolve(sys);

vs.

dsolve(sys,deps);

? Both solution are actually correct. But look different.  Here is an example

restart;
sys:=[
diff(x(t),t) = 2*x(t)-z(t), 
diff(y(t),t) = 2*y(t)+z(t), 
diff(z(t),t)=2*z(t),
diff(w(t),t)=-z(t)+2*w(t)];
deps:=[x(t),y(t),z(t),w(t)];

dsolve(sys);

dsolve(sys,deps);

Notice the difference:

In first case, the x(t) and y(t) solutions have 2 constants of integrations, and in the second case, they have 3 constants of integration.

If we solve this using the matrix exponential method, the solution comes out to match the first one:

A:=Matrix([[2,0,-1,0],[0,2,1,0],[0,0,2,0],[0,0,-1,2]]):
sol:=Vector([x(t),y(t),z(t),w(t)])=LinearAlgebra:-MatrixExponential(A,t).Vector([_C1,_C2,_C3,_C4]);
simplify(sol)

Again, both solution verify to 0, using odetest, and I assume now it is correct (have no reason to think odetest is not correct).

But I'd like to understand more why when passing the unknowns to dsolve, the solution comes out different looking (3 constants of integrations, vs. two in this case). Should the solution be the same looking in both cases? 

This came out, since I thought my solution was wrong, since it did not look like Maple's. 

 

Maple 2020.1

 

I'd like to plot phase plot of 2 first order ode's (along with 2 eigenvectors on same plot).

When using DEtools:-dfieldplot, the labels on the axis are not at the end, so hard to see them. Along with all the arrows, they become even harder to see.

Is it possible to have these labels (y,x) be at the ends of the axis so they are more easily seen? Here is an example below.

restart;
ode:=[diff(x(t),t) = 2*x(t)-y(t), diff(y(t),t) = 3*x(t)-2*y(t)]:
p1:=DEtools:-dfieldplot(ode,[x(t),y(t)],t=-2..2,x=-4..4, y=-4..4,arrows=SLIM,color=coral):
p2:=plot(3*x,x=-4..4,y=-4..4,color=magenta):
p3:=plot(x,x=-4..4,y=-4..4,color=blue):
plots:-display([p1,p2,p3]);

I looked at help, plot options, but do not see how to do it so far. I can change the font of the label and the font size, but I want to change the location to be at the end.

Maple 2020.1

 

First 111 112 113 114 115 116 117 Last Page 113 of 200