Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Im trying to replicate a shape in maple but everytime i plot it i get a big red block of line and i don't know why.

 

g := piecewise(0 <= x and x < 33, -50*x + 33*y, 33 <= x and 38.78 < y, (x - 47.94)^2 + (y - 40.55)^2 - 312.36, 58 <= x and x < 100 and 0 <= y and y <= 38.78, 0.5778*x^2 - 66.08774*x - y + 1887.9165);
implicitplot(g, x = 0 .. 80, y = 0 .. 60, scaling = constrained)

Any help is greatly appreciated

I have been able to sucessfully use the WeibullPlot function of the statistics package.

Is there an output option (similar to summarize = true for other regressions) for the (reference=true) intercept of (X) value (eta) with the 0.632 line and and slope (Beta) of the line, r^2, etc.?

Thanks,
Bill

I am trying to plot the following.

it consist of a line and a circle.

if tried doing it as so:

f := x -> piecewise(0 <= x and x <= 1.588125352, (-1)*0.39*x^2 + 1.459*x - y, 1.588125352 <= x and x < 4, (x - 1.81)^2 + (y - 0.42)^2 + (-1)*0.94^2);

implicitplot(f(x), x = 0 .. 3, y = 0 .. 1.5, scaling = constrained);

every time i get this ugly line in the point where the funktion switches and i can't seem to remove it.

I've tried discont = true, but it doesn't seem to work on implicitplots. 

Hello,

I am using the Weibullplot function and have gotten a good plot out.  The issue is the gradations on the subticks per decade.

If I set it to three (3) I get 0.2, 0.3, 0.4 subgrid correctly, but only 0.6, 0.7, 0.8 between ).5 and 1.0.

If I set it to four (4) - I get the reverse.

Is this a log plot issue or a weibullplot function issue with respct to setting the subticks on the 10ths correcty of a decade span?  I look forward to thoughts.

with(Statistics);
XX := RandomVariable(Weibull(1, 0.6));
AA := Sample(XX, 100);

AA is a sample matrix of 100 Weibull distributed data points.

WeibullPlot(AA, reference = false, style = line, gridlines = true, size = [800, 500], axis = [tickmarks = [default, subticks = 4], color = darkgreen])

WeibullPlot.mw

Thanks,
Bill

Hi. i want to select terms with sum of powers equal to 1 and other terms with sum of powers more than 1 for the following equation.

restart

eq:=-2.*10^(-12)*p[1](t)*q[1](t) + 7.133360604*10^(-8)*p[1](t)*q[0](t) + 2.839877758*10^(-7)*q[0](t)*p[2](t) + p[0](t)*q[0](t) + p[0](t)^2 + q[0](t)^3 + p[1](t) + 8*q[4](t)

-0.2000000000e-11*p[1](t)*q[1](t)+0.7133360604e-7*p[1](t)*q[0](t)+0.2839877758e-6*q[0](t)*p[2](t)+p[0](t)*q[0](t)+p[0](t)^2+q[0](t)^3+p[1](t)+8*q[4](t)

(1)

 

 

Download problem.mw

 actually i need an algorithm to select linear terms from nonlinear ones(sum of powers equals to more than one) and vice versa.

It is &ndash; that is not rendered.

Maple 2023

For comparision Maple 2022.

Can someone reproduce this? Anything I can do about it (some settings maybe)?

Both session directly after restart of Maple.

Hi Maple friends,

Id like to create an animation that rotates my 3d plot. Here is the file: https://www.dropbox.com/scl/fi/zop0jpid0ik0a1unxrzzn/Dynamisches_Modell_Final_filled_conts-1.mw?rlkey=eo482ihqw9pw3vn6qolnxlrwa&dl=0

This is the 3d plot:

plot3d([Vth - Vps], E = 0 .. 1000000, T = 0 .. 15, labels = ["E in (EUR)", "T (in Jahren)", "V (in EUR)"], view = 0 .. 180000, labelfont = [times, bold, 12]);

The starting view should be the following (ankle: -137, 74, -2):

After rotation, tId like to see this view (ankle: 180, 0, 180):

Can someone please help me with this issue? That would be so nice!!

Thanks a lot in advance and best regards
Rebekka

 Dear Sir/Madam,

I have faced a problem while using Maple 18. The  warning is the following

Error, (in f) unable to store 'HFloat(1.9648999999999983)-HFloat(500.0)*delta' when datatype=float[8]
Error, (in plots/odeplot) input is not a valid dsolve/numeric solution



#` Part(a)`  deSh := diff(Sh(t),t) = (alpha(h)*Nh) +(omega*Rh(t))- (((betahb*Iv(t))/(Nh) +p+ mu(h))*Sh(t));   deEh :=  diff(Eh(t),t) =  (((betahb*Iv(t))/(Nh) )*Sh(t))-((mu(h)+gamm)*Eh(t));   deIh := diff(Ih(t),t) = (gamm*Eh(t))-(theta+mu(h)+delta)*Ih(t);  deRh := diff(Rh(t),t) = (delta*Ih(t))-((mu(h)+omega)*Rh(t));  deSv := diff(Sv(t),t) =  (alpha(m)*Nv*(1-Nw/(Nm)))-(((betamb*Ih(t))/(Nh) +mu(m))*Sv(t));  deEv:=diff(Ev(t),t) =  (((betamb*Ih(t))/(Nh) )*Sv(t))-((mu(m)+delta(m))*Ev(t));  deIv:= diff(Iv(t),t) = (delta(m)*Ev(t))-(mu(m)*Iv(t));   mu(h):= .000045 :   Nh:=5071126:  betahb:=.750:  p:=.09 :  omega:=.001:  alpha(h):=.5:  gamm:=.1667 :  delta :=.328833:  theta:= .0000002:  alpha(m) :=.1167:    Nv :=40570:  Nw:= 10000:  Nm:=50570:   betamb := .375 :  mu(m) := .02941:  delta(m):= .1428:     u:= .5:   F := dsolve( {deSh, deEh,deIh,deRh,deSv,deEv,deIv,  Sh(0)=8500,Eh(0)=100,Ih(0)=500,Rh(0)=0,Sv(0)=3500,Ev(0)=500,Iv(0)=570},     { Sh(t),Eh(t),Ih(t),Rh(t),Sv(t),Ev(t),Iv(t) } , numeric );  with(plots):  odeplot( F, [[t,Sh(t)],[t,Eh(t)] ,[t,Ih(t)],[t,Rh(t)],[t,Sv(t)],[t,Ev(t)],[t,Iv(t)]], t=0..30, numpoints=100, colour=[black,blue,purple, red,green,yellow,orange] , legend = ["suspectible host", "exposed host", "infected host", "recovered host","suspectible  vector","exposed vector"," infected vector"]);
 


Hello everyone, I am working on a Maple code where I am dealing with a matrix X and performing several operations, so I can subsitute a set of lists. However, I feel Im doing some redundant things and I wonder if there are ways to make it more concise and efficient. More specifically,

  1. 'vals' and 'ecs' :
    'vals' gives me a set of lists with the values I'll use in matrix X , e.g., vals := {[-1, 1, 0], [0, -1, -1], [0, -1, 1]}.
    'ecs' creates a set of lists of equations that I can use in 'eval' (or 'subs') function, e.g., ecs := {[[X3_4 = -1, X3_3 = 1, X2_3 = 0]], [[X3_4 = 0, X3_3 = -1, X2_3 = -1]], [[X3_4 = 0, X3_3 = -1, X2_3 = 1]]}.
    But clearly, I'm getting an extra pair of brackets for each list so I will need to use double index in the eval command. Is there a way to avoid this?
  2. In the subsitution step, I've tried with both 'eval' and 'subs' and many modifications to avoid what I did in step 1 but without success. Also I need this extra 'Nelem' to get a list of indices so I can substitute all possible lists of values in 'ecs'.
  3. Finally, I'm wondering if what I'm getting from 'BoolEigs' is actually what I want. My final goal is to check if the eigenvalues of all possible solution matrices I got in 'Xs'  are nonnegative. So I need to avoid numerical computations and perform this step exactly. Is my code correct for this?
     
X := Matrix([[1, -X3_3/2 - 1/2, 0, -X2_3], [-X3_3/2 - 1/2, -2*X3_4 - 1, X2_3, 0], [0, X2_3, X3_3, X3_4], [-X2_3, 0, X3_4, 1]]);
vars := [X3_4, X3_3, X2_3];

w := A^3 - A;
rootz := RootOf(w, A);
Pols := [(-A^2 + 1)/(3*A^2 - 1), (-A^2 - 1)/(3*A^2 - 1), A*(3*A^2 - 1)*1/(3*A^2 - 1)];

vals := {allvalues(eval(Pols, A = rootz))};
ecs := map(x -> convert(vars = x, listofequations), vals);

Nelem := [seq(k, k = 1 .. numelems(vals))];
Xs := map(x -> eval(X, ecs[x][1]), Nelem);#double index for eval
Xz := map(x -> subs(ecs[x][1], X), Nelem);#same for subs

with(LinearAlgebra);
Eigs := map(x -> Eigenvalues(x), Xs);
BoolEigs := map(x -> map(y -> is(Im(y) = 0) and is(0 <= Re(evalf(y))), x), Eigs);
evalf(Eigs);

I have been inspired by videos at this site: (1) Vorperian's Electronic Circuits Courses - YouTube

In these lectures, he shows an example of calculating the resistance of 2 series pairs of resistors in parallel, which is given by

(R3 + R4)*(R1 + R2)/(R1 + R2 + R3 + R4)  Eq1

This expression can be simplified, using the parallel operator (sometimes also referred to as the "reciprocal formula" or "harmonic sum") see Parallel (operator) - Wikipedia

`//` := (R1, R2) -> R2*R1/(R1 + R2)

Simplification 
`//`(R1, R2)*`//`(R3, R4)     EQ 2

This is easier to understand EQ2 compared to EQ1
1. Is there a way to display the function as a binary operator as in R1`//`R2 ?

2. Is there a way to add the parallel operator to the simplification procedure?

The videos referenced above go into more complex expressions that I would like to explore, but this seems like the first step.

point(A, xA, yA);
point(B, xB, yB);
point(C, xC, yC):
L3 := linestyle = 3
triangle(Tr, [A, B, C])
line(AP, [A, P]);
line(BP, [B, P]);
line(CP, [C, P]);
dr := draw([Tr(t3), AP(cbl, L3), BP(cbl, L3), CP(cbl, L3)]),
textplot([[coordinates(A)[], "A"], [coordinates(B)[], "B"], [coordinates(C)[], "C"]], align = {above, right});
display({dr, ellip}, scaling = constrained, axes = none, view = [-1 .. 14, -1 .. 11]);
Why doesn’t Maple show me the expected effect ? Thank you.

Hello, I am trying to refine my solid with some visual details. How can I draw the arcs (in 3D) that represent the angles of triangle ABC? Thank you.ConeTestLayout.mw

 

Just for my understanding

x^ln(x)-c;
solve(%,x,allsolutions);
indets((%));
print("but here it does:");
indets(%[-1])
                            ln(x)    
                           x      - c

                           /   ln(_Z)    \
                     RootOf\-_Z       + c/

          /     ln(_Z)        /   ln(_Z)    \        \ 
         { c, _Z      , RootOf\-_Z       + c/, ln(_Z) }
          \                                          / 

                      "but here it does:"

                          {_Z, ln(_Z)}

I have entered a few examples from the Maple Example Worksheets on the the topic of using compiled Fortran code. I got two simple examples to work as shown in my worksheet below. The third example was to perform a matrix multiplication and that is where I get the "Error, (in fmat_mult) unhandled return type". Could you point out my mistake? Thank you in advance.

Using compiled FORTRAN code:

 

1) write a FORTRAN function in Geany

2) compile it to an object file *.o

2) open terminal in the folder where the file is saved

3) generate a *.dll file by: gfortran -shared -o mult.dll mult.o

4) setup the call to your functions: see lines fmult:= define_external( ) and fmultf:= define_external( ).

 

restart:
kernelopts(version);

`Maple 2023.2, X86 64 WINDOWS, Nov 24 2023, Build ID 1762575`

(1)

 

Multiply two integers

 

fmult:=define_external('mult', LIB= "C:/Users/familee/OneDrive/Documents/Maple/DLL-example/mult.dll", FORTRAN, 'a'::(integer[4]), 'b'::(integer[4]), RETURN::(integer[4]))

(2)

 

Multiply two floating point numbers

 

fmultf:=define_external('multf', LIB= "C:/Users/familee/OneDrive/Documents/Maple/DLL-example/multf.dll", FORTRAN, 'a'::(float[8]), 'b'::(float[8]), RETURN::(float[8]))

fmult(10,3)

30

(3)

fmultf(10.1,3.3)

33.3299999999999983

(4)

fmultf(100.234,67.901)

6805.98883399999886

(5)

 

Matrix multiplication example

 

a:=Matrix([[1.,4.,7.],[2.,5.,8.],[3.,6.,9.]],datatype=float[8],order=Fortran_order);

Matrix(3, 3, {(1, 1) = 1.0, (1, 2) = 4.0, (1, 3) = 7.0, (2, 1) = 2.0, (2, 2) = 5.0, (2, 3) = 8.0, (3, 1) = 3.0, (3, 2) = 6.0, (3, 3) = 9.0})

(6)

b:=Matrix([[1.,4.,7.],[2.,5.,8.],[3.,6.,9.]],datatype=float[8],order=Fortran_order);

Matrix(3, 3, {(1, 1) = 1.0, (1, 2) = 4.0, (1, 3) = 7.0, (2, 1) = 2.0, (2, 2) = 5.0, (2, 3) = 8.0, (3, 1) = 3.0, (3, 2) = 6.0, (3, 3) = 9.0})

(7)

c:=Matrix(1 .. 3, 1 .. 3, fill = 0.,datatype=float[8],order=Fortran_order);

Matrix(3, 3, {(1, 1) = 0., (1, 2) = 0., (1, 3) = 0., (2, 1) = 0., (2, 2) = 0., (2, 3) = 0., (3, 1) = 0., (3, 2) = 0., (3, 3) = 0.})

(8)

a.b

Matrix(3, 3, {(1, 1) = 30.0, (1, 2) = 66.0, (1, 3) = 102.0, (2, 1) = 36.0, (2, 2) = 81.0, (2, 3) = 126.0, (3, 1) = 42.0, (3, 2) = 96.0, (3, 3) = 150.0})

(9)

 

Is it possible to use a subroutine to pass a matrix?

 

mat_mult,f subroutine returns c = a.b

 

FORTRAN code for mat_mult.f

 

       SUBROUTINE mat_mult(a,b,c,m,n)  
C
C      Compute matrix multiplication.
C
       INTEGER i,j,k
       INTEGER m,n
       
       REAL*8 tmp
C      m rows by n cols
       REAL*8 a(m,n)
       REAL*8 b(m,n)
       REAL*8, intent (out)::c(m,n)
C      m = n
       DO 11 j=1,n
         DO 12 i=1,n
            tmp = 0.0
            DO 13 k=1,n
               tmp = tmp + a(i,k) * b(k,j)
 13         CONTINUE
            c(i,j) = tmp
 12      CONTINUE
 11    CONTINUE
       RETURN
       END

Compiled to get the object file: mat_mult.o

Generate a dll: gfortran -shared -o mat_mult.dll mat_mult.o

 

fmat_mult:=define_external( 'mat_mult', LIB= "C:/Users/familee/OneDrive/Documents/Maple/DLL-example/mat_mult.dll", FORTRAN, 'a'::(ARRAY(datatype=float[8])), 'b'::(ARRAY(datatype=float[8])), 'c'::(ARRAY(datatype=float[8])), 'm'::(integer[4]), 'n'::(integer[4]), RETURN::(ARRAY(datatype=float[8])) )

(10)

 

The results should be the Matrix c

 

fmat_mult(a,b,c,3,3)

Error, (in fmat_mult) unhandled return type

 

 

mult-Fortran_dll.mw

 

How do  I solve system of differential equations in finite difference method or finite element method?

eq1 := (diff(f(x), x, x, x))*(a*beta*f(x)^2-1)+(diff(f(x), x))^2-2*a*beta*f(x)*(diff(f(x), x))*(diff(f(x), x, x))+(diff(f(x), x))*(M+k[1])-(diff(f(x), x, x))*f(x)-(alpha*theta(x)+delta*phi(x))/rho = 0;

eq2 := -(diff(theta(x), x, x))*K[SB]*(Df-(Rd+k[hnf]/k[bf])/Pr)+N[t]*K[SB]*(diff(theta(x), x))^2-N[b]*(diff(theta(x), x))*(diff(phi(x), x))-(diff(f(x), x))*(diff(theta(x), x))-lambda*theta(x)-mu*Ec*(M*(diff(f(x), x))^2+(diff(f(x), x, x))^2) = 0;

eq3 := diff(phi(x), x, x)+Le*Sr*(diff(theta(x), x, x))+Le*f(x)*(diff(phi(x), x)) = 0;

ics := f(0) = 0, (D(f))(0) = 0, theta(0) = 1, phi(0) = 1;

bcs := (D(f))(100) = 0, theta(100) = 0, phi(100) = 0;


Parameters1 := rho = 2063.905, k[hnf] = .29942, k[bf] = .2520, mu = .38694, a = .1, beta = 5, k[1] = 2.0, M = 10, alpha = 20, delta = 20, K[SB] = .5, Df = 3, Pr = 1.2, Rd = 5, N[t] = 1.2, N[b] = 1.0, lambda = 1.5, Ec = 5, Le = .1, Sr = .1;

 

First 133 134 135 136 137 138 139 Last Page 135 of 2216