nm

7160 Reputation

19 Badges

10 years, 142 days

MaplePrimes Activity


These are answers submitted by nm

Maple by default uses 10 decimal points to display real numbers.

This works for 2021.1 on windows 10, using worksheet interface

restart;
interface(typesetting=extended);
Typesetting:-Settings(striptrailing=true);
V := 4;
K := 16.56;
H := 0.5;
q1 := diff(y[1](x), x) = V*y[2](x)/H - K*y[1](x)/H;

Or you could do

restart;
V := 4;
K := 16.56;
H := 0.5;
q1 := diff(y[1](x), x) = V*y[2](x)/H - K*y[1](x)/H:
convert(q1,rational)

See this post for reference. How-To-Delete-Zeros-After-Decimal-Point

btw, why are using evalf for? Your numbers already real.

 

When expression is   A+B then operands are A and B. And select selects operand which has what you wanted. So if the expression is t*u[1,1,1]*u[1,1,1,2]+2 then A=t*u[1,1,1]*u[1,1,1,2] and B=2, that is why it returned A.

When the input is t*u[1,1,1]*u[1,1,1,2] then expression is A*B*C and each one is now an operand. So A=t, B=u[1,1,1] and C=u[1,1,1,2] and that is why select now returned only u[1,1,1]

One way could be to do 

LT:=proc(expr, term)
 if type(expr,`+`) or nops(expr)=1 or expr=term then
    select(has, expr, term);
 elif type(expr,`*`) then
      if has(expr,term) then
          return expr;
      else
          return NULL;
      fi;
 else
     error "not expression?";
 fi;
end proc;

And now it works for both cases

 

 

may be

restart;
ode1:=diff(x__1(t),t)=x__1(t)-x__2(t)-3;
ode2:=diff(x__2(t),t)=12*x__1(t)-8*x__2(t)+4;
vars:=[x__1(t),x__2(t)];
A,b:=LinearAlgebra:-GenerateMatrix([rhs(ode1),rhs(ode2)],vars):
sys:=Vector(diff(vars,t)) = A.Vector(vars)-b

dsolve(sys)

ofcourse, you could just have done

dsolve([ode1,ode2])

And got same result.

edit

to answer comment:

Is there another way to set up something from an equation to a matrix? More like an output like the above one?

I am not sure I understand exactly what the question here. May be you mean for display only purposes you want to change how it prints on the screen? You can try this line instead

sys:=Vector(diff(vars,t)) = A %.Vector(vars)%- b

Now it looks like the one you showed.

I do not use 2D math Maple laanguage at all. So not sure if this is what you want.

dsolve gives answer with integrals it could not evaluate. Try numerical 

restart;
sys := diff(x1(t), t) = 3*x1(t) - 2/1000*x1(t)*x2(t), diff(x2(t), t) = 6/10000*x1(t)*x2(t) - 1/2*x2(t);
ics := x1(0) = 1000, x2(0) = 500;
sol:=dsolve([sys,ics],numeric,{x1(t),x2(t)},output=listprocedure);
plot(rhs(sol[2])(t),t=0..4,labels=["t","x1"]);
plot(rhs(sol[3])(t),t=0..4,labels=["t","x2"]);

one possibility could be

restart;
G[i,k]:=u[i] - u[k]-(u[i]-u[k])^2;

for i from 1 to 3 do
  for j from 1 to 3 do
     for k from 1 to 3 do
         G[i,k]:=u[i] - u[k]-(u[i]-u[k])^2;
      od;
  od;
od;

G[2,1];
G[3,2];

its latex

latex(G[2,3])

          G_{2,3}

 

double underscore could have worked  but do not know how to make it work with 2 indices (i,j).

For example , for the RHS you could do

u__i- u__k-(u__j-u__k)^2

But this would not work for G with double index.
 

 

 

 

You should really post full code you used, including the plot command used.  

It works for me on Maple 2021. no cut off.

restart;
h := x -> 1.23 + x*1*0.0001 + 0.12*log(50000*x) + abs((-1)*0.03*log(x/0.001));
plot(h(x),x=0..100)

 

restart;
interface(version); 

fname:="G:/data/tmp/ftest.mpl":
f:=proc(n)
  local i,k;
  for i to n do f(i):=parse(cat("", seq(k mod 10, k=1..10*i))) od;
  f(n);
end:

f(80):
length(%);  # 800, ok
save f, fname;
f:='f':
#restart;
read fname:
f(80):
length(%);  # 100  ???

one way might be to use solve or PDEtools:-Solve

restart;
eq:=5*x^3-x^2+x-1=0;
PDEtools:-Solve(eq,x)

This is how I do these things.  

Rule of thumb, always use PDF files for images if possible. If not, export to .eps/ps, then convert the eps to PDF, then use that in the incluegraphics command in Latex. Latex compilers (pdflatex and lualatex, etc...) can read pdf image file for many years now.

I do not use the Maple worksheet GUI to export anything, as I do all this in code. Something like this

p:=plot(.....); #your plot command
plotsetup(ps, plotoutput="file_name_here",plotoptions = `noborder`);
print(p);
plotsetup(default):

The above will create file_name_here.ps. Choose any name you want for the file.

Now I run the commands

epspdf filename.ps
pdfcrop --margins 10  filename.pdf  filename.pdf

The first command convert the .ps file to pdf. The second crops it.

I've been doing this for years in all my Latex. It works very well for me. 

I just applied these to your image

with(plots):
scheme1 := ["zgradient",["Blue","Cyan","Green","Yellow","Orange","Red"]]:

P1:=plot3d(x*y, colorscheme=scheme1,style=surfacecontour ): 
P2:=plot3d(x*y,colorscheme=scheme1,style=point,symbol=asterisk): 
final_plot:=display({P1,P2}); #I want to export this figure to .eps
plotsetup(ps, plotoutput="file_name_here",plotoptions = `noborder`);
print(final_plot);
plotsetup(default):

Here is the result

\documentclass[11pt]{article}
\usepackage{graphicx}
\begin{document}
This is my graphics generated in Maple 2020.2 

\includegraphics[width=0.9\textwidth]{file_name_here}
\end{document}