390 Reputation

8 Badges

11 years, 147 days

MaplePrimes Activity

These are replies submitted by digerdiga

Thanks...But what makes RootOf choose a specific root indexed by 1 ???

Is it arbitrarily allocated?

Is it not possible to implement the constrain in the solutions for the curve to be at least C1 ???

Also: Isn't it quite counterintuitive that the (physically!) correct solution as in your graphical illustration jumps from the highest root r(0)=3 going to sth like 2.6 @ c=1 and then jumping to 0.4 ???

As in my case the equation is based on sth physical and why the hell should that be discontinuous?

Btw: You said h(y)>1 in order to be continuous in your example. Do I not get a continuous solution already at c approximately 0.5 ??

Thats when the 2 higher roots disappear.

Thanks guys...Thats what I want.

Am I not using it right?

What I want is for example:

expression:=(a*b^2*c*d+a^2*b*c*e)*x^2 + (a*b+a^2*e)*x


a*b*c*(b*d+a*e)*x^2 + a*(b+a*e)*x


PS: AH I see.. So I need an additional argument within collect? Ill try it out...

I found:



Or is there something automatic?

In particular when I want to write sth like:


then cm^3 is italic, because it is not within "". How can I make it normal without putting it in "", because then also the fractions dont work anymore.

@digerdiga Why do I need double \\ inside the String " " ??

....SubstituteAll in the package StringTools

However when I do


SubstituteAll(result, "\it O3", "\text{O}_3")

there is a huge gap: {\    ext{O}_3}

Or is there something better than StringTools:-SubstituteAll??

I'm actually thinking about the following at the moment. Is it possible to write a little routine in MAPLE which works like this:

As the output is always the same: a variable say k_O3NO becomes {\it k\_O3NO}

Now I create a list of all this expected outputs

list1:=[ \it k\_O3NO , \it O3 , ... ]

and a list with replacements

list2:=[  k_{\text{O}_3\text{NO}} \text{O}_3 , ... ]

I then have the full expression as text

full_expression:= {{\it O3}}^{2}+{\it k\_O3NO}

Now I want to create a loop (instead of manually using the find and replace option) in pseudocode

for i from 1 to nops(list1) do



where the replace function looks for all matches list1[i] in full_expression and replaces them with list2[i].

Then full_expression is overwritten and the next entry in the list is worked on with the updated full_expression.


Maybe you can help me??

@Preben Alsholm 

try adding:

assume(s>1/2, s<1)

so as suspected int does not evaluate the contour integration:


z := exp(I*t);

s := 17.*(1/5);

epsilon := 10^(-5);

f := (z*(0-z))^s;

evalf(Int(f*(diff(z, t)), t = 0 .. 2*Pi));

int(f*(diff(z, t)), t = -Pi .. Pi);

int(f*(diff(z, t)), t);

evalf(eval(%, t = Pi-epsilon)-(eval(%, t = -Pi+epsilon)))


my question would just be if that is intended?

Hey guys, I didn't read everything, because it was more than I expected..I will do it later..

I just wanted to point out that "int" (to me) seems to integrate symbolically always by calculating the primitive (Stammfunktion) and then evaluating at the endpoints... However in this case there is no primitive, because the integrand is not holomorph. By the nature of the cut implemented in maple

int(z^(1/2)*(diff(z, t)), t = -Pi .. Pi)

gives the correct result...

I'm though still baffled about the following result:


assume(epsilon > 0);

z := 0.+exp(I*t);

s := 1.*(1/2);

evalf(Int(z^s*(diff(z, t)), t = 0 .. 2*Pi));

int(z^s*(diff(z, t)), t = -Pi .. Pi);

int(z^s*(diff(z, t)), t);

evalf(eval(%, t = Pi-epsilon)-(eval(%, t = -Pi+epsilon)));

series(%, epsilon = 0, 2)


Now either


which would give the correct result or (how i assume maple does it)


leading to the wrong sign...


edit: actually forget the last part...


eval(%, t = Pi-epsilon*1);


`assuming`([series(%, epsilon = 0, 2)], [epsilon > 0])


gives the result as if I'm in the -Pi branch and not +Pi as it should be for epsilon>0

doing it numerical wise:


evalf(eval(%, t = Pi+0.1e-4))

gives the same result as above...as Pi+epsilon = -Pi



evalf(eval(%, t = Pi-0.1e-4))

gives the correct result the first series approach should give too!



edit2: Ok, I think it is a numerical issue:

if I do 1 instead of 1. then it works...it is still a bit annoying because in larger computations one does not have control over it i.e. it just happens and you are wondering what is going wrong...

@Carl Love for example if I have exp(I*(2*Pi-epsilon))^(omega) and take the limit epsilon -> 0 this becomes 1 since omega is not pulled into the exponent like i want it to enforce a branch cut:


now taking the limit epsilon->0 is not 1. Is it possible to tell maple that?

Is it possible to put the principal branch to 0..2Pi?

@Carl Love hm...

ok if u plot this:

plot3d(argument((x+I*y)^2), x = -3 .. 3, y = -3 .. 3)

ull see 2 jumps at phi=+-Pi/2

These jump however are not related to the function not being holomorphic at that points. It's just that argument() is restricted to +-Pi

If I put the cut on the positive x-axis (instead of the negative which is default in maple) I would expect a holomorphic function to be discontinuous (in a plot) only at that axis. So I can see visually if the function has any real discontinuities or not.

For example the function:

plot3d(argument((x+I*y)^(1/2)), x = -3 .. 3, y = -3 .. 3)

is discontinuous at the negative x-axis not because the the argument surpases +-Pi but there is a real discontinuity (a cut).

So when I plot something I would like to only see real discontinuities and the ones which arise from the cut in the preimage.

For that purpose I would like to have argument() return the real argument and not mod 2Pi. I hope that is more clear

@Carl Love Good to know. So it has some rounding errors while integrating?

@Carl Love Well with maple 2015 i didnt make that up :-/

First 9 10 11 12 13 14 15 Last Page 11 of 19