C_R

3412 Reputation

21 Badges

5 years, 315 days

MaplePrimes Activity


These are replies submitted by C_R

@TechnicalSupport 

That  helps. Suggestion: If the icon is only for removal it could be replaced by a simliar icon already used in MapleSim.

Thank you for following up!

@Carl Love 

After reading your reply, I checked help("simplify[constants]"). So constants are not automatically constants...

 

What's confusing about the help page:

I would have expected simplify(infinity(x)) to be effective only when using the "constants" option to tell Maple to treat constants as "common constants" (i.e., remove the (x)). This is not the case, and Maple simplifies directly to infinity, which to me means that Maple assumes that infinity is not a function.

But for the integral evaluated to infinity, Maple is very careful to assume that infinity is really a constant infinity.

Thanks for the context information.

 

@vv 

Int(1/(sqrt(1-x)*sqrt(-x^2+1)), x = 0 .. 1); simplify(((proc (x) options operator, arrow; x end proc) = value)(%))

Int(1/((1-x)^(1/2)*(-x^2+1)^(1/2)), x = 0 .. 1) = infinity

(1)

(Int(1/((1-x)^(1/2)*(-x^2+1)^(1/2)), x = 0 .. 1) = infinity)*(1/rhs(Int(1/((1-x)^(1/2)*(-x^2+1)^(1/2)), x = 0 .. 1) = infinity))

0 = 0

(2)

lhs(Int(1/((1-x)^(1/2)*(-x^2+1)^(1/2)), x = 0 .. 1) = infinity)/rhs(Int(1/((1-x)^(1/2)*(-x^2+1)^(1/2)), x = 0 .. 1) = infinity) = rhs(Int(1/((1-x)^(1/2)*(-x^2+1)^(1/2)), x = 0 .. 1) = infinity)*(1/rhs(Int(1/((1-x)^(1/2)*(-x^2+1)^(1/2)), x = 0 .. 1) = infinity))

0 = undefined

(3)

NULL

Download Infinity_times_something_divided_by_infinity.mw

Thanks for pointing out this last detail as well. I was just about to use the integral in quotients. I will pay more attention to quotients now.

@Anthrazit 

I had

Override high DPI scaling behavior -> System (Enhanced)

but changing it back to  Application made (as you noticed) no difference.

(Maybe with recent Windows updates there has been an improvement.)

Your observations point toward a machine depended installation issue. Did you compare

C:\Users\%USERNAME%\AppData\Roaming\Maple\2021\Maple.ini

for differences.

Could you share a Maple worksheet where you noticed the rendering issue. A screen shot scaled to 200% would be benefical to see where the differences are. That's an unscaled screen shot from a 4K Monitor with 150% font scaling in Windows

 

Recently I have observed even stronger delays when editing/correcting long text passages in MapleSim 2021, which uses the same Java platform (OpenJDK) as Maple 2021. It requires a restart and is not reproducible. Maybe this is related.

@vv 

That is not good. So far, I've been pretty impressed with what one can achieve with the right assumptions. Let’s hope for improvements. In your example Maple could even produce a hint that the exclusion of the endpoint leads to an evaluated expression.

Thank you for the big picture

@vv Thank you for the clarifications. It is a big help.

@vv 

either in the symmetry or the identity section.

The plot gave already a clue where to look...

Lesson learned: there is more than branches to watch out for!

I have tried to exclude the case you highlighted, but still get a FAIL.

Can this be fixed by better assumptions?

Thank you!
 

restart

kernelopts(version)

`Maple 2022.0, X86 64 WINDOWS, Mar 8 2022, Build ID 1599809`

(1)

arctan(y, z) = -arctan(-y, z)

arctan(y, z) = -arctan(-y, z)

(2)

`assuming`([is(arctan(y, z) = -arctan(-y, z))], [y > 0, z > 0])

true

(3)

`assuming`([is(arctan(y, z) = -arctan(-y, z))], [y >= 0, z > 0])

true

(4)

`assuming`([is(arctan(y, z) = -arctan(-y, z))], [y < 0, z < 0])

true

(5)

Inclusion of the origin

`assuming`([is(arctan(y, z) = -arctan(-y, z))], [y <= 0, z < 0])

false

(6)

`assuming`([is(arctan(y, z) = -arctan(-y, z))], [y > 0, z < 0])

true

(7)

`assuming`([is(arctan(y, z) = -arctan(-y, z))], [y::real, z < 0])

FAIL

(8)

This explains why the real assumption produces a FAIL

``

Excluding y=0

NULL

`assuming`([is(arctan(y, z) = -arctan(-y, z))], [y::real, y <> 0, z < 0])

true

(9)

`assuming`([is(arctan(y, z) = -arctan(-y, z))], [y::real, y <> 0, z >= 0])

true

(10)

`assuming`([is(arctan(y, z) = -arctan(-y, z))], [y::real, y <> 0, z::real])

FAIL

(11)

This should have worked but still produces a FAIL although z=0 is allowed

arctan(0, 0)

0

(12)

NULL


 

arctan_yz_with_new_FAIL.mw

Update:

The frist bulletpoint has been adressed in Maple 2022.

see: help("2022,V,Updates,What,New,Maple,Units")

Thank you!!!

@acer  Highlighted in red in the attachment Why_and_how_arctan_xy.mw is a simplification step that did not work. Is that worth branching off?

@acer 

You provided a solution that I wasn't even looking for, but could prove to be a great asset in more complex problems.

I have summarized my findings for myself for future projects in the attachment and share them here for others dealing with inverse trig functions.

The attachment might also underline why I think getting/forcing arctan(x,y) output is beneficial: It is the extended definition range for the angle. This can help to avoid “jumping” solutions in inverse kinematic problems by reducing the number of angular discontinuities.

Even with arctan(x,y), the need to switch between solutions sometimes can’t be avoided. Yes, a solution that "fits all" is not possible. The question is rather how to derive and identify the correct solution for a given problem in an efficient way. In the example of my question, this means finding for given set of input variables x,y,z  with specific ranges the appropriate equations.

Your solution with the explicit option was not obvious to me. It’s probably not obvious to others. But it can make the whole process of finding the correct equations much more generic.

Thank you again!

Why_and_how_arctan_xy.mw

@Maplesoft: Maybe there are improvements by new or more power full options (or including examples in the documentation (I consulted invtrig,details and arctan as well as the FunctionAdvisor)).  

@Mariusz Iwaniuk 
I am not sure if that explains all. If you simplify

-sin(arcsin(y(t)/(sin(alpha(t))*(l + s(t)))))*(l + s(t))*cos(alpha(t)) - z(t)

to

-sin(arcsin(y(t)/(sin(alpha(t))*(l + s(t)))))*(l + s(t))*cos(alpha(t)) - z(t)

there is still enought information left to find all solutions. Solve this

solve(-y(t)*cos(alpha(t))/sin(alpha(t)) - z(t), [alpha(t)], allsolutions = true)

gives

solve(-y(t)*cos(alpha(t))/sin(alpha(t)) - z(t), [alpha(t)], allsolutions = true)

This includes all branches. Often in a technical context only the frist two branches are of interest (e.g. they describe the angular position of a mechanical link). Arctan(y,z) combines the two solutions and I got this desirable format by coincidence when I used subs inside solve.

I have to post a new question on forcing that output format.

Thank you for the clarifying  links

@Mariusz Iwaniuk 

I was probably not clear. I want

solve(-sin(arcsin(y(t)/(sin(alpha(t))*(l + s(t)))))*(l + s(t))*cos(alpha(t)) - z(t), [alpha(t)])

to produce the output

[[alpha(t) = arctan(-y(t), z(t))], [alpha(t) = arctan(y(t), -z(t))]]

However, your answer indicates that when subs() is used inside solve(), no simplification is applied.

That has the same effect as putting the expression to be solved in single quotes ' ' (delayed excecution).

Does this mean that each time when dealing with an output with arctan I have to test with delayed excecution if Maple can provide an arctan(y,z) version?

 

works well in extended typesetting mode.

Thank you all!

I got a solution to add images by inserting and filling a shape:

https://de.maplesoft.com/support/help/MapleSim/view.aspx?path=tasks/building/annotate/drawing/addShapeWithImage

First 60 61 62 63 64 65 66 Page 62 of 67