Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Hi all.

1. When plotting the function y=(x-1)/(x-2) on Maple 2016, the asymptote along with the actual curve is drawn as "solid lines/curves".  The asymptote should have been drawn as a dotted line to indicate that x=2 is an asymptote so as to distinguish itself from the actual curve.   This confuses my students.

2. The other question is if I modify the equation to y=1+ (x-1)/(x-2), the plot only shows the asymptote at x=2 (again, a solid line).  There should be another asymptote at y=1, which is not shown.

Can someone please advise if Maple would fix this in the next update?    If not, how should one "fix" this when graphing such functions?

Many thanks.

I thought I would share some code for computing sparse matrix products in Maple.  For floating point matrices this is done quickly, but for algebraic datatypes there is a performance problem with the builtin routines, as noted in http://www.mapleprimes.com/questions/205739-How-Do-I-Improve-The-Performance-Of

Download spm.txt

The code is fairly straightforward in that it uses op(1,A) to extract the dimensions and op(2,A) to extract the non-zero elements of a Matrix or Vector, and then loops over those elements.  I included a sparse map function for cases where you want to map a function (like expand) over non-zero elements only.

# sparse matrix vector product
spmv := proc(A::Matrix,V::Vector)
local m,n,Ae,Ve,Vi,R,e;
n, m := op(1,A);
if op(1,V) <> m then error "incompatible dimensions"; end if;
Ae := op(2,A);
Ve := op(2,V);
Vi := map2(op,1,Ve);
R := Vector(n, storage=sparse);
for e in Ae do
n, m := op(1,e);
if member(m, Vi) then R[n] := R[n] + A[n,m]*V[m]; end if;
end do;
return R;
end proc:
# sparse matrix product
spmm := proc(A::Matrix, B::Matrix)
local m,n,Ae,Be,Bi,R,l,e,i;
n, m := op(1,A);
i, l := op(1,B);
if i <> m then error "incompatible dimensions"; end if;
Ae := op(2,A);
Be := op(2,B);
R := Matrix(n,l,storage=sparse);
for i from 1 to l do
Bi, Be := selectremove(type, Be, (anything,i)=anything);
Bi := map2(op,[1,1],Bi);
for e in Ae do
n, m := op(1,e);
if member(m, Bi) then R[n,i] := R[n,i] + A[n,m]*B[m,i]; end if;
end do;
end do;
return R;
end proc:
# sparse map
smap := proc(f, A::{Matrix,Vector})
local B, Ae, e;
if A::Vector then
B := Vector(op(1,A),storage=sparse):
else
B := Matrix(op(1,A),storage=sparse):
end if;
Ae := op(2,A);
for e in Ae do
B[op(1,e)] := f(op(2,e),args[3..nargs]);
end do;
return B;
end proc:


As for how it performs, here is a demo inspired by the original post.

n := 674;
k := 6;
A := Matrix(n,n,storage=sparse):
for i to n do
  for j to k do
    A[i,irem(rand(),n)+1] := randpoly(x):
  end do:
end do:
V := Vector(n):
for i to k do
  V[irem(rand(),n)+1] := randpoly(x):
end do:
C := CodeTools:-Usage( spmv(A,V) ):  # 7ms, 25x faster
CodeTools:-Usage( A.V ):  # 174 ms
B := Matrix(n,n,storage=sparse):
for i to n do
  for j to k do
    B[i,irem(rand(),n)+1] := randpoly(x):
  end do:
end do:
C := CodeTools:-Usage( spmm(A,B) ):  # 2.74 sec, 50x faster
CodeTools:-Usage( A.B ):  # 2.44 min
# expand and collect like terms
C := CodeTools:-Usage( smap(expand, C) ):

CameraProfiler.mw

D700_Profile.xlsx

This Application uses the xrite color checker to obtain Forward and Color Matrices as defined by Adobe.

It compares the camera gamut based on the above matrices to the 1931 Standard Observer using LEDs.

 

 

 

Hello, I have the system of equations in many vars as below, I want to make an implicit plot in Maple with the projection on 3 vars, for example, in this case (x,y,t1). The range is x[-10,10], y[-10,10], t1[-Pi,Pi] and the rest of the vars are [-Pi,Pi]. Does anyone know how to do it? We have also the inequalities in the system.

 

f1:= cos(t1)+1.35*cos(p1)-x;

f2:= sin(t1)+1.35*sin(p1)-y;

f3:= cos(t2)+1.35*cos(p2)-x +1.15;

f4:= sin(t2)+1.35*sin(p2)-y;

f5:= cos(t3)+1.35*cos(p3)-x+0.575;

f6:= sin(t3)+1.35*sin(p3)-y +0.995;

f7:= cos(t1)*cos(t2)*cos(t3)*sin(p1)*sin(p2)*sin(p3)-cos(t1)*cos(t2)*sin(t3)*sin(p1)*sin(p2)*cos(p3)-cos(t1)*sin(t2)*cos(t3)*sin(p1)*cos(p2)*sin(p3)+cos(t1)*sin(t2)*sin(t3)*sin(p1)*cos(p2)*cos(p3)-sin(t1)*cos(t2)*cos(t3)*cos(p1)*sin(p2)*sin(p3)+sin(t1)*cos(t2)*sin(t3)*cos(p1)*sin(p2)*cos(p3)+sin(t1)*sin(t2)*cos(t3)*cos(p1)*cos(p2)*sin(p3)-sin(t1)*sin(t2)*sin(t3)*cos(p1)*cos(p2)*cos(p3);

f8:= cos(t1)*sin(p1)-sin(t1)*cos(p1) >= 0;

f9:= cos(t2)*sin(p2)-sin(t2)*cos(p2) >= 0;

f10:= cos(t3)*sin(p3)-sin(t3)*cos(p3) >= 0;

Consider you have an expression like:

f := (125*x^3+525*x^2*y+735*x*y^2+343*y^3-36*z^2)/(-216*z^3+25*x^2+70*x*y+49*y^2)

By hand and spending much time maybe we can find out so far that:

f := ((5*x+7*y)^3-(6*z)^2)/((5*x+7*y)^2-(6*z)^3)

I thought that the code `combine(f)` would give us the second one, but it didn’t. Is there anything obvious I cannot see?

Thanks for the time.

I am fairly new to Maple and cannot figure this out.

I'm having some trouble in computing formally the derivatives of
some composite functions

h:= x -> f(g(x)),

imposing conditions on the unknown functions f and g.

For example, I cannot find a way to impose g'(0)=0,
such that the computation of

h'(0)

simply gives 0.

 

Thank you in advance!

 

restart

with(LinearAlgebra):

with(StringTools):

FormatTime("%m-%d-%Y, %H:%M")

NULL

Pile spacing of each pile from a refrence pile:

S__p := Matrix(9, 9, {(1, 1) = 0., (1, 2) = 3.30, (1, 3) = 6.60, (1, 4) = 3.30, (1, 5) = 4.67, (1, 6) = 7.38, (1, 7) = 6.60, (1, 8) = 7.38, (1, 9) = 9.33, (2, 1) = 3.30, (2, 2) = 0., (2, 3) = 3.30, (2, 4) = 4.67, (2, 5) = 3.30, (2, 6) = 4.67, (2, 7) = 7.38, (2, 8) = 6.60, (2, 9) = 7.38, (3, 1) = 6.60, (3, 2) = 3.30, (3, 3) = 0., (3, 4) = 7.38, (3, 5) = 4.67, (3, 6) = 3.30, (3, 7) = 9.33, (3, 8) = 7.38, (3, 9) = 6.60, (4, 1) = 3.30, (4, 2) = 4.67, (4, 3) = 7.38, (4, 4) = 0., (4, 5) = 3.30, (4, 6) = 6.60, (4, 7) = 3.30, (4, 8) = 4.67, (4, 9) = 7.38, (5, 1) = 4.67, (5, 2) = 3.30, (5, 3) = 4.67, (5, 4) = 3.30, (5, 5) = 0., (5, 6) = 3.30, (5, 7) = 4.67, (5, 8) = 3.30, (5, 9) = 4.67, (6, 1) = 7.38, (6, 2) = 4.67, (6, 3) = 3.30, (6, 4) = 6.60, (6, 5) = 3.30, (6, 6) = 0., (6, 7) = 7.38, (6, 8) = 4.67, (6, 9) = 3.30, (7, 1) = 6.60, (7, 2) = 7.38, (7, 3) = 9.33, (7, 4) = 3.30, (7, 5) = 4.67, (7, 6) = 7.38, (7, 7) = 0., (7, 8) = 3.30, (7, 9) = 6.60, (8, 1) = 7.38, (8, 2) = 6.60, (8, 3) = 7.38, (8, 4) = 4.67, (8, 5) = 3.30, (8, 6) = 4.67, (8, 7) = 3.30, (8, 8) = 0., (8, 9) = 3.30, (9, 1) = 9.33, (9, 2) = 7.38, (9, 3) = 6.60, (9, 4) = 7.38, (9, 5) = 4.67, (9, 6) = 3.30, (9, 7) = 6.60, (9, 8) = 3.30, (9, 9) = 0.})

Angle of each pile from a reference pile in radian:

xi := Matrix(9, 9, {(1, 1) = 0., (1, 2) = 0., (1, 3) = 0., (1, 4) = 1.57, (1, 5) = .785, (1, 6) = .464, (1, 7) = 1.57, (1, 8) = 1.11, (1, 9) = .785, (2, 1) = 3.14, (2, 2) = 0., (2, 3) = 0., (2, 4) = 2.36, (2, 5) = 1.57, (2, 6) = .785, (2, 7) = 2.03, (2, 8) = 1.57, (2, 9) = 1.11, (3, 1) = 3.14, (3, 2) = 3.14, (3, 3) = 0., (3, 4) = 2.68, (3, 5) = 2.36, (3, 6) = 1.57, (3, 7) = 2.36, (3, 8) = 2.03, (3, 9) = 1.57, (4, 1) = 1.57, (4, 2) = .785, (4, 3) = .464, (4, 4) = 0., (4, 5) = 0., (4, 6) = 0., (4, 7) = 1.57, (4, 8) = .785, (4, 9) = .464, (5, 1) = 2.36, (5, 2) = 1.57, (5, 3) = .785, (5, 4) = 3.14, (5, 5) = 0., (5, 6) = 0., (5, 7) = 2.36, (5, 8) = 1.57, (5, 9) = .785, (6, 1) = 2.68, (6, 2) = 2.36, (6, 3) = 1.57, (6, 4) = 3.14, (6, 5) = 3.14, (6, 6) = 0., (6, 7) = 2.68, (6, 8) = 2.36, (6, 9) = 1.57, (7, 1) = 1.57, (7, 2) = 1.11, (7, 3) = .785, (7, 4) = 1.57, (7, 5) = .785, (7, 6) = .464, (7, 7) = 0., (7, 8) = 0., (7, 9) = 0., (8, 1) = 2.03, (8, 2) = 1.57, (8, 3) = 1.11, (8, 4) = 2.36, (8, 5) = 1.57, (8, 6) = .785, (8, 7) = 3.14, (8, 8) = 0., (8, 9) = 0., (9, 1) = 2.36, (9, 2) = 2.03, (9, 3) = 1.57, (9, 4) = 2.68, (9, 5) = 2.36, (9, 6) = 1.57, (9, 7) = 3.14, (9, 8) = 3.14, (9, 9) = 0.})

NULL

Angle of each pile from a reference pile in degrees:

theta := Matrix(9, 9, {(1, 1) = 0., (1, 2) = 0., (1, 3) = 0., (1, 4) = 90.0, (1, 5) = 44.8, (1, 6) = 26.6, (1, 7) = 90.0, (1, 8) = 63.6, (1, 9) = 44.8, (2, 1) = 180., (2, 2) = 0., (2, 3) = 0., (2, 4) = 135., (2, 5) = 90.0, (2, 6) = 44.8, (2, 7) = 116., (2, 8) = 90.0, (2, 9) = 63.6, (3, 1) = 180., (3, 2) = 180., (3, 3) = 0., (3, 4) = 153., (3, 5) = 135., (3, 6) = 90.0, (3, 7) = 135., (3, 8) = 116., (3, 9) = 90.0, (4, 1) = 90.0, (4, 2) = 44.8, (4, 3) = 26.6, (4, 4) = 0., (4, 5) = 0., (4, 6) = 0., (4, 7) = 90.0, (4, 8) = 44.8, (4, 9) = 26.6, (5, 1) = 135., (5, 2) = 90.0, (5, 3) = 44.8, (5, 4) = 180., (5, 5) = 0., (5, 6) = 0., (5, 7) = 135., (5, 8) = 90.0, (5, 9) = 44.8, (6, 1) = 153., (6, 2) = 135., (6, 3) = 90.0, (6, 4) = 180., (6, 5) = 180., (6, 6) = 0., (6, 7) = 153., (6, 8) = 135., (6, 9) = 90.0, (7, 1) = 90.0, (7, 2) = 63.6, (7, 3) = 44.8, (7, 4) = 90.0, (7, 5) = 44.8, (7, 6) = 26.6, (7, 7) = 0., (7, 8) = 0., (7, 9) = 0., (8, 1) = 116., (8, 2) = 90.0, (8, 3) = 63.6, (8, 4) = 135., (8, 5) = 90.0, (8, 6) = 44.8, (8, 7) = 180., (8, 8) = 0., (8, 9) = 0., (9, 1) = 135., (9, 2) = 116., (9, 3) = 90.0, (9, 4) = 153., (9, 5) = 135., (9, 6) = 90.0, (9, 7) = 180., (9, 8) = 180., (9, 9) = 0.})

The total number of piles in a pile group:

n__pile := 9

The length of each pile in the pile group in (meters):

L__p := 12.182   

 

``

Diameter of pile (meter):

`&phi;__pile` := .457

The radius of each pile (meter):

r__0 := evalf((1/2)*`&phi;__pile`, 2)

NULL

`&rho;__A` := 1.0

NULL

D__s := 0.5e-1

NULL

Omega := 46``

``

`&nu;__soil` := .5

NULL

E__p := 3.2*10^10``

NULL

G__s := 5.7*10^7``

NULL

 

V__s := 182.88

NULL

``

NULL

NULL

V__La := 395.845``

NULL

`&alpha;__&nu;` := proc (S__p, xi, n__pile) local `&alpha;__tmp`, flist, i, j, `&alpha;__1`, `&alpha;__2`, `&alpha;__3`; global D__s, V__La, V__s, Omega; description "Calculate the horizontal interaction factor from a refernce pile in a pile group"; flist := []; for i to `n__pile ` do for j to n__pile do `&alpha;__1`[i, j] := evalf[4](.5*(S__p[i, j]/`&phi;__pile`)^.5*exp(-D__s*Omega*S__p[i, j]/V__La)*exp(-I*Omega*S__p[i, j]/V__La)); `&alpha;__2`[i, j] := evalf[4]((3/4)*(S__p[i, j]/`&phi;__pile`)^.5*exp(-D__s*Omega*S__p[i, j]/V__s)*exp(-I*Omega*S__p[i, j]/V__s)/sqrt(2)); `&alpha;__3`[i, j] := evalf[4](`&alpha;__1`[i, j]*cos(xi[i, j])^2+`&alpha;__2`[i, j]*sin(xi[i, j])^2); if i = j then `&alpha;__tmp`[i, i] := 1.0 elif xi[i, j] = 0. then `&alpha;__tmp`[i, j] := `&alpha;__1`[i, j] elif xi[i, j] = 1.57 then `&alpha;__tmp`[i, j] := `&alpha;__2`[i, j] elif xi[i, j] <> 1.57 and xi[i, j] <> 0. then `&alpha;__tmp`[i, j] := `&alpha;__3`[i, j] end if; flist := [op(flist), `&alpha;__tmp`[i, j]] end do end do end proc:

NULL

NULL

NULL

NULLNULL

NULLNULLNULL

`&alpha;__v` := eval(Matrix(n__pile, n__pile, `&alpha;__&nu;`(S__p, xi, n__pile)))``

NULL

``

``

``

NULL

NULL

``

NULL

 

Download Test_pile.mw

Good Evening Maple Community,

Can anybody please help in the attached file. Highlighted in yellow are the three equations I'm trying to program in Maple procedure, but could not get any output due to an error message. Please Help.

 

Boyer 

Is this what is supposed to happen when linking Maple to Matlab?  I was hoping it would open the actual Matlab program and write variables to the current worksheet.  I'm I missing something?

Nothing even pops up on the Matlab Command window. What good is this?

 

I want to define a proc in Maple which gets an integer n and gives a set of arrays like {1,2,3}^n, meaning {[a[1],...,a[n]]|for all 1<=i<=n a[i] in {1,2,3}}. For a fix n, obviously one can use n-for, for example when n is 2

A:=Array(1..3,1..3):
for a[1] from 1 by 1 to 3 do
 for a[2] from 1 by 1 to 3 do
  A(a[1],a[2]):=[a[1],a[2]];
 end for:
end for:

But when n is not fixed, how can I tell Maple to consider n for?! Also how can ask him to make a n-dimensional array?

Hi 

I have 3 equations

eq1 := vs = (Rs+Z)*i1+Z*i3

eq2 := A*vi = Z*i1+(Z+Rf+ro)*i3

eq3:= vo = (Rf+Z)*i3+Z*i1

 

and I want to solve for vo/vs . How to do that ?

the expected solution is 

Hi;

Could anyone help me to compute the lie derivative of the function h:R^3-->R with respect to the vector-valued function f:R^5-->R^3 below?

f(x,y,L,u,v) = [x + u;
y + v;
L]

and

h(x,y,L) = sqrt((y-x)^2 + (L)^2)
 

Thank you in advance.

 

 

 

Hi all,

 

I have have s simple graph, see figure below. I want to export it to e.g. PDF-format.

But I want landscape, not portrait. How can I export PDF to landscape?

 

I tried a workaround: Export it as to JPG gives very bad quality.

I simply want to export my figures to landscape with good quality.

 

How can I solve this?

 

 

Here is my command

 

> teksbiasa:=`Kriptografi`;

teksbiasa:=Kriptografi

>len:=length(teksbiasa);

len:=11

>nilaiASCII:=convert(teksbiasa, bytes);

nilaiASCII:=[75,114,105,112,116,111,103,114,97,102,105]

>L:=[seq(i,i=nilaiASCII)]

L:=[75,114,105,112,116,111,103,114,97,102,105]

 

Anyone know how i need to write the command to add the lenght of the text (len) into each of the number in nilaiASCII?

What is want to get is:

[86,125,116,123,127,122,114,125,108,113,116]

Thank you~=]]

[75,114,105,112,116,111,103,114,97,102,105]

For bonus in my one class, we are required to change the code in a program to have it produce another row when running Neville's Method. We need to, after it runs initially, have it ask "Run another time? Y/N" and type 'Y' or 'N' for Yes or No. If No, it ends the program. If yes, we need to have it input another x(i) and f(x(i)) without having to input all the other data points again. Here is what I have so far (this is just the additional part we have to add, not the whole code):

 print(`Do you want another point? Type Y or N.`):
  J := scanf(` %c`)[1]:print(`Entry = `):print(J):
  if J = "Y" or J="y" then
  AGAIN := "Y":
  AGAIN = "Y" or AGAIN = "y":
        OUP := default:
      fprintf(OUP, `NEVILLE'S METHOD\n `):
       fprintf(OUP, `Table for P evaluated at X = %12.8f , follows: \n`, X):
       fprintf(OUP, `Entries are XX(I), Q(I,0), ..., Q(I,I) `):
       fprintf(OUP, `for each I = 0, ..., N where N = %3d\n\n`, N):
       for I1 from 0 to N+1 do
         fprintf(OUP, `%11.8f `, XX[I1]):
         for J from 0 to I1 do
           fprintf(OUP, `%11.8f `, Q[I1,J]):
         od:
         fprintf(OUP, `\n`):
        od:
    if J="Y" or J="y" then
         AGAIN := Y:
             if AGAIN = Y or AGAIN = y then
                 #N=N+1:
                  if N > 0 then
                  OK := TRUE:
                 for I1 from N to N+1 do
                        print(`Input X(i) and F(X(i)) for i = `):print(I1):
                        print(`separated by a space `):
                       XX[I1] := scanf(`%f`)[1]:
                       Q[I1,0] := scanf(`%f`)[1]:print(`Entries are`):print(XX[I1],Q[I1,0]):
                  od:
                else
                  print(`Number must be a positive integer `):
               fi:


            else
                AGAIN := No:     
         fi:
         fi:
    else
        print(`Ok thanks`):
 fi:

Not sure what I am doing wrong and any help is appreciated. Thanks.

One new feature of Maple 2016 is claimed to be

          FunctionAdvisor(plot, .......)

but when I try HeunD or HeunG there is no output -- no error message, nothing.  Is this behaviour what a user should expect of this command?

First 1163 1164 1165 1166 1167 1168 1169 Last Page 1165 of 2261