## 370 Reputation

10 years, 54 days

## @vv Frankly, I would not have expec...

@vv Frankly, I would not have expected otherwise in Maple that this can also be done in the example you show that a true state also holds for a=b
Important if you are going to program in Maple I suspect

## @Carl Love  Yes, thanks that clari...

@Carl Love

The = sign is always used in Maple on syntactically distinct expressions , because does it make sense to prove that a = a ?

## @Scot Gould ThanksCreated a module ...

@Scot Gould
Thanks
Created a module called : FullSimplify
Uses 2 commands.
ShowMet( )
BestSimp( )
With ShowMet, you can turn the methods on or off.
With BestSimp you can do simplifications with the methods on an expression e
Next step would be a command to add or remove methods from the module, but that is not that easy to get the right code for that, but there is progress ...

Module_fullSimplify-2_commands_MPforum.mw

## @GFY Its about the simplication of ...

@GFY
Its about the simplication of your "solution" , with this command : simplify(solution, symbolic)
The complexity of your solution expression is 6879 and went down to 2967 and the expression becomes smaller in size.
Did not perform all simplifications methods on your expression, so there are maybe more better simplifications

## Hi,  Would love to run the express...

Hi,

Would love to run the expressions through my simplification procedure, but it's not Maple code you show, which can be copied

## @acer Thanks for the comprehensive ...

@acer
Thanks for the comprehensive list of pointers.
After reading through the directions list, I still don't understand much of it
a?,b?,c?,d?,e,f?,g,h?,i,j,k,l,m,n,o,p,q
c: is the use of a module in which procedures can be called?
Where(with ) to start: how is the setup ?

You can also have an expression and run an iteration of simplification commands on it.
That's a different approach than running down a list of simplification commands.

## New method discovered: combined two meth...

New method discovered: combined two methods

Expressions can be simplified with various combinations of commands.
It is also informative that an expression comes in different forms

Try some expressions your self ...

veeenvoudingings_proc-full_simplify5_Maple_primes.mw

## @Carl Love  Explain again what exa...

@Carl Love

Explain again what exactly is meant by your text :

"Your problem comes from using the default equality operator = to check the mathematical equality of algebraic expressions, but = only checks whether the expressions are syntactically identical in their unsimplified form. That's a much stronger form of equality than mathematical equality."

post :

## improved full_simplify proc...

Now doing alone simplication examples ...
vereenvoudigings_proc-versie_2_naaar_MPFORUM_DEF.mw

## If you see this kind of generic solution...

If you see this kind of generic solution, then in my opinion, Maple doesn't know either.
Checking then yields nothing.

## @mmcdara Thanks, I try this for exp...

@mmcdara
Thanks, I try this for expression T, it gives s8 : for  a := full_simplify(T); and with : print~(full_simplify~(T)) s7,s9 and s16

```a := full_simplify(T[2]):
b := convert(rhs~(a), set):
t := map(u -> lhs~(a[[ListTools:-SearchAll(u, rhs~(a))]]) = u, b):
print~(t):```

Error, (in anonymous procedure) invalid input: lhs received (s8 = [(-12*cos(3*t)^2-228*cos(3*t)-54)/(-1169+72*cos(3*t)^3-124*cos(3*t)+388*cos(3*t)^2), 1/2*2^(1/2), 1/9*(ln(1+2^(1/2))+2^(1/2))^2, 1/2*exp(1/2*x)*(cosh(1/2*x)-cosh(3/2*x)+sinh(1/2*x)+sinh(3/2*x))])[[1]], which is not valid for its 1st argument, expr

"As several simplification methods lead to the same result, you could be interested in knowing those that give the same."
In other simplifications has this multiple same simplification some uses ?
Interesting question too is, find a simplification what simplified a expression the most .: the procdure must use this one.

## @mmcdara  Thanks, that's a grea...

@mmcdara
Thanks, that's a great idea to add a numbering to the simplification commands.

```I add two simpifications more for trigoniometry and exp
simplify(combine(expand(simplify(expr)), trig), trig),# special for trigonimetry
convert(simplify(combine(simplify(convert(e, trig)))), exp) assuming real # special for exp(x) powers

later i will add some more simplifications for other expressions.
Try to get this simplification
[exp(-1)*exp(x)/sqrt(2 - exp(-2)*exp(x)^2), sqrt(2)/2, (ln(1 + sqrt(2)) + sqrt(2))^2/9, exp(x)/2 - exp(-x)/2]

```

## Rotation cone around the x-axis as start...

Rotation cone around the x-axis as start

 (1)
 > plotCones := proc(degrees_list, view_range)     local R, param_cone, apply_rotation, kegel, phi, plots_list, degree, colors, i,color;     uses plots, plottools;     # Define a list of colors to be used     colors := ["red", "green", "blue", "cyan", "magenta", "yellow", "orange", "purple", "pink", "brown", "grey"];     # Define the parametric equation of the cone, shifting it so the top is at (0, 0, 0)     param_cone := (t, theta) -> [evalf(-t), evalf(t*cos(theta)), evalf(t*sin(theta))];     # Define a function to apply the rotation matrix to a vector     apply_rotation := (R, v) -> [         evalf(R[1,1]*v[1] + R[1,2]*v[2] + R[1,3]*v[3]),         evalf(R[2,1]*v[1] + R[2,2]*v[2] + R[2,3]*v[3]),         evalf(R[3,1]*v[1] + R[3,2]*v[2] + R[3,3]*v[3])     ];     plots_list := [];     for i from 1 to nops(degrees_list) do         degree := degrees_list[i];         # Assign a color from the list, cycling through if more cones than colors         color := colors[(i - 1) mod nops(colors) + 1];         # Convert degrees to radians         phi := evalf(degree * Pi / 180);         # Define the rotation matrix around the y-axis         R := Matrix([             [evalf(cos(phi)), 0, evalf(sin(phi))],             [0, 1, 0],             [evalf(-sin(phi)), 0, evalf(cos(phi))]         ]);         # Create a matrix for the cone         kegel := (t, theta) -> apply_rotation(R, param_cone(t, theta));         # Add the plot of the current cone to the plots list         plots_list := [op(plots_list), plot3d(             kegel(t, theta),             t = 0 .. 2,             theta = 0 .. 2*Pi,             colour = color,             axes = boxed,             scaling = constrained,  # Keep the scaling of the axes consistent             labels = ["x", "y", "z"],             title = cat("Cone (phi = ", degree, " degrees)"),             view = view_range         )];     end do;     # Display all the cones in one plot     display(plots_list, title = "Multiple Rotated Cones with Automatic Colors"); end proc: # Call the procedure with a list of angles in degrees and view range plotCones([0, 45, 90, 135, 180, 225, 270, 315], [-3..3, -3..3, -3..3]);

## Thanks, in the meantime had also done so...

Thanks, in the meantime had also done something with tickmarks:
tickmarks = [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]],
The procedure also works with this, only it is static

Going to modify it with view as well., that's easier for comparing the cones if they are equal.
Looks like the procedure now works well with a cone at an angle to the positive x-axis of 10 degrees and 45 degrees

## plotoptions 3d trouble...

```How to debug this ?

with(plots):
with(plottools):

plotCone := proc(phi_degrees, x_range::range, y_range::range, z_range::range)
local R, param_cone, apply_rotation, kegel, phi;

phi := phi_degrees * Pi / 180;

# Define the rotation matrix
R := Matrix([
[1, 0, 0],
[0, cos(phi), -sin(phi)],
[0, sin(phi), cos(phi)]
]);

# Define the parametric equation of the cone
param_cone := (t, theta) -> [t, t*cos(theta), t*sin(theta)];

# Define a function to apply the rotation matrix to a vector
apply_rotation := (R, v) -> [
R[1,1]*v[1] + R[1,2]*v[2] + R[1,3]*v[3],
R[2,1]*v[1] + R[2,2]*v[2] + R[2,3]*v[3],
R[3,1]*v[1] + R[3,2]*v[2] + R[3,3]*v[3]
];

# Create a matrix for the cone
kegel := (t, theta) -> apply_rotation(R, param_cone(t, theta));

# Plot the cone with specified ranges for the axes
plot3d(
kegel(t, theta),
t = 0 .. 2,
theta = 0 .. 2*Pi,
x = x_range,
y = y_range,
z = z_range,
axes = boxed,
scaling = constrained,  # Keep the scaling of the axes consistent
labels = ["x", "y", "z"],
title = cat("Cone around the positive x-axis (phi = ", phi_degrees, " degrees)")
);
end proc:

# Call the procedure with a desired angle in degrees and specified ranges for x, y, and z axes
plotCone(10, -2 .. 2, -2 .. 2, -2 .. 2);  # Adjust the ranges as needed

Error, (in plot3d) unexpected options: [x = -2 .. 2, y = -2 .. 2, z = -2 .. 2]
```
 1 2 3 4 5 6 7 Last Page 3 of 44
﻿