Kitonum

21530 Reputation

26 Badges

17 years, 84 days

MaplePrimes Activity


These are answers submitted by Kitonum

You forgot to put the assumption that all the unknowns are real numbers. System is not very complicated and can be solved by  solve  command:

restart;

R1 := Matrix([[1, 0], [0, 1]]):

R2 := Matrix([[1/2, (1/2)*sqrt(3)], [-(1/2)*sqrt(3), 1/2]]):

R3 := Matrix([[-1/2, (1/2)*sqrt(3)], [-(1/2)*sqrt(3), -1/2]]):

R4 := Matrix([[-1, 0], [0, -1]]):

R5 := Matrix([[-1/2, -(1/2)*sqrt(3)], [(1/2)*sqrt(3), -1/2]]):

d1 := Vector([0, 5.4]):

d2 := Vector([6.4, 4.539]):

d3 := Vector([11, 4.078]):

d4 := Vector([15.5, 2.079]):

d5 := Vector([19, 1.039]):

a := Vector([ax, ay]):

A1 := R1.a+d1:

A2 := R2.a+d2:

A3 := R3.a+d3:

A4 := R4.a+d4:

A5 := R5.a+d5:

OO := Vector([Ox, Oy]):

assume(ax::realcons, ay::realcons, Ox::realcons, Oy::realcons):

DA1 := A2.A2-A1.A1-2*(A2-A1).OO:

DA2 := A3.A3-A1.A1-2*(A3-A1).OO:

DA3 := A4.A4-A1.A1-2*(A4-A1).OO:

DA4 := A5.A5-A1.A1-2*(A5-A1).OO:

sys := simplify({DA1, DA2, DA3, DA4});

RealDomain[solve](%);

If the procedure is defined using the if-condition, then  the plotting without quotes causes premature calculation.

Compare:

filter(x);

                Error, (in filter) cannot determine if this expression is true or false: x < 10

You can do without the quotes in 3 ways:

1) Using  `if` command:

filter:=x->`if`(x<10, 1-x/10, 0);
plot(filter(x), x=0..20); 

 

2) Using  piecewise  command:

filter:=x->piecewise(x<10, 1-x/10, 0);
plot(filter(x), x=0..20);

 

3) Plotting without  :

filter:=x->if x<10 then 1-x/10 else 0 fi;
plot(filter, 0..20);

 

 

Multiply both sides of the inequality by x + 1, considering the 2 cases:

solve({x+1<a, x+1>0}, x);

solve({x+1>a, x+1<0}, x);

 

 

So the answer is: 1) If  a < 0  then  a - 1 < x < -1 ;

                           2) If  a = 0  then  no solutions;

                           3) If  a > 0  then  -1 < x < a - 1 ;

 

Addition.  The same solutions we can get directly:

solve(a/(x+1) > 1, [a, x]);

           [[a < 0, x < -1, a-1 < x], [0 < a, x < a-1, -1 < x]]

A := Matrix(2, 2, {(1, 1) = 1, (1, 2) = 2, (2, 1) = -1, (2, 2) = 2});

B := Matrix(2, 2, {(1, 1) = 1, (1, 2) = 0, (2, 1) = -2, (2, 2) = 3});

C := Matrix(2);

M:=4:

P:=Matrix([seq([C$k,A,B$M-1-k],k=0..M-1)]);

 

 

L := [sin(x), sin(x)-x+x^2, cos(x)-sin(x)]:

X := [seq(-Pi+(1/16)*Pi*k, k = 1 .. 31)]:

Y := map2(eval, L, map(t->x = t, X)):

P := [seq(zip(`[]`, X, [seq(Y[i, j], i = 1 .. 31)]), j = 1 .. 3)]:

A := plot(L, x = -Pi .. Pi, color = [red, blue, green], legend = L):

B := plot(P, x = -Pi .. Pi, color = [red, blue, green], style = point, symbol = solidcircle, symbolsize = 10):

plots[display](A, B, view = [-Pi .. Pi, -2 .. 4], scaling = constrained);

 

 

First you have to specify the values of the constants  _C1  and  _C2 .

Example:

y(t) = _C1*exp(-1.*t)*sin(.57736*t)+_C2*exp(-1.*t)*cos(.57736*t):

assign(%);

_C1, _C2 := 2, 1:

plot(y(t), t=Pi..2*Pi);

Equality of matrices and arrays is tested by the command  LinearAlgebra[Equal] :

c := Array([1, 2, 3]):

d := Array([1, 2, 3]):

LinearAlgebra[Equal](c, d);

                true

Such elements may be multiple.

Example:

L:=[1.2, 0.25, 5.6, 7.2, 0.5, -0.25, -4, 6]:

L1:=map(abs, L);

a:=min(L1);

ListTools[SearchAll](a, L1);

 

 

If  M  is the number of the rows, the last number in the first column   -1/(2*M*(M-2)  is not in accord with the first numbers in the odd-numbered rows. So I think that the number   in the denominator is superfluous. If this 2 removed, then we obtain the solution:

S:=proc(k::{symbol,realcons}, N::{odd,positive})

``(sqrt(2)/2^k)*``(Matrix(N, {seq((m,1)=`if`(m::even,0,-1/m/(m-2)), m=1..N)}));

end proc:

 

Example:

S(k, 7);

 

 

With Maple it will be  shorter to use  maximize  command:

restart:

h:= r-> 2*sqrt(100-r^2):

V:= r-> Pi*r^2*h(r):

maximize(V(r), r=0..10, location);

assign(op(%[2])[1]);

radius=r, height=h(r); 

 

 

As regards the notion of equivalence of two matrices, then look here . 

Two matrices are equivalent if and only if they have the same size and the same rank. So the code be very simple:

is(LinearAlgebra[Rank](A) = LinearAlgebra[Rank](B) and op(A)[1 .. 2] = op(B)[1 .. 2]);

 

Edited.

I did not find errors in the generated matrix. This matrix depends on the list  w . Maybe you mean the following order of unknowns:

w := [seq(seq(u[i,j],j=1..N),i=1..N)];

w := [u[1, 1], u[1, 2], u[1, 3], u[1, 4], u[2, 1], u[2, 2], u[2, 3], u[2, 4], u[3, 1], u[3, 2], u[3, 3], u[3, 4], u[4, 1], u[4, 2], u[4, 3], u[4, 4]]

Maybe you mean the diagonal matrix of n blocks?

Example:

A:=Matrix(3, [1,2,3,2,1,3,3,2,1]);

LinearAlgebra[DiagonalMatrix]([A $ 3]);

 

 

remove(has, [x+p*y, x+y, y+z], p);

                     [x+y, y+z]

restart;

solve(eval({z = x^2+2*y^2, z = -2*x^2-y^2+3, -2*x^2-y^2+3 = x^2+2*y^2}, x = t), {y, z});

allvalues(%);

assign(%[1], x = t);

4*(int(sqrt((diff(x, t))^2+(diff(y, t))^2+(diff(z, t))^2), t = 0 .. 1));

evalf(%);

 

 

First 228 229 230 231 232 233 234 Last Page 230 of 290