vv

14132 Reputation

20 Badges

10 years, 250 days

MaplePrimes Activity


These are questions asked by vv

Here are two inocent Vectors.

V1 := Vector[row]([`+`, 1, 2]);

_rtable[18446744074366295326]

(1)

V2 := Vector[row]([1, `+`, 2]);

_rtable[18446744074366288110]

(2)

lprint(V1);

Vector[row](3, {1 = `+`, 2 = 1, 3 = 2}, datatype = anything, storage = rectangular, order = Fortran_order, shape = [])

 

 

The questions:

 

1.  Try to guess the Maple's answer for:

 

V1, V2;

 

2. Try to explain.

 


Download v1v2.mw

evalf(Int(x*(1-2*x^(3/10))^(10./3),x=0..1));  # Crashes Maple

Note that:

int(x*(1-2*x^(3/10))^(10./3),x=0..1);
int(x*(1-2*x^(3/10))^(10/3),x=0..1);

are OK.

(Windows 7, Maple 2017.3, 64 bit)

A fact that seems to be not documented. Probably it should be obvious.

 

Digits := d0
evalf[d](expr);

 

The toplevel float sub-expressions in expr  are computed with Digits=d0 but in procedures Digits is set to d.
Notice that the actual float parameters of the toplevel procedures are evalf-ed with Digits=d0.

 

restart;

g:=proc() convert(1/3., string) end:
h:=proc() 1/3. end:

Digits:=3;
evalf[10]([
  1/3. = h(),
  convert(1/3.,string) = g(),  
  fsolve(3*x=1) = add([1/3]),
  fsolve(x/3=1/9.) # 1/9. being at top level is evalf-ed with Digits=3
])

3

 

[.333 = .3333333333, ".333" = ".3333333333", .3333333333 = .3333333333, .3330000000]

(1)

 

k:=proc(x) convert(x,string) end:

kernelopts(floatPi);

true

(2)

4.+Pi;

7.14

(3)

evalf(k(1/3.+Pi));
# floatPi seems to be ignored inside actual parameters

".333+Pi"

(4)

evalf(k(4+evalf(Pi)));

"7.14"

(5)

evalf(k(4+Pi));
# 4 not being float (or "infected" by a float) is not evalf-ed

"4+Pi"

(6)

 

### (this is documented)

`evalf/h` := proc() 7.777 end:

evalf(h(1/3));

.333

(7)

evalf('h'(1/3));

7.777

(8)

 

 

Download digits.mw

(edited)

restart;
unames();  # first call ok
unames();  # second call


Error, invalid input: Typeset:-Kernel expects an equation for keyword parameter numericformatting

Error, unexpected result from Typesetting

 

RootOf has the option index=real[i]  for the i-th real root:

evalf([seq(RootOf(x*(x^2-1)*(x^2-4)+1/100, x, index=real[i]), i=1..5)]);
     [-2.000416306, -0.9983310082, -0.002500019532, 1.001664362, 1.999582971]

This option does not seem to be documented. Why? Or, is it?

 

First 7 8 9 10 11 12 13 Page 9 of 14