Kitonum

20084 Reputation

26 Badges

17 years, 23 days

MaplePrimes Activity


These are answers submitted by Kitonum

In the Maple there is no need to write code to calculate the Legendre polynomials. This is done automatically in the package orthopoly. They are different from yours only leading coefficients.

Example of calculation of the first 10 polynomials:

with(orthopoly):

for k from 0 to 9 do

sort(P(k,x)/lcoeff(P(k,x)));

od;

Different variant is to use surd command.

Compare:

surd(-8,3);  simplify((-8)^(1/3));

-2

1+sqrt(3)*I

 

solve(surd(x+24,3)+sqrt(12-x) = 6);

-88, -24, 3

simplify(algsubs(1-sin(x)^2=cos(x)^2,cos(x)^2+cos(4*x) + cos(x)^4 + sin(x)^4 + cos(x)^6 + sin(x)^6), {expand(cos(2*x))=t});

This example , of course, can be easily solved by hand, but if you deal with Maple, you can write:

simplify(expand(cos(x)^2+cos(4*x)), {expand(cos(2*x))=cos(2*x)});

The region must be defined in terms of Cartesian coordinates, where x=Re(z) , y=Im(z) .

An example of building the region  {|z|>=1, |z|<=2, Pi/4<=Arg(z)<=5*Pi/4} :

 

plots[implicitplot]((x^2+y^2-4)*(x^2+y^2-1)<=0, x = -3..3, y = x..3, coloring=[blue, white], filledregions = true,numpoints = 10000);

You have two basic elements g and g1. All the rest are obtained from them by  translate command.

g := plottools[curve]([seq([cos(2*Pi*i*(1/3)), sin(2*Pi*i*(1/3))], i = 0 .. 3)], color = brown, thickness = 5):

g1 := plottools[rotate](g, (1/3)*Pi, [cos(2*Pi*(1/3)), sin(2*Pi*(1/3))]):

plots[display](g, g1, scaling = constrained);

 

Different variant:

g := plottools[curve]([seq([cos(Pi/2+2*Pi*i*(1/3)), sin(Pi/2+2*Pi*i*(1/3))], i = 0 .. 3)], color = brown, thickness = 5):

g1 := plottools[rotate](g, (1/3)*Pi, [0, 1]):

plots[display](g, g1, scaling = constrained);

The procedure Hexlat builds a hexagonal lattice consisting of regular hexagons. Formal arguments: the first two numbers (m and nspecify the size of the lattice, the list L specifies the color of the borders and interior, the last number t specifies the thickness of the borders.

Code of the procedure:

Hexlat:=proc(m, n, L, t)

local g,g1,p,p1,A,A1,B,B1,C,C1;

g:=plottools[curve]([seq([cos(Pi*i/3),sin(Pi*i/3)],i=0..6)],color=L[1],thickness=t);

g1:=plottools[translate](g,3/2,-sqrt(3)/2);

p:=plottools[polygon]([seq([cos(Pi*i/3),sin(Pi*i/3)],i=1..6)],color=L[2]);

p1:=plottools[translate](p,3/2,-sqrt(3)/2);

A:=seq(plottools[translate](g,0,sqrt(3)*k),k=0..m-1);

A1:=seq(plottools[translate](g1,0,sqrt(3)*k),k=0..m-1);

B:=seq(plottools[translate](p,0,sqrt(3)*k),k=0..m-1);

B1:=seq(plottools[translate](p1,0,sqrt(3)*k),k=0..m-1);

C:=plots[display](A,B,A1,B1,scaling=constrained);

C1:=plots[display](A,B,scaling=constrained);

if is(n,even) then print(plots[display](seq(plottools[translate](C,3*k,0),k=0..(n-2)/2),scaling=constrained,axes=none)) fi;

if is(n,odd) then plots[display](seq(plottools[translate](C,3*k,0),k=0..(n-3)/2), plottools[translate](C1,3*(n-1)/2,0),scaling=constrained,axes=none) fi;

end proc:

 

An example:

Hexlat(7,11,[brown,yellow],5);

You need at each step of the loop for all new objects to assign new names, , like this:

restart:

k := 0:

ode := diff(U(t), t) = -((0.01/365)+((0.01/365)*U(t)))*U(t):

ic[0] := U(365*k) = 1000:

sol[0] := dsolve({ic[0], ode}, U(t), numeric):

sigma := 1.5:                            

for k to 10 do

  tk:=365*k:  

  V := rhs(sol[k-1](tk)[2]):

  ic[k] := U(tk) = sigma*V:

  sol[k] := dsolve({ic[k], ode}, U(t), numeric):

end do:

Plotting the first five decisions, from the points corresponding to the initial conditions:

A:=seq(plots[odeplot](sol[i],[t,U(t)],365*i..2000,thickness=2,color=[red,blue,green,brown,black][i+1]),i=0..4):

plots[display](A);

Your problem 3 can be easily solved if we use the geometric properties of the graph of a cubic polynomial.

Code of solution:

f:=x->x^3 -3*m*x^2 +3*(m^2 - 1)*x -m^2 +1:

S:=[solve(D(f)(x)=0, x)]:

f1:=%[1]: f2:=%[2]:

op(simplify([solve({f(0)<0, min(S)>0, f(min(S))>0, f(max(S))<0})]));

{m<1+sqrt(2), sqrt(3)<m}

 

The idea of ​​the solution is clearly seen from the figure:

 

 

Due to the singularity at the origin  the decision for x>0 can not be extended uniquely to the left of 0. So if you want to get the suitable solution, then you need to "glue" it by two solutions: for x <0 and for x> 0:

eq:=x*diff(y(x),x)=2*y(x):

ini1:=[y(-1)=2]:  ini2:= [y(1)=2]:

A:=DEtools[DEplot](eq,y(x),x=-3..0,y=-1..5,[ini1]):

B:=DEtools[DEplot](eq,y(x),x=0..3,y=-1..5,[ini2]):

plots[display](A,B);

minimize(3*x^2+2*m*x+2*m^2-3*m-6, 1<= x, m=-infinity..infinity);

-25/8

See an example of the cyclic program, which solves the differential equation by the simplest variant of Euler's method. For comparison, on the same plot displayed the resulting solution and the solution by dsolve command.

Eq:=diff(x(t),t)=x(t)^2+t^2: inc:=x(0)=0:

L:=[[0,0]]:

for i to 10 do

a:=L[nops(L)]: L:=[op(L), [i/10, a[2]+0.1*subs(x(t)=a[2],t=(i-1)/10,rhs(Eq))]]:

od:

evalf[3](L);

M:=rhs(dsolve({diff(x(t),t)=x(t)^2+t^2, x(0)=0})):

plot([L,M], t=0..1, color=[red,blue], thickness=2);

Ax:=t->cos(5*t): Ay:=t->0: Bx:=t->-cos(5*t)/2: By:=t->3*cos(5*t)/2:

S:=seq(plots[arrow]([Ax(i*Pi/72),Ay(i*Pi/72)],color=blue),i=0..72):

T:=seq(plots[arrow]([Bx(i*Pi/72),By(i*Pi/72)],color=green),i=0..72):

U:=seq(plots[display]([S[i],T[i]]),i=1..73):

plots[display](U,view=[-2..2,-2..2],insequence=true);

You must assign  z  as a function, such as in an example

restart:

dsolve({diff(z(t),t) = 2*t-1, z(0) = 1});

z:= unapply(rhs(%), t);  

z(60);

a:= 1: b:= 1/sqrt(3):

for n to 2010 do

c:= simplify((a + b)/(1-a*b)):  a:=b:  b:=c:

od:

c;

First 273 274 275 276 277 278 279 Page 275 of 280