nmacsai

280 Reputation

9 Badges

4 years, 144 days

MaplePrimes Activity


These are questions asked by nmacsai

How do I programmatically control the zoom of a 3d plot ?
SEE THE ATTACHED MAPLESHEET. In the attached code, the 'zoom out' on the blue cylinder is not conserved when I saved the maplesheet but it doesn't change the essential question which is how does one control the zoom programmatically. If you yourself adjust the zoom of the blue cylinder and the run tabulate(), you will see how it resets the plots settings to some default set of values.
How_do_I_programmatically_control_the_zoom_in_a_3d_plot.mw

restart

with(plots)

with(plottools)

with(DocumentTools)

``

Plot two cylinders with plottools and plot3d. Zoom out on the blue cylinder a little.

c1 := display(cylinder([1, 1, 1], 1, 3), orientation = [45, 70], scaling = constrained, color = red, size = [300, 300])

 

c2 := display(cylinder([1, 1, 1], 1, 3), orientation = [45, 70], scaling = constrained, color = blue, size = [300, 300])

 

Use tablate to embed the 3d plots in a visual array, for reasons not discussed here.

NULL

DocumentTools:-Tabulate([c1, c2], exterior = none, interior = none)

"Tabulate4"

(1)

Notice how the use of tabulate( ), changes the zoom of the individual plots to some default. There are two questions: 1. How do I programmatically control the zoom of a 3d plot with display( )? I don't want to have to click buttons with the mouse to arrive at my ideal zoom level. 2. How do I programmatically control the zoom of a 3d plot when using Tabulate( ) which envokes the default plot settings?  

Below is a screenshot of the zoom buttons I want to control programmatically.
NULL

NULL


Download How_do_I_programmatically_control_the_zoom_in_a_3d_plot.mw
1. Plot two cylinders with plottools and plot3d. Zoom out on the blue cylinder a little.
2. Use tablate to embed the 3d plots in a visual array, for reasons not discussed here.

3. Notice how the use of tabulate( ), changes the zoom of the individual plots to some default. There are two questions: 1. How do I programmatically control the zoom of a 3d plot with display( )? I don't want to have to click buttons with the mouse to arrive at my ideal zoom level. 2. How do I programmatically control the zoom of a 3d plot when using Tabulate( ) which envokes the default plot settings

Below is a screenshot of the zoom buttons I want to control programmatically.

Using with(plots) and with(plottools), how do you change the color of the line enclosing a disk? I can change the line style of the line, but I can't figure out how to change the color of the line. I didn't find anything in plot options that would fit my purpose.

how_do_i_change_the_color_of_the_line_around_a_disk_while_using_plottools.mw

Can one evaluate dirac spinor products using the Standard Model package? How far can I take the evaluation in the package? See maplesheet with commentary.

Evaluating_spinor_products_with_the_standard_model_package.mw

out_parameter_for_Sample(_)_and_rtables.mw
When I generate sample data using a random variable, a normal distribution and the Sample command, I want to see the sample and the values used to randomly evaluate the distribution which generates said sample. The Maple help sheets say you can so this with the out parameter in the Sample command. I try several different calls and hoped the rtable is filled on execution. As seen below, the execution fails. Am a specifying the rtable incorrectly? See attached Maple sheet.

restart

NULL

NULL

with(Statistics)

with(LinearAlgebra)

NULL

When I generate sample data using a random variable, a normal distribution and the Sample commands, I want to see the sample and the values used to randomly evaluate the distribution. The Maple help sheets say you can so this with the out parameter in the Sample command.

NULL

NULL

NULL

From the help, we are required to specify a float rtable, that will be filled when the Sample command is succesfully executed.

NULL

Define a random variable.

X := RandomVariable(Normal(0, 1))

_R

(1)

Sample that random variable. We sample it 10 times and look at the output.

A := Sample(X, 10)

Vector[row](%id = 36893491057099280004)

(2)

The float rtable is defined with the sample number of elements as will be sampled.

tab1 := rtable(1 .. 10, datatype = float)

Array(%id = 36893491057099270012)

(3)

NULL

tab2 := convert(rtable(1 .. 10, datatype = float), list)

[HFloat(0.0), HFloat(0.0), HFloat(0.0), HFloat(0.0), HFloat(0.0), HFloat(0.0), HFloat(0.0), HFloat(0.0), HFloat(0.0), HFloat(0.0)]

(4)

Now I try several different calls and hope the rtable is filled on execution.

A := Sample(X, 10, out)

Error, invalid input: no implementation of Statistics:-Sample:-ModuleApply matches the arguments in call, 'Statistics:-Sample:-ModuleApply(X,10,out)'

 

A := Sample(X, 10, out = tab1)

Error, invalid input: no implementation of Statistics:-Sample:-ModuleApply matches the arguments in call, 'Statistics:-Sample:-ModuleApply(X,10,out = tab1)'

 

A := Sample(X, 10, out = tab2)

Error, invalid input: no implementation of Statistics:-Sample:-ModuleApply matches the arguments in call, 'Statistics:-Sample:-ModuleApply(X,10,out = tab2)'

 

A := Sample(X, 10, out = true)

Error, invalid input: no implementation of Statistics:-Sample:-ModuleApply matches the arguments in call, 'Statistics:-Sample:-ModuleApply(X,10,out = true)'

 

NULL

As seen above, the execution fails. Am a specifying the rtable incorrectly?

NULL

NULL

NULL


 

Download out_parameter_for_Sample(_)_and_rtables.mw

 

Can Maple carry around an unevaluated/inert  Matrix-Vector product(A matrix product without executing the matrix multiplication)? See Maple sheet.

inert_matrix_products.mw

restart

with(LinearAlgebra)

NULLNULL

Can Maple carry around an unevaluated/inert explicit Matrix-Vector product?

 

Define a matrix K and vector U as:

 

U := `<,>`(u1, u2)

Vector[column](%id = 36893490583464982996)

(1)

K := Matrix(2, 2, symbol = k)

Matrix(%id = 36893490583464975884)

(2)

I can take their product using MatrixVectorMultiply( ) I get,

MatrixVectorMultiply(K, U)

Vector[column](%id = 36893490583464964812)

(3)

however output I am really looking for is

 

(Matrix(2, 2, {(1, 1) = k[1, 1], (1, 2) = k[1, 2], (2, 1) = k[2, 1], (2, 2) = k[2, 2]})).(Vector(2, {(1) = u1, (2) = u2}))

NULL

In the later case, K.U is still a product however the actual matrix multiplication is not carried out. Sure, eventually I will want to evaluate the matrix-vector product but sometimes when setting up a problem I want to look at the explicit matrix equation before any explicit matrix multiplication is carried out.NULL

NULL

Here I show some ideas that don't work but may give a sense of what I am going for. I am essentially trying to mute the computation of the product while keeping the elements of the product together for further substitutions elsewhere. This there a standardized way to complish this? Or do I have to write my own procedure for something like this?

 

`&MatrixVectorMultiply`(K, U)

`&MatrixVectorMultiply`(Matrix(%id = 36893490583464975884), Vector[column](%id = 36893490583464982996))

(4)

%MatrixVectorMultiply(K, U)

%MatrixVectorMultiply(Matrix(%id = 36893490583464975884), Vector[column](%id = 36893490583464982996))

(5)

`&.`(K, U)

`&.`(Matrix(%id = 36893490583464975884), Vector[column](%id = 36893490583464982996))

(6)

K*%.U

`&.`(Matrix(%id = 36893490583464975884), Vector[column](%id = 36893490583464982996))*Matrix(%id = 36893490583464939756).Vector[column](%id = 36893490583464982996)

(7)

NULLNULL

Download inert_matrix_products.mw

3 4 5 6 7 8 9 Page 5 of 9