nm

4376 Reputation

17 Badges

8 years, 102 days

MaplePrimes Activity


These are answers submitted by nm

I know how to obtain such a procedure as a list

if you allready have the number in a list, then I think it will simpler to let Maple then do the conversion as follows

convert(my_list,Array)

Where my_list is the list you said you allready obtained. 

 

restart;
ode:=diff(y(x),x)+k*piecewise(y(x)>=0,y(x),y(x)<0,0) =sin(x);
dsolve(ode)

Can't solve it analytically. You can solve this nuemrically only

 

restart;
k:=1;
ode:=diff(y(x),x)+k*piecewise(y(x)>=0,y(x),y(x)<0,0) =sin(x);
sol:=dsolve([ode,y(0)=1],numeric)

Maple used to have many of these cases, but it got better over years handling them.

A trick to bypass this issue, is to delay the substitution of the actual function until after you obtained the series solution. As follows.

Using a generic f(x,y) first, then this function is replaced by the actual value of the function after the series solution is obtained. This makes life much easier for Maple pdsolve.
 

 

restart;

interface(version);

`Standard Worksheet Interface, Maple 2020.1, Windows 10, July 30 2020 Build ID 1482634`

pde := diff(u(x,y,t),t,t) = diff(u(x,y,t),x,x) + diff(u(x,y,t),y,y);
bc := u(x,0,t)=0, u(x,1,t)=0, u(0,y,t)=0, u(1,y,t)=0;
ic := u(x,y,0) =f(x,y),  D[3](u)(x,y,0)=0;
sol := pdsolve({pde, bc, ic});
my_actual_function :=x*y*sin(Pi*x)*sin(Pi*y);
sol:=eval(sol, [infinity=4,f(x,y)=my_actual_function]);

diff(diff(u(x, y, t), t), t) = diff(diff(u(x, y, t), x), x)+diff(diff(u(x, y, t), y), y)

u(x, 0, t) = 0, u(x, 1, t) = 0, u(0, y, t) = 0, u(1, y, t) = 0

u(x, y, 0) = f(x, y), (D[3](u))(x, y, 0) = 0

u(x, y, t) = Sum(Sum(4*sin(n*Pi*x)*sin(n1*Pi*y)*cos(Pi*(n^2+n1^2)^(1/2)*t)*(Int(sin(n1*Pi*y)*(Int(sin(n*Pi*x)*f(x, y), x = 0 .. 1, AllSolutions)), y = 0 .. 1, AllSolutions)), n = 1 .. infinity), n1 = 1 .. infinity)

x*y*sin(Pi*x)*sin(Pi*y)

u(x, y, t) = Sum(Sum(4*sin(n*Pi*x)*sin(n1*Pi*y)*cos(Pi*(n^2+n1^2)^(1/2)*t)*(Int(sin(n1*Pi*y)*(Int(sin(n*Pi*x)*x*y*sin(Pi*x)*sin(Pi*y), x = 0 .. 1, AllSolutions)), y = 0 .. 1, AllSolutions)), n = 1 .. 4), n1 = 1 .. 4)

#now it works        
value(sol)

u(x, y, t) = (1/900)*(225*Pi^2*sin(Pi*x)*sin(Pi*y)*cos(Pi*2^(1/2)*t)-1600*sin(Pi*y)*cos(5^(1/2)*Pi*t)*sin(Pi*x)*cos(Pi*x)-512*sin(Pi*y)*cos(17^(1/2)*Pi*t)*sin(Pi*x)*cos(Pi*x)^3+256*sin(Pi*y)*cos(17^(1/2)*Pi*t)*sin(Pi*x)*cos(Pi*x))/Pi^2-(8/9)*sin(Pi*x)*sin(2*Pi*y)*cos(5^(1/2)*Pi*t)/Pi^2+(256/81)*sin(2*Pi*x)*sin(2*Pi*y)*cos(Pi*8^(1/2)*t)/Pi^4+(512/2025)*sin(4*Pi*x)*sin(2*Pi*y)*cos(Pi*20^(1/2)*t)/Pi^4-(16/225)*sin(Pi*x)*sin(4*Pi*y)*cos(17^(1/2)*Pi*t)/Pi^2+(512/2025)*sin(2*Pi*x)*sin(4*Pi*y)*cos(Pi*20^(1/2)*t)/Pi^4+(1024/50625)*sin(4*Pi*x)*sin(4*Pi*y)*cos(Pi*32^(1/2)*t)/Pi^4

 


 

Download pdsolve.mw

the computer cannot solve it, 

Well, Maple 2020.1 solves it. I am not sure what solution are you expecting. This is highly non-linear ode and Maple gives the best analytical solution one can hope for

restart;
ode:=2*diff(a(t), t$2)*a(t)^3 - 3*diff(a(t), t)^4 + diff(a(t), t)^2*a(t)^2=0;
dsolve(ode)

 

Looking at Wikipeida, it looks like you used different formula. The formula with the origin at center is

You wrote

Where the eccentricity you used is 0.25.

Fixing this, and increasing e, you get ellipse.

e:=0.25; b:=1;
p1:=plot(b/sqrt(1- (e*cos(theta))^2), theta = 0 .. 2*Pi, coords = polar, scaling = constrained,color=red):
e:=0.75;
p2:=plot(b/sqrt(1- (e*cos(theta))^2), theta = 0 .. 2*Pi, coords = polar, scaling = constrained,color=blue):

plots:-display([p1,p2])

may be

restart;
expr:=f(g(1),2,3,4,5,6):
type(expr,f(g(anything), anything$nops([op(2..,expr)])))

      true

expr:=f(g(1),2,3,4,5,6,x,h(y)):
type(expr,f(g(anything), anything$nops([op(2..,expr)])))

    true

Try this. Need to use := and not = for assignment. And why write 1.  instead of just 1 ? This is not Matlab. If you want real numbers, you could always convert the final answer to float, and it is more accurate this way.

 

restart;

H := proc(n::integer)::real; 
   local s, i; 
   s := 0; 
   for i by 2 to n do 
       if i <= n - 1 then 
          s := s + 1/(i*(i + 1)); 
       else 
          s := s + 1/i; 
       end if; 
   end do; 
   return s;
end proc;

A := proc(n::integer, T::procedure)::real; 
       local d1, d2, s; 
       d1 := T(n + 1) - T(n); 
       d2 := T(n + 2) - T(n); 
       s := T(n + 1) - d1*d2/(d2 - d1); 
       return s; 
end proc;

I have not used spacecurve before in Maple, but looking at help, I think you need to do this.

restart;
f:=(x,y)->2*x^2+3*y^2-x*y-6;
subs([x=1,y=1],diff(f(x,y),x));
subs([x=1,y=1],diff(f(x,y),y));
p1:=plot3d(f(x,y),style=patchcontour):
p2:=plots:-spacecurve([x,1,f(x,1)],x=-10..10):
p3:=plots:-spacecurve([1,y,f(1,y)],y=-10..10):
plots:-display([p1,p2,p3])