Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

One might be flabbergasted by the following

with(ColorTools):

Colors dosn't appear to match values given from this wavelength to rgb converter from here https://www.johndcook.com/wavelength_to_RGB.html

Although the color is in agreement when converting the value given back into a color value.

So in maple WavelengthToColor(622) does not match the color above however (heads up using the method="linear" option makes it closer) if we go through the paces and convert #ff6f00 to a color, it comes out properly.  One might think is something wrong with the WavelengthToColor command?

HexToRGB24("#ff6f00")
              

RGB24ToRGB([255,111,0])
                 

Color([1,.43529412,0])

                

Ok the color seems right but that's not what WavelengthToColor(622) gives

WavelengthToColor(622)
        

So as it turns out using method=linear makes it closer.

Time is short I haven't time to compose the question properly but likely has something to do with the HSV Colorspaces.  It's confusing.

Given an expression, I want to do an operation each time the pattern  f(arg1)+f(arg2) is found by replacing it by f(arg1+arg2). Regadless of how many there are. For example

f(A)+f(B) -> f(A+B) and  f(A)+f(B)+f(C) -> f(A+B+C)  and so on. But here is the catch, there could be anything else in the expressions. These will be left unchanged. 

So f(A)+f(B)+x -> f(A+B)+x

I can do it in Maple only when the input is exactly f(A)+f(B)  when the input is f(A)+f(B)+f(C) and so on.

But this is not practical as I need to make new type for each case.

I need a general way that will work for any expression like in the above example.

I am now using evalindets, but I do not know how to tell it the type for the general pattern of  f(n1)+f(n2)+.....+f(nn) to replace these with f(n1+n2+....nn).

For reference, this is code in Mathematica I am trying to translate to maple.

expr = Sin[x] + f[A] + f[B] + 10*Exp[x]/13 + Cos[x] + f[c] + f[10*c];
expr //. f[a_] + f[b_] :> f[a + b]

In the above //. means repeated replacement. So it will keep replacing the same pattern over and over and this works regardless of where f(a)+f(b) show up. They can be anywhere in the sum.

I wish I can the same in Maple using evalindets. I tried patmatch also, and same problem. Which is how to make it general. This is what I tried

expr:=f(A)+f(B);
evalindets(expr,`&+`('specfunc(f)','specfunc(f)'),F->f( op([1,1],F) + op([2,1],F) ) );

Which works

But to detect expr:=f(A)+f(B)+f(C) it would need new code

expr:=f(A)+f(B)+f(C);
evalindets(expr,`&+`('specfunc(f)','specfunc(f)','specfunc(f)'),F->f( op([1,1],F) + op([2,1],F) + op([3,1],F) ) );

Obviously this approach will not work. It will also fail once a new term is added in between. 

But how to extend this to the general case of

expr:=sin(x)+f(A)+f(B)+10*exp(x)/13+cos(x)+f(C)+f(10*C);

Is there a way to tell Maple to apply the pattern over and over like with Mathematica so it works for general case? I need to try to do this using either patmatch or evalindets. Ofcourse I can do it the hard way, by iterating over the expression and collecting all the f() and add their arguments one by one each `+` subtype. But that is now what I looking for.  

There should be something similar to how it is done in Mathematica, but using Maple command. Notice that the Mathematica example will work regadless of where the f(a)+f(b) shows up.

expr = Sin[x] + f[A] + f[B] + 10*Exp[x]/13 + Cos[x] + f[c] + 1/(f[10*c] + x + f[99])
expr //. f[a_] + f[b_] :> f[a + b]

ps. may be I need to use subsindets['nocache'] need to look more into it.

Are there rules of thumb to follow to decide to use evalindets vs. subsindets?  They seems to do the same thing, but I did not read every details of the help pages.  Is the difference similar to difference between using eval vs. subs? i.e.

          eval(expr,A=2)

vs.

         subs(A=2,expr) ?

For example

expr:=ln(A)+ln(B);
evalindets(expr,`&+`('specfunc(ln)','specfunc(ln)'),f->ln(op([1,1],f)*op([2,1],f)));
subsindets( expr, `&+`('specfunc(ln)','specfunc(ln)'), f->ln(op([1,1],f)*op([2,1],f)));

Both give

I did not see such a post for 2023 so I am starting one.

What is your 3 top bug fixes or improvements  you would like to see in Maple 2023? 

Here are mine

  1. Fix timelimit so that it completes at or near the time requested and not hang or take 10 hrs when asked to timeout after say 30 seconds.
  2. Fix the large amount of server crashes and the many random hangs when running large computation that takes long time. i.e. Make Maple more robust.
  3. Allow the user to remove output from worksheet while it is still running (Evaluate->Remove output from worksheet)

Maple is a nice language and has many nice functions. But it is the usability part of Maple that leaves many bad impressions because of these things that should really have been fixed by now given how long  Maple software have been around.

I am learning very basic matrix ops in Maple and I'm running into questions nearly at every step.

At the risk asking too many trivial questions, I have written my ~7 questions in the attached worksheet in red font.

Any answers will be appreciated.

matrix_ops_Qs.mw

matrix_ops_Qs.pdf

Hello

After using maple for quite a while, I am still confused by some basic concepts.   

Given the following table, how can I select the indices for which the entry is not null ([])?  

table([1 = NULL, 2 = NULL, 3 = NULL, 4 = NULL, 5 = NULL, 6 = NULL, 7 = 5, 9 = NULL, 8 = NULL, 11 = 4, 10 = NULL, 13 = NULL, 12 = NULL, 15 = 9, 14 = NULL, 18 = NULL, 19 = 8, 16 = 9, 17 = NULL, 22 = 9, 23 = NULL, 20 = NULL, 21 = 8, 27 = NULL, 26 = 8, 25 = 4, 24 = NULL, 31 = NULL, 30 = 9, 29 = NULL, 28 = 9, 36 = NULL, 37 = 9, 38 = 9, 39 = NULL, 32 = 5, 33 = NULL, 34 = NULL, 35 = NULL, 45 = NULL, 44 = NULL, 47 = NULL, 46 = NULL, 41 = 8, 40 = NULL, 43 = NULL, 42 = NULL, 54 = NULL, 55 = NULL, 52 = NULL, 53 = NULL, 50 = NULL, 51 = NULL, 48 = 5, 49 = 9, 60 = 8, 59 = NULL, 58 = 7, 57 = 7, 56 = NULL])

Many thanks

Hello Everyone, 

My questions is about a straight forward as my title suggests. I know how to compute the variation by hand and of course it is in plently of books, but I would like to know how I could possibly do it in Maple as I have some terms with non-trivial contributions where I infact need that specific variation. 

I have attached my file I have been working with that has more comments.

RicciAction.mw

Thank you

Hi, 

Maple has corrupted my file without notice. I get the error "There was a problem in the loading process, you worksheet may be incomplete."

I've tried restarting maple, checked my backup folder, and followed maples troubleshooting process (maplesoft support) without any luck.

Anyone who might help me here? 

File: Assignment2.mw

The algebraic equation in four variables is: 

restart;
expr := (a^2 + b^2 + c^2 + d^2 - 4)*(a^2 + b^2 + c^2 + d^2) + 4*d*c*b*a - (a + b + c + d - 2)*(a + b + c + d) + 6:
solve(expr = 0, useassumptions, allsolutions) assuming nonnegative;

Unfortunately, I've been waiting for a long time, and I have no more time to wait; I have to interrupt the current session by hand. However, it appears that MMA can solve it within bearable time:

Did Maple miss something here?

in my program, I keep assumptions in a set. Sometimes this is empty if no assumptions are used. This never caused a problem before (at least I do not think so, else I would have seen it) when using empty {} in assuming, except for now.

Here is one example below. Is this a known problem? I noticed when changing {} to [] the error goes away. I am not sure why, and if this is known issue. But will change from a set to a list to avoid this. 

Maple 2022.2 on windows 10

interface(version);

`Standard Worksheet Interface, Maple 2022.2, Windows 10, October 23 2022 Build ID 1657361`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1392 and is the same as the version installed in this computer, created 2023, February 13, 12:58 hours Pacific Time.`

restart;

ode:=diff(diff(y(x),x),x)+diff(y(x),x)^2+diff(y(x),x) = 0;
ic:=y(0) = 0;
sol:=y(x) = -ln(exp(x))+ln(-1+_C1*exp(x))-ln(-1+_C1);

diff(diff(y(x), x), x)+(diff(y(x), x))^2+diff(y(x), x) = 0

y(0) = 0

y(x) = -ln(exp(x))+ln(-1+_C1*exp(x))-ln(-1+_C1)

odetest(sol,[ode,ic]) assuming {};

Error, (in convert/multiset) too many levels of recursion

odetest(sol,[ode,ic]) assuming [];

[0, 0]

odetest(sol,[ode, ic]);

[0, 0]

 

Download feb_14_2023.mw

I am trying to find remainder of (2 + sqrt(3))^15 + (2 - sqrt(3))^15 with 2017. I tried
irem((2 + sqrt(3))^15 + (2 - sqrt(3))^15, 2017);

I do not get the result. How can I get the result?

I use like this 
a := expand((2 + sqrt(3))^15 + (2 - sqrt(3))^15);
irem(a, 2017);

get the result.

I am tyring to simulate the intensity autocorrelation of a femtosecond laser pulse.   The pulse intensity is set up as a 4096 point Vector of real values using a sech function for the pulse shape (see below). 

Being that it's the intensity, not the complex field, of the laser pulse, it is always real-valued and positive.    Therefore, the autocorrelation of the pulse intensity should be positive at all points in time.   But in fact, when I use the AutoCorrelation command on this Vector, it results many negative-valued points (see below).

What is going on?   Why am I getting negative values?

Thanks!

-Gregg-

I am new to Maple. I'm having trouble with simple caluclations such as the one in the image. The answer (after simplificatoin and cancellations) should be (|a|^2+|b|^2)(x^2 + y^2 + z^2)  but it's not happening! The result shown is correct; only the simplification is missing. What step am I missing?

The calculation is so simple, a look at the picture should suffice for the expert,

(sorry! I still don't know how to pick-off a single tab out from the whole workbook).

Question-2: judging from the missing overbar (complex conj) on z, the "assuming" seems to only apply to z and not x and y.

if that is correct, then why?

Question-3: How can I implement the constraint (|a|^2+|b|^2)=1 (preferably)before or after this  multiplication? I tried assume((|a|^2+|b|^2)=1), and though it compiled it did not help with the simplification.

TYVM

i have on ode with some parameters. it is ok and it is solved. but when i substitute the parameter itself, it is not solved, can i use any assumption to solve this? tnx for the help.

restart

ode := diff(T(x), x, x)+q/k = 0

diff(diff(T(x), x), x)+q/k = 0

(1)

dsolve(ode)

T(x) = -(1/2)*q*x^2/k+_C1*x+_C2

(2)

ics1 := -k*(D(T))(0) = h[1]*(T[inf1]-T(0)), -k*(D(T))(0.5e-1) = h[2]*(T(0.5e-1)-T[inf2])

-k*(D(T))(0) = h[1]*(T[inf1]-T(0)), -k*(D(T))(0.5e-1) = h[2]*(T(0.5e-1)-T[inf2])

(3)

dsolve({ics1, ode})

T(x) = -(1/2)*q*x^2/k-(1/40)*h[1]*(800*k*T[inf1]*h[2]-800*k*T[inf2]*h[2]-40*k*q-q*h[2])*x/((20*k*h[1]+20*k*h[2]+h[1]*h[2])*k)+(1/40)*(800*k*T[inf1]*h[1]+800*k*T[inf2]*h[2]+40*T[inf1]*h[1]*h[2]+40*k*q+q*h[2])/(20*k*h[1]+20*k*h[2]+h[1]*h[2])

(4)

ics2 := -k*(D(T))(0) = h[1]*(T[inf1]-T(0)), -k*(D(T))(L) = h[2]*(T(L)-T[inf2])

-k*(D(T))(0) = h[1]*(T[inf1]-T(0)), -k*(D(T))(L) = h[2]*(T(L)-T[inf2])

(5)

dsolve({ics2, ode})

Error, (in dsolve) found differentiated functions with same name but depending on different arguments in the given DE system: {T(L), T(x)}

 

``

Download ExactSol.mw

First 110 111 112 113 114 115 116 Last Page 112 of 2097