Art Kalb

187 Reputation

11 Badges

12 years, 319 days

MaplePrimes Activity

These are replies submitted by Art Kalb

Having moved to a new laptop, I lost my old method for getting the screen sizing how I wanted it.
I discovered a "new" setting in Windows (10): "Override high DPI scaling behavior."
If you open the file location for Maple and right click for properties you will get the form shown below:
Select the "Override high DPI scaling behavior" property and set the "Scaling performed by:" to application.

If anyone has a better way to do this, I am all ears.



@acer Thanks for the idea!

I probably will go silent for a few days as I have a higher priority item that needs attention.

I'll post when/if I get this working.


@Carl Love 


Thanks for the suggestion. I had actually just tried thickness before I saw your post. It's sort of strange. The lines become blurry.

It seems like offsetting the grids may be the nicest looking approach.

The other possibility is to draw each gridline as a parametric plot and merge them all together. This would probably be slow.

@Carl Love 

I had played around with patchnogrid.

One thing I tried was to plot the surface [arg(z),20*log10(abs(z)),arg(z/(1+z))] vs. [arg(z),20*log10(abs(z))] with patchnogrid. I then made a separate plot of vs [arg(z),20*log10(abs(z)),arg(z/(1+z))] vs [arg(z/(1+z)),20*log10(abs(z/(1+z))] - which as mentioned above is equivalent to plotting [arg(w/(1-w)),20*log10(abs(w/(1-w))),arg(w)] vs [arg(w),20*log10(abs(w)))] - with wireframe. I then displayed these two plots together. It sort of did the right thing, but the grid was averaged into the first plot, resulting in faint lines.

I could make two grid plots and offset them +/- ever so slightly in the third coordinate direction. This would give the illusion of solid grid lines.

Any suggestions how to get dark lines when the two plots are merged.


@Carl Love 

You are correct about wanting to increase the plot's extent in the second coordinate dimension.

With regard to the formula, since my grids are parameterizations of w=z/(1+z), my first and second coordinates [parameterizations of z] need to be expressed in terms of w. z=w/(1-w). Hopefully this makes sense?

If I could put contours of arg(z/(1+z)) and 20*log10(abs(z/(1+z)) on the same arg(z/(1+z)) surface, that would be the easiest. As far as I know I can't put the 20*log10(abs(z/(1+z)) contours onto a plot of the arg(z/(1+z)) surface.

Thanks for looking at this.

@rlopez Thanks for the reply. The order the operations are imposed does not matter. Partials commute.



@Christian Wolinski 


Thanks for the reply. I don't think I am quite getting it.

Do you have an example of the difference?



@Christian Wolinski 

Thanks for the reply.

I experimented around and found that the uneval quotes make a difference - so I can get the expected behavior if I quote 'Heaviside'.

I'm not sure why Heaviside requires the quotes where other procedures do not?

As a side question, what is the distinction between patmatch and typematch?




Thanks for the reply.

I definitely intend it to only match for type algebraic.

type(x,algebraic) returns true

I get a valid pattern match for an arbitrary function "f"


My expectation is that if x is not algebraic that I would get a false match.





@Carl Love Thanks for the reply. I had seen the wrightomega function, but I'm not sure how this helps me. Maple will not solve for the wrightomega function, so I am stuck trying to get my answer onto the correct branch.


@Carl Love . Thanks Carl. The result looks good.

I did some further clean-up, borrowing from your basic idea. I eliminated the multiple patterns for alpha. Slightly different. I think equivalent?


alias(alpha = RootOf(x^4+x+1))



z := alpha^3*a[3]+alpha^2*a[2]+alpha*a[1]+a[0]



mod2simp := proc (x) options operator, arrow; `mod`(thaw(subsindets[2](subsindets(x, {identical(alpha)}, freeze), Not(identical(freeze(alpha)))^integer, 1, op)), 2) end proc;

proc (x) options operator, arrow; `mod`(thaw(subsindets[2](subsindets(x, {identical(alpha)}, freeze), Not(identical(freeze(alpha)))^integer, 1, op)), 2) end proc


z2 := collect(`mod`(Expand(z^2), 2), alpha):

z3 := collect(`mod`(Expand(z^3), 2), alpha):










@Carl Love : Thanks for the response. I thought you had it, but realized the alpha's are also being reduced.


@Carl Love : Thanks. It does the trick. Took me a couple minutes to decipher what it was doing - interesting.


I'll leave the thread open a bit to see if someone comes up with something slicker.


Thanks again.

The following does work:





The following does work:





1 2 3 4 5 6 Page 1 of 6