vv

13922 Reputation

20 Badges

10 years, 9 days

MaplePrimes Activity


These are replies submitted by vv

@SIMBA 

Ordinary differential equations (ODEs)  are studied in most scientific faculties in universities. There are many textbooks. I will not recommend any of them because I do not know your background.
Maple has two main approaches to solve ODEs: symbolically  (exact) and numerically. Unfortunately exact solutions exist only for very few equations/systems.
The main Maple procedure for solving ODEs is dsolve. Read as much as you can in the help system. Be aware that the quantity of information is high, but there are also many examples.

About your last question. ds is a numeric procedure returned by dsolve. For example,

ds(3.0);
returns
[r = 3., y(r) = 1.91101863645892, diff(y(r), r) = 1.03474512991423]

i.e. it gives the numerical value of the dependent variable and its derivative at r = 3.0.

 

 

 

@Carl Love 

Actually, when I said "the result is correct" I meant "I cannot find a counterexample". You changed everywhere ln(exp(u)) with u; this is not always true.

Edit. I found one:

f:= z-> ln(exp(10/z - 10/sqrt(z^2))):

@Carl Love 

OK, now the result is correct but it's very far from your usual style. Instead of a direct and simple formula, you prefer Change and then manipulate the result. You could do this as well:

r:= t-> exp(I*t):
call_anything_such_as_Change():
subs(%=Int(f(r(t))*r(t), t=-%Pi.. %Pi)*I, %);

 

@Carl Love 

The simplify/symbolic may affect f because it could contain ln(exp(...)).
[A tested counterexample is f:= z-> ln(exp(1/z - 1/sqrt(z^2))) ]
You try do obtain: Int(f(exp(t*I))*exp(t*I), t = -%Pi .. %Pi)*I
Why not use it directly?

@Carl Love 

I don't find a good idea to use Change in this case. Trying to repair with simplify/symbolic has no chance.
For example, f := z -> 1/z - 1/sqrt(z^2)

@Carl Love 

Your result will be 0 for any f.

 

@Kitonum 

The other solution is also traditional: integration by parts.

@Carl Love 

Probably simplify just gives 0 for Sum(0,...). But it's nice to see the huge amount of work Maple does to simplify (using the assumptions on n): use 
infolevel[all]:=5

@mmcdara 

If the variables are already assigned, you will have to change a bit the code:

restart;
vars   := [a, b__c, t[1]];
a:=1234;
assign(eval(vars,1) =~ [$1..3]);

 

So, you just want the residue at z=0 of the function

 

f := z -> exp(-1/z)/((z - 1)*(z + 1)^2);

proc (z) options operator, arrow; exp(-1/z)/((z-1)*(z+1)^2) end proc

(1)

(Actually the series can be computed with the same method).

exp(-1/z) = Sum(a(n)/z^n, n=0..infinity);

exp(-1/z) = Sum(a(n)/z^n, n = 0 .. infinity)

(2)

a := n -> (-1)^n/n!

proc (n) options operator, arrow; (-1)^n/factorial(n) end proc

(3)

1/((z - 1)*(z + 1)^2) = Sum(b(n)*z^n, n=0..infinity);

1/((z-1)*(z+1)^2) = Sum(b(n)*z^n, n = 0 .. infinity)

(4)

convert(lhs(%),FPS);

Sum((-1/4-(3/4)*(-1)^k-(1/2)*(-1)^k*k)*z^k, k = 0 .. infinity)

(5)

b := unapply(op([1,1],%),k)

proc (k) options operator, arrow; -1/4-(3/4)*(-1)^k-(1/2)*(-1)^k*k end proc

(6)

The residue:

'residue'(f(z), z=0) = sum(a(n+1)*b(n), n=0..infinity);

residue(exp(-1/z)/((z-1)*(z+1)^2), z = 0) = (1/4)*(exp(1)-1)/exp(1)+(3/4)*exp(1)-1/4

(7)

evalf(rhs(%))

1.946741511

(8)

# Check:

evalf(Int(f(exp(I*t)/2)*exp(I*t)/2/(2*Pi),t=0..2*Pi));

1.946741511+0.5457130825e-14*I

(9)

 

 

 

 

 

 

@acer 

A useful info!

It works in Windows 64 bit if  ':-LIB'="libmkl_rt.so"  is replaced by ':-LIB'="mkl_rt"

 

@ajfriedlan 

The answer to your question is simple, given by some elementary numerical analysis principles. Your numerical expressions have very wide ranges (10^(-20) .. 10^40). To compensate the roundoff errors you will need very high precision. But normally, your parameters should also have good precision, otherwise the result will be mainly numerical noise. 

You should normalize/scale the expressions and try to simplify symbolically first.

@Ugurgozutok 

The procedure works for several variables, we just need to choose the main one (x); the degree n in x must be even.
Note however that if the leading coefficient wrt x depends on other variables, then the result will be generally a rational function rather than a polynomial. This is natural, for example, x^2*y^2 + x^2 + y^2 obviously cannot be expressed as (a(y)*x+b(y))^2 + c(y)*x+d(y), a,...,d being polynomials.

 

@saketh 

It is of course possible (and easy) to find the polynomial solution directly, but I doubt about a better timing (the number of terms in the polynomial will be huge).

Does the program work in a console? If yes, then make a .bat (.cmd) file and call this with ssystem.

First 48 49 50 51 52 53 54 Last Page 50 of 176