Items tagged with index

Also available: index

I have to find which column of a matrix contains repeated elements, i have done it in this but i'm afraid that the nested loops don't run correctly:

for j by 1 to 10 do 
for i by 1 to 30 do 
	for x by 1 to 30 do
		if Dati[x,j] = h then
			if x <> i then
				return j;
				end if;
				end if;
				end do;
				 end do;
				  end do;


I have a list of coefficients each assigned a triple of indices. E.g. CF_{x,y,z}. These indicies are also able to take other values between +-2. E.g. CF_{x+2,y-1,z} or CF_{x,y-2,z+1} as examples. I have a working loop that cycles through the list of these coefficients and I am able to call a particular one by specifying the triple of indicies. This script has been attached:

I would like to modify this script to have more control over single indexes. As an example, say I want to add up all the coefficients which have z as a subscript (so not z+1,z-2 etc...) and I don't care what the x and y subscripts are; I want to be able to call that sum using the same notation in the script but with a single index. e.g. (using a new example function called RR_MapZ):

RR_MapZ[0]; ## This would return the sum of all coefficients that had z in their subscript

and this would return the sum of all the coefficients which have subscript Z. If I wanted to add up all the coefficients which had index Z+1 I would do:

RR_MapN[1]; ## This would return the sum of all coefficients that had z+1 in their subscript

What would be the most efficient way to do this?


Is Maple understand the symbol f(i,j), f[i,j], f:=-->(i.j) and f_{i,j}  in the same way or in different way.

Hello people,

I am looking to use Maple and its loops, to develop the tensorial expressions in index notations such as this one:

My Sigma[11] is supposed to be a summation of the terms obtained when i then j are vary throughout the values, 1, 2 3 



When I copy mathml into Maple it always pasted the subscipts as indexed.  How could I quickly convert the indexed subscripts into literal subscripts without having to right click and convert each variable?



I'm new to the physics package - wondering if i can tweak it a bit to look like things i'm used to:


is there a way to make Christoffel symbols print as upper case gamma, instead of  'G'?

KroneckerDelta print as lower case delta, instead of 'd'?


can i make the Schwarzschild metric look like it does in Hartle, Carroll, and others:


-(1 - 2M/r)dt^2 + (1-2M/r)^-1 + r^2(dtheta^2 + sin(theta)^2 dphi^2)


i know about setting the signature in Setup.

i have tried the 'Coordinates' command, but when i give it X=[t,r,theta,phi] i always seem to get back



i am running maple 2016


many thanks,



Good morning everybody.

I have tried Explore to draw plots in an interactive way.

The function I want to draw (plot3d) is automatically constructed by a specific code, as well as the names of the parameters it depends on. These are of the form P||1, P||2, ...P||N (N is an integer determined during the construction)

... but I did not succeed !

After some investigations I was able to reduced the problem to the following one

N  := 2:
F  := add(P||k * x^k, k=0..N):
G := [seq(P||k=-1.0 .. 1.0, k=0..N)]:
Explore(plot(F, x=0..1), parameters=G)

The result is the classical imbedded window with a plot of -1-x_x^2 and three sliders below.
But as soon as I push anu of them the plot disappears and connot be recoverd.

But the following sequence seems to work as expected

N  := 2:
F  := add(P__k * x^k, k=0..N):
G := [seq(P__k=-1.0 .. 1.0, k=0..N)]:
Explore(plot(F, x=0..1), parameters=G)

Before changing my code, could you please confirm me that parameter names such that P||k are not correctly accounted for by Explore ?

Auxiliary question : more generally, are there points which I have to count carefully when I use the P||k construction ?

Thanks in advance


In a mechanical model, I would like to use the letter Psi. However, when I use it, i have a small issue with some index which disappear.

Here the code I put at the beginning of my worksheet to be able to use the Psi letter

constants:= ({constants} minus {Psi})[]:
`evalf/Psi`:= proc() end proc:
`evalf/constant/Psi`:= proc() end proc:

With the following code,


I obtain the following result:


The index with Psi has disappear.

However, if i use the code:


I obtain the following result:

There is no problem of index with PSI.

Do you have a idea why the index has disappeared ? How can I do to use the Psi letter with a index ?

PS: the code associated attached here:

Thank you for your help


I try to simplify a system of 6 trigonometric equations and then to extract the 3 first equations.

When I conduct my calculations, It seems that that I have some troubles with some index.

There is a term with "table" which is not evaluated.

Do you have ideas why the last equations in my code have a table inside and consequently can not be evaluated?

I attached my code

Thank you for your help.



Hi, I need help finding the index of a given element in a list?

Say I have A:=[2,4,6,8,10,12], I want something that can do something like this:




Thanks, and sorry if my questions are trivial but I'm (clearly) not great with maple.

Now say I had two lists:



How would I get maple to return the index of the first element in list B that matches an element in list A, and the index of said element in list A? 

So something (remotely) like:

                        B[5], A[7]

(So I'm not looking for the first case of A[i]=B[i]. I just want i, j where A[i]=B[j])

I wonder if there is any way to sort expressions like




how to sort  to

Dear Friends

In differential expressions(See Maple file) how to find coefficiets of dependent variable "u(x,t)" and "v(x,t)" and of their differentials ? There is command "dcoeffs(function)", but that work for single dependent variable only but in our case there are two dependent variables in consideration. There are other options like "indets", "specindex" but those do not work.



DepVars; -1; [u(x, t), v(x, t), r[1](t), r[2](t), s[1](t), s[2](t), p[1](t), p[2](t), alpha[1](x, t), beta[1](x, t), beta[2](x, t), delta[1](x, t), delta[2](x, t)]

[u(x, t), v(x, t), r[1](t), r[2](t), s[1](t), s[2](t), p[1](t), p[2](t), alpha[1](x, t), beta[1](x, t), beta[2](x, t), delta[1](x, t), delta[2](x, t)]


alias(u = u(x, t), v = v(x, t), r[1] = r[1](t), r[2] = r[2](t), s[1] = s[1](t), s[2] = s[2](t), p[1] = p[1](t), p[2] = p[2](t), alpha[1] = alpha[1](x, t), beta[1] = beta[1](x, t), beta[2] = beta[2](x, t), delta[1] = delta[1](x, t), delta[2] = delta[2](x, t))

u, v, r[1], r[2], s[1], s[2], p[1], p[2], alpha[1], beta[1], beta[2], delta[1], delta[2]


(diff(r[1], t))*(-s[1]*u*(diff(u, x))-p[1]*((diff(u, x))*v+u*(diff(v, x)))-alpha[1]*(diff(u, x))-beta[1]*u-delta[1])/r[1]+r[1]*(diff(alpha[1]*(diff(u, x))+beta[1]*u+delta[1], x, x))+(diff(s[1], t))*u*(diff(u, x))+s[1]*(alpha[1]*(diff(u, x))+beta[1]*u+delta[1])*(diff(u, x))+s[1]*u*(diff(alpha[1]*(diff(u, x))+beta[1]*u+delta[1], x))+(diff(p[1], t))*((diff(u, x))*v+u*(diff(v, x)))+p[1]*((diff(alpha[1]*(diff(u, x))+beta[1]*u+delta[1], x))*v+(diff(u, x))*(alpha[1]*(diff(v, x))+beta[2]*v+delta[2])+(alpha[1]*(diff(u, x))+beta[1]*u+delta[1])*(diff(v, x))+u*(diff(alpha[1]*(diff(v, x))+beta[2]*v+delta[2], x)))+(diff(alpha[1], t))*(diff(u, x))+alpha[1]*(diff(alpha[1]*(diff(u, x))+beta[1]*u+delta[1], x))+(diff(beta[1], t))*u+beta[1]*(alpha[1]*(diff(u, x))+beta[1]*u+delta[1])+diff(delta[1], t)

(diff(r[1], t))*(-s[1]*u*(diff(u, x))-p[1]*((diff(u, x))*v+u*(diff(v, x)))-alpha[1]*(diff(u, x))-beta[1]*u-delta[1])/r[1]+r[1]*((diff(diff(alpha[1], x), x))*(diff(u, x))+2*(diff(alpha[1], x))*(diff(diff(u, x), x))+alpha[1]*(diff(diff(diff(u, x), x), x))+(diff(diff(beta[1], x), x))*u+2*(diff(beta[1], x))*(diff(u, x))+beta[1]*(diff(diff(u, x), x))+diff(diff(delta[1], x), x))+(diff(s[1], t))*u*(diff(u, x))+s[1]*(alpha[1]*(diff(u, x))+beta[1]*u+delta[1])*(diff(u, x))+s[1]*u*((diff(alpha[1], x))*(diff(u, x))+alpha[1]*(diff(diff(u, x), x))+(diff(beta[1], x))*u+beta[1]*(diff(u, x))+diff(delta[1], x))+(diff(p[1], t))*((diff(u, x))*v+u*(diff(v, x)))+p[1]*(((diff(alpha[1], x))*(diff(u, x))+alpha[1]*(diff(diff(u, x), x))+(diff(beta[1], x))*u+beta[1]*(diff(u, x))+diff(delta[1], x))*v+(diff(u, x))*(alpha[1]*(diff(v, x))+beta[2]*v+delta[2])+(alpha[1]*(diff(u, x))+beta[1]*u+delta[1])*(diff(v, x))+u*((diff(alpha[1], x))*(diff(v, x))+alpha[1]*(diff(diff(v, x), x))+(diff(beta[2], x))*v+beta[2]*(diff(v, x))+diff(delta[2], x)))+(diff(alpha[1], t))*(diff(u, x))+alpha[1]*((diff(alpha[1], x))*(diff(u, x))+alpha[1]*(diff(diff(u, x), x))+(diff(beta[1], x))*u+beta[1]*(diff(u, x))+diff(delta[1], x))+(diff(beta[1], t))*u+beta[1]*(alpha[1]*(diff(u, x))+beta[1]*u+delta[1])+diff(delta[1], t)


In above differential expressions how to find coefficiets of dependent variable "u(x,t)" and "v(x,t)" and of their differentials ? There is command "dcoeffs(expr,u(x,t))", but that work for single dependent variable only but in our case there are two dependent variables in consideration. There are other options like "indets", "specindex" but those do not work.



The black point correction for xyY to sRGB was incorrect in my original post. It should be done the same ways as for xyY to aRGB which was correct. Hope nobody was inconvenienced. 


I would be curious if others have found a more elegant way to index through an Array to perform an operation on a set of vectors. I had to use the single quote to get the operation performed first and the index increment second.


Corrections to the original version of theis document;
• Make the scaling for a nonzero black point the same for all RGB color spaces.
• Clip negative RGB values to zero.
• Remove the redundant Array container from matrix multiplications.
Use map in place of the $ to apply a function to each element of an Array.

hi I am tying to create a matrix: 


for i from 1 to 5 do

for j from 1 to 5 do





But it doesn't create a matrix. As when I tried inverse operation it doesn't work. How can I create a matrix? Also can the index start from 0??


Hey there,

I've a numerical solved system of differential equations, which depend on one argument and one index. I can solve it, but when I try plot it I have this error: Error, (in plot) two lists or Vectors of numerical values expected.

Could anyone help me figure out what I'm doing wrong?


> restart;
> A := 115.1558549; B := .3050464658; n := 3; f0 := 0.5e-4;

> alpha := [0, 1, 2, 3, 4, 5, 6];

Theta := [3*Pi*(1/180), 6*Pi*(1/180), 9*Pi*(1/180), 12*Pi*(1/180), 15*Pi*(1/180), 18*Pi*(1/180), 21*Pi*(1/180), 24*Pi*(1/180), 27*Pi*(1/180), 30*Pi*(1/180), 33*Pi*(1/180), 36*Pi*(1/180), 39*Pi*(1/180), 42*Pi*(1/180), 45*Pi*(1/180), 48*Pi*(1/180), 51*Pi*(1/180), 54*Pi*(1/180), 57*Pi*(1/180), 60*Pi*(1/180)];

>G:= theta->A*sin(theta)*cos(2*arcsin((sin(theta)/n)))/((1+sin(theta)^2/B^2)*cos(arcsin(sin(theta)/n)));

>for j from 1 to 7 do
d1 := diff(Ir(z), z) = -sum(G(Theta[k])*Ir(z)*Is[k](z)/I0,k=1..20)-alpha[j]*Ir(z)-sum(f(Theta[k])*Ir(z),k=1..20):
d2 := diff(Is[1](z), z) = G(Theta[1])*Ir(z)*Is[1](z)/I0-alpha[j]*Is[1](z)+f(Theta[1])*Ir(z):
d3 := diff(Is[2](z), z) = G(Theta[2])*Ir(z)*Is[2](z)/I0-alpha[j]*Is[2](z)+f(Theta[2])*Ir(z):
d4 := diff(Is[3](z), z) = G(Theta[3])*Ir(z)*Is[3](z)/I0-alpha[j]*Is[3](z)+f(Theta[3])*Ir(z):
d5 := diff(Is[4](z), z) = G(Theta[4])*Ir(z)*Is[4](z)/I0-alpha[j]*Is[4](z)+f(Theta[4])*Ir(z):
d6 := diff(Is[5](z), z) = G(Theta[5])*Ir(z)*Is[5](z)/I0-alpha[j]*Is[5](z)+f(Theta[5])*Ir(z):
d7 := diff(Is[6](z), z) = G(Theta[6])*Ir(z)*Is[6](z)/I0-alpha[j]*Is[6](z)+f(Theta[6])*Ir(z):
d8 := diff(Is[7](z), z) = G(Theta[7])*Ir(z)*Is[7](z)/I0-alpha[j]*Is[7](z)+f(Theta[7])*Ir(z):
d9 := diff(Is[8](z), z) = G(Theta[8])*Ir(z)*Is[8](z)/I0-alpha[j]*Is[8](z)+f(Theta[8])*Ir(z):
d10 := diff(Is[9](z), z) = G(Theta[9])*Ir(z)*Is[9](z)/I0-alpha[j]*Is[9](z)+f(Theta[9])*Ir(z):
d11 := diff(Is[10](z), z) = G(Theta[10])*Ir(z)*Is[10](z)/I0-alpha[j]*Is[10](z)+f(Theta[10])*Ir(z):
d12 := diff(Is[11](z), z) = G(Theta[11])*Ir(z)*Is[11](z)/I0-alpha[j]*Is[11](z)+f(Theta[11])*Ir(z):
d13 := diff(Is[12](z), z) = G(Theta[12])*Ir(z)*Is[12](z)/I0-alpha[j]*Is[12](z)+f(Theta[12])*Ir(z):
d14 := diff(Is[13](z), z) = G(Theta[13])*Ir(z)*Is[13](z)/I0-alpha[j]*Is[13](z)+f(Theta[13])*Ir(z):
d15 := diff(Is[14](z), z) = G(Theta[14])*Ir(z)*Is[14](z)/I0-alpha[j]*Is[14](z)+f(Theta[14])*Ir(z):
d16 := diff(Is[15](z), z) = G(Theta[15])*Ir(z)*Is[15](z)/I0-alpha[j]*Is[15](z)+f(Theta[15])*Ir(z):
d17 := diff(Is[16](z), z) = G(Theta[16])*Ir(z)*Is[16](z)/I0-alpha[j]*Is[16](z)+f(Theta[16])*Ir(z):
d18 := diff(Is[17](z), z) = G(Theta[17])*Ir(z)*Is[17](z)/I0-alpha[j]*Is[17](z)+f(Theta[17])*Ir(z):
d19 := diff(Is[18](z), z) = G(Theta[18])*Ir(z)*Is[18](z)/I0-alpha[j]*Is[18](z)+f(Theta[18])*Ir(z):
d20 := diff(Is[19](z), z) = G(Theta[19])*Ir(z)*Is[19](z)/I0-alpha[j]*Is[19](z)+f(Theta[19])*Ir(z):
d21 := diff(Is[20](z), z) = G(Theta[20])*Ir(z)*Is[20](z)/I0-alpha[j]*Is[20](z)+f(Theta[20])*Ir(z):
dsys := {d1, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19, d2, d20, d21, d3, d4, d5, d6, d7, d8, d9}:
dSol[j] := dsolve({op(dsys), Ir(0) = 1, Is[1](0) = 0.1e-1, Is[2](0) = 0.1e-1, Is[3](0) = 0.1e-1, Is[4](0) = 0.1e-1, Is[5](0) = 0.1e-1, Is[6](0) = 0.1e-1, Is[7](0) = 0.1e-1, Is[8](0) = 0.1e-1, Is[9](0) = 0.1e-1, Is[10](0) = 0.1e-1, Is[11](0) = 0.1e-1, Is[12](0) = 0.1e-1, Is[13](0) = 0.1e-1, Is[14](0) = 0.1e-1, Is[15](0) = 0.1e-1, Is[16](0) = 0.1e-1, Is[17](0) = 0.1e-1, Is[18](0) = 0.1e-1, Is[19](0) = 0.1e-1, Is[20](0) = 0.1e-1}, [Ir(z), Is[1](z), Is[2](z), Is[3](z), Is[4](z), Is[5](z), Is[6](z), Is[7](z), Is[8](z), Is[9](z), Is[10](z), Is[11](z), Is[12](z), Is[13](z), Is[14](z), Is[15](z), Is[16](z), Is[17](z), Is[18](z), Is[19](z), Is[20](z)], numeric);
end do:

>for j from 1 to 7 do
for l from 1 to 20 do

Error, (in plot) two lists or Vectors of numerical values expected

1 2 3 Page 1 of 3