Carl Love

Carl Love

19301 Reputation

24 Badges

8 years, 13 days
Mt Laurel, New Jersey, United States
My name was formerly Carl Devore.

MaplePrimes Activity


These are replies submitted by Carl Love

The best way to enter multi-line code into a Maple worksheet is to use a Code Edit Region. Place your cursor where you want the window, then select Code Edit Region from the Insert menu. It gives you a Notepad-like editor with tabs and hanging indents. Also, you can use ordinary Enter (or Return) instead of Shift-Enter (Shift-Return).

Please upload your worksheet, not just a screen shot of it, so that we can work with it. Use the green up arrow that is the last thing on the tool bar of the MaplePrimes editor. And please upload a photo of a hand-drawn sketch of what you think the plot should look like. My first impression is that we can use the RootOf comand with the selector option.

I doubt that it could be expressed in radical form without the I, because it comes from solving a cubic. Attempting to use evalc and simplify puts it back into a trigonometric form.

"... if the number of degrees is divisible by three" seems like a rather weak statement! Here I prove that the trigonometric functions for any integer number of degrees can be expressed in radicals. Below, I derive cos(20°) in radicals (because the expression is relatively simple) and cos(1°). Clearly, once you have cos(1°) in radicals you can get any trigonometric function of any integer number of degrees in radicals by applying secondary-school-level identities.

I also used my font chart from my previous post to find that the degree symbol is character number 176, so I use that below.

It is surprising that convert(..., radical) does not apply these techniques. It seems limited to multiple-of-three degrees.

restart;

°:= Pi/180:

cos(3*`20°`) = cos(60*°);

cos(3*`20°`) = 1/2

expand(%);

4*cos(`20°`)^3-3*cos(`20°`) = 1/2

solve({%, cos(`20°`) > 0}, cos(`20°`), Explicit);

{cos(`20°`) = (1/4)*(4+(4*I)*3^(1/2))^(1/3)+1/(4+(4*I)*3^(1/2))^(1/3)}

expand(cos(3*`1°`)) = convert(cos(3*°), radical);

4*cos(`1°`)^3-3*cos(`1°`) = (-(1/16)*2^(1/2)+(1/8)*(5+5^(1/2))^(1/2)+(1/16)*2^(1/2)*5^(1/2))*3^(1/2)+(1/8)*(5+5^(1/2))^(1/2)+(1/16)*2^(1/2)-(1/16)*2^(1/2)*5^(1/2)

solve({%, cos(`1°`) > 0}, cos(`1°`), Explicit);

{cos(`1°`) = (1/8)*(4*3^(1/2)*2^(1/2)*5^(1/2)-4*2^(1/2)*5^(1/2)-4*2^(1/2)*3^(1/2)+8*3^(1/2)*(5+5^(1/2))^(1/2)+4*2^(1/2)+8*(5+5^(1/2))^(1/2)+(8*I)*(32-2*5^(1/2)*2^(1/2)*(5+5^(1/2))^(1/2)-4*5^(1/2)*3^(1/2)+2*2^(1/2)*(5+5^(1/2))^(1/2)-4*3^(1/2))^(1/2))^(1/3)+2/(4*3^(1/2)*2^(1/2)*5^(1/2)-4*2^(1/2)*5^(1/2)-4*2^(1/2)*3^(1/2)+8*3^(1/2)*(5+5^(1/2))^(1/2)+4*2^(1/2)+8*(5+5^(1/2))^(1/2)+(8*I)*(32-2*5^(1/2)*2^(1/2)*(5+5^(1/2))^(1/2)-4*5^(1/2)*3^(1/2)+2*2^(1/2)*(5+5^(1/2))^(1/2)-4*3^(1/2))^(1/2))^(1/3)}


Download cosine_1_degree.mw

I was looking for Joe's ListBuffer code, but the (seven-year-old) link in the original post is dead.

A great solution, Markiyan. What led you to do it the way that you did? Would you recommend to always separate out the non-differentiated functions from a DAE system when it is algebraically possible to do so?

A great solution, Markiyan. What led you to do it the way that you did? Would you recommend to always separate out the non-differentiated functions from a DAE system when it is algebraically possible to do so?

It's a great question, but the full answer gets very complicated. Would you be satisfied with log10 being an inert function which would only be evaluated when you explicitly asked for it to be, and then it would be converted to ln? This would be relatively easy.

You seem to be asking the same question over and over, since 20-Feb-2013. Have you seen the answers? You never responded to the answers. If an answer doesn't work for you, then you should respond there and not create a new thread. Maybe you need to provide a more detailed example, like a worksheet. Maybe it would help if you asked in your native language and we translated.

Please respond to your earlier post and delete this one.

@williamov Okay, if you insist. But I emphasize that this seems sloppy to me. I do not "stand behind" the following code:

TypeTools:-AddType('w', 'satisfies(p-> has(p,w))');

To use the new type:

[op] ~ (select(type, G1, 'w'));

or, if you prefer something akin to your `if`:

(p-> `if`(p::'w', [op], [][])) ~ (G1);

You can use ?satisfies to turn any predicate whatsoever into a type; and you can turn all predicate invocations into type checks. That doesn't mean it is a good idea to do so.

@williamov Okay, if you insist. But I emphasize that this seems sloppy to me. I do not "stand behind" the following code:

TypeTools:-AddType('w', 'satisfies(p-> has(p,w))');

To use the new type:

[op] ~ (select(type, G1, 'w'));

or, if you prefer something akin to your `if`:

(p-> `if`(p::'w', [op], [][])) ~ (G1);

You can use ?satisfies to turn any predicate whatsoever into a type; and you can turn all predicate invocations into type checks. That doesn't mean it is a good idea to do so.

Are you using package PolynomialIdeals? If not, then check out ?PolynomialIdeals. If that doesn't answer your question, then ask again.

@ecterrab Thank you so much for checking these old posts, and for posting your update messages. It is so helpful to know that someone is working on these things!

@Alejandro Jakubi Thank you Alejandro for this example of package Typesetting. I note that your command does not select a font; it is the bold italic of the standard font.

Could you write a post about the undocumented commands in that package, or provide a pointer to some other reference material? It is mostly the commands whose names begin with lowercase m. Just an explanation of what names like mi, mo, and mrow stand for would be very helpful.

@acer Thanks you Acer for the useful comment about Unicode. If I were to make a table of a range of Unicode characters, what would be a good of font that is likely to have most of them? I can fit 1024 characters into a table such as the one above, though the display of indexing numbers would not be as convenient. I could make a procedure that displays a given range in a given font.

First 526 527 528 529 530 531 532 Last Page 528 of 550