nm

8769 Reputation

19 Badges

11 years, 313 days

MaplePrimes Activity


These are questions asked by nm

I was looking at a question on another forum, and tried in Maple also, and Maple also have a problem with this integral. Here is a simple version. The problem is that int() gives different numerical answer from evalf(Int). Maple can't solve this analytically, so values have to be used for the integrand before calling int()

restart;
eq2:=(a/(a + c*z))^L*exp(-z)/sqrt(z);

L:=2:
a:=10^(0.1):
b:=10^(0.1):
c:=0.01*a:
int(eq2,z=0..infinity);   # 177.245
evalf(Int(eq2,z=0..infinity));   # 1.7551


I think the 1.7551 is the correct value. My question is: Why did maple give wrong answer from int()? Is it analytical reason, or purely numerical?

Maple 17.02, windows 7.

I was answering this question on another platform, and wanted to compare with Maple. On Matlab, this is the result

format long
916.536 + 3.3

      9.198359999999999e+02

When using Maple I get

evalhf(916.536 + 3.3);
919.836000000000013

I am on a 64 bit intel PC, and the OS is windows 7, 64 bit, and I my Maple is 64 bit version also.

Using Mathematica on my PC, which is 64 bit also, I get same as Matlab:

FullForm[916.536 + 3.3]
919.8359999999999`

and help on evalhf says:
"A call to evalhf evaluates an expression to a numerical value using the floating-point
hardware of the underlying system. The evaluation is done in double precision."

So, the question is, why I am not gettting the same result as those others shown above?
May be it has to do with this:

"The evalhf function converts all its arguments to hardware floats, computes the answer
and converts the answer to a Maple float result."

?

Is there a way to tell Maple to expand a complex function in Laurent series around a point, and have it show the series expansion that are valid for different regions? Either by the user telling it which region to use, or it automatically shows all regions?

For example, given

f(z):= z-> (3*z+1)/((z-1)*(z+1))

This has a pole at z=1 and at z=-1. I want to expand this around z=1. Hence it will have Laurent series in the annulus between z=1 and z=-1, but there is also region outside z=-1 that goes to infinity. So there are two regions.

When I do

with(numapprox);
laurent((3*z+1)/(z^2-1),z=1);

Maple gives the correct Laurent series for the region in the annulus |Z-1|<2, i.e. the first region (the one inside the two singularities).

But I want to see the expansion for different region, for |z-1|>2 (to check if I did it ok). This is what I get btw

3/(z-1) - 2/(z-1)^2 + 4/(z-1)^3 - 8/(z-1)^4 +.... 

Do I need a special package for this?

Fyi, I found this question here but it does not really answer my question. I want to speficy both the point of expansion, and also the region itself.

 

 

This is just a question on terminology. The name "combine" implies pulling terms together. Yet, when applied to something like sin(x)^2 it has the effect of expanding it:

r:=sin(x)^2;
combine(r);

 

Which seems counter-intutive to me. I tried first expand(r) but that did not expand it.

Fyi, in Mathematica the function to do the above is called

Sin[x]^2;
TrigReduce[%]

    1/2 (1 - Cos[2 x])

As Mathematica does not have a Combine[] function.

So, I am just wondering about the naming, that is all. I would never have thought first that a command called combine() will expand sin(x)^2.

 

 

I installed the shared library from http://www.maplesoft.com/applications/view.aspx?SID=1691

and it seems to have loaded ok. Now I can do

with(share);
See ?share and ?share,contents for information about the share library
                               []

When browsing help, I noticed it has a function called IntSolve() for solving linear integral equations. Maple itself has function called intsolve() which is build-in.

Since Maple is case sensitive, I assumed when I type IntSolve() then it will find the shared version of IntSolve() automatically and not call Maple's own intsolve. And that is indeed what happed. I typed an example from the help on share as you can see


 

eq1 := p(x)-1/2*Int(x*y*p(y),y=0....1)=5/6*x;
IntSolve(eq1,p(x));
                             7775  
                             ---- x
                             7776  
intsolve(eq1,p(x));
                            p(x) = x

Ok, So one of them is a little wrong :).

But suppose I want to explicitly add the share library there, in the call, as prefix, so that when I look at the code later, I can see which function I am calling. How should one do this? I tried

share:-IntSolve(eq1,p(x));
    Error, `share` does not evaluate to a module
share[IntSolve](eq1,p(x));

 

The strange thing, is that this worked

IntSolve[IntSolve](eq1,p(x));

Basically, all what I want is to way to add the share name to all the calls somewhere, so I know, when looking at the code, which call is from which library or package.

Any idea how to do this? So to avoid any possible name clash since the share library seems large.

I am using Maple 17.02

First 161 162 163 164 165 166 167 Page 163 of 167