vv

14027 Reputation

20 Badges

10 years, 43 days

MaplePrimes Activity


These are replies submitted by vv

@Ian Jones 

You must have typos; it is not validated numerically.

@Carl Love 

I mean this:

restart;

N:=5*10^6:

f:=proc()
local k,S:=0.;
for k to N do S:=S+1/evalf(k) od:
end:

f(); #Digits=10, constant

16.00206064

(1)

evalf[10](evalf[30](f()));

16.00216424

(2)

evalf[30](f());evalf[10](%);

16.0021642352999040059818866772

 

16.00216424

(3)

restart;

N:=5*10^6:

evalf[10](add(1/evalf(k),k=1..N)); #Digits increased by add

16.00216423

(4)

 


 

Download digits.mw

@Carl Love 

But in "most" situations evalf[d1](e)  is enough because Digits is automatically increased by evalf if necessary.

1. The third argument of Cubes must be an m-dimensional list. So, use:
Cubes(3, 3, [a, b, c], h);

2. For an enumeration of N^m  see ?vectoint, ?inttovec

@_Maxim_ 

Nice analysis!

Have you used Maple for the convolution, or you did it by hand?

Cubes:=proc(m::posint,n::posint,a::list,h:=1) # for the cube [a, a+~h] in R^m
local k,u,T,C;
T:=combinat:-cartprod([[seq(k/n*h, k=0..n-1)] $ m ]):
C:=('T[nextvalue]()')$(n^m):
seq( [a+u, a+u+~h/n], u=[C])
end:

Cubes(2,2,[a,b],h);

This is probably because you like the symmetry.
But  [x=3,y=2], [x=2, y=10] etc, are also correct.

@Christian Wolinski 

@arjangash If you really have no problem about optimization, it should be obvious.
Here is a simpler example:

restart;
Z:=(a,b,g)->a+b+g:
constr:=(a,b,g) -> (a>=0,b>=0, a^2+b^2-2*a+1<=g):
Zmax:= g -> Optimization:-Maximize(Z(a,b,g), [constr(a,b,g)])[1]:
plot(Zmax, 0.1 .. 2.2);

 

@acer 

You are right, I simply forgot about having reported it, sorry! Should I delete the question?

In my opinion the problem is not to find workarounds (which are not complicated) but to understand where exactly is Maple's fault.

Maple can be used to compute the limit of the sequence

n -> sqrt(n) * (sin@@n)(1);

Can MMA compute it?

@Markiyan Hirnyk 

It would have been nice if MMA had given the simplified result sqrt(2)/4.
Probably it simply uses the fact that the sequence exp(I*n) is dense in the unit circle.

Maybe some day we will get something like:
f := sin(n)/(3 + cos(n)):
limsup[discrete](f,n)
    
sqrt(2)/4;

For the moment:
maximize(f, n=0..2*Pi);
    
 

 

 

Just a short remark.
If the sequence is given by a procedure f, then its limit is L iff
limit( f(floor(x)), x=infinity) = L.

This way, the assumption is not necessary.

Unfortunately this does not work because floor has a very poor integration in Maple [I don't know why].
A simple (and embarrassing) example is:

simplify( floor(x) ) assuming x>3,x<4;
    floor(x)

 

@Markiyan Hirnyk 

It is OK for your surface defined by x^2+y^2+z^2=1, x^2-z^2<=1
but not for Mariusz' which was the boundary of the body  x^2+y^2+z^2<=1, x^2-z^2<=1.
In the previous comment both situations were answered.
But indeed in Mathematica code I see an "<"; probably this means the exclusion of this part of the boundary [I do not know the MMA syntax for this].

@Mariusz Iwaniuk

 

restart;

SI1:=proc(f, simpledom::list(relation), X::list(name))
local rez:=NULL, r,z,k,r1,r2,  S,v;
v,S:=selectremove(hastype,simpledom,`=`);
if nops(S)<>2*nops(X)-2 then error "Domain not simple!" fi;
for k to nops(X)-1 do    r1,r2:=S[2*k-1..2*k][]; z:=subs(rhs(v[])=NULL,X)[k];
  if   rhs(r1)=z and lhs(r2)=z then rez:=rez, z=lhs(r1)..rhs(r2); #a<z,z<b
  elif lhs(r1)=z and rhs(r2)=z then rez:=rez, z=lhs(r2)..rhs(r1); #z<b,a<z
  else error "Strange order in a simple domain" fi
od;
VectorCalculus:-SurfaceInt(f, X=Surface(<eval(X,v)>,rez), inert);
end proc:

SI:=proc(f::algebraic, F::list(algebraic), X::list(name),sel::list(posint):=0)
description "F contains expressions supposed to be <=0; N contains the active surfaces";
local N,s, k,i,n:=nops(F), u,rez:=0;
if sel=0 then N:=[seq(1..n)] else N:=sel fi;
for k in N do
  s:=solve( [ seq( `if`(i=k, F[k]=0, F[i]<=0), i=1..n)],X);
  s:=select(u -> evalb(nops(select(hastype,u,`=`))=1), s);
  rez:=rez+add(SI1(f, u, X), u=s);
od;
rez
end:

SI(1, [x^2+y^2+z^2 - 1, 5*x^2-z^2 - 1], [x,y,z]):
value(%);
evalf(%);

((16/3)*I)*2^(1/2)*3^(1/2)*EllipticPi(1/3, (1/3)*3^(1/2)*5^(1/2))-((16/3)*I)*2^(1/2)*3^(1/2)*EllipticK((1/3)*3^(1/2)*5^(1/2))-((16/3)*I)*2^(1/2)*3^(1/2)*EllipticPi((1/5)*3^(1/2)*5^(1/2), 1/3, (1/3)*3^(1/2)*5^(1/2))+((16/3)*I)*2^(1/2)*3^(1/2)*EllipticF((1/5)*3^(1/2)*5^(1/2), (1/3)*3^(1/2)*5^(1/2))+2*(int(2*(1+25*x^2/(5*x^2-1))^(1/2)*(-6*x^2+2)^(1/2), x = -(1/3)*3^(1/2) .. -(1/5)*5^(1/2)))+2*(int(2*(1+25*x^2/(5*x^2-1))^(1/2)*(-6*x^2+2)^(1/2), x = (1/5)*5^(1/2) .. (1/3)*3^(1/2)))

 

11.14714156+0.*I

(1)

 

In the MMA's answer, it was wrongly considered only the part of the surface lying on the sphere, that is:

 

SI(1, [x^2+y^2+z^2 - 1, 5*x^2-z^2 - 1], [x,y,z], [1]):
value(%);
evalf(%);

((16/3)*I)*2^(1/2)*3^(1/2)*EllipticPi(1/3, (1/3)*3^(1/2)*5^(1/2))-((16/3)*I)*2^(1/2)*3^(1/2)*EllipticK((1/3)*3^(1/2)*5^(1/2))-((16/3)*I)*2^(1/2)*3^(1/2)*EllipticPi((1/5)*3^(1/2)*5^(1/2), 1/3, (1/3)*3^(1/2)*5^(1/2))+((16/3)*I)*2^(1/2)*3^(1/2)*EllipticF((1/5)*3^(1/2)*5^(1/2), (1/3)*3^(1/2)*5^(1/2))

 

6.500908863+0.*I

(2)

 


 

Download surface-int.mw

First 105 106 107 108 109 110 111 Last Page 107 of 177