Preben Alsholm

MaplePrimes Activity


These are replies submitted by Preben Alsholm

I think you need more than 5 terms due to the sine term in the series definition. 10 terms seems more like it.

JT1:= 2*q^(1/4)*Sum((-1)^n*q^(n*(n+1))*sin((2*n+1)*z),n=0..infinity);
evalc(abs(sin((2*n+1)*Pi*I*(a+b*I))));
simplify(%);
T:=(1/10)^(n*(n+1))*exp((2*n+1)*Pi*a);
seq(evalf[20](eval(T,a=4)),n=1..11);
diff(T,n);
solve(%=0,n);
evalf(eval(%,a=4));

@ilods Thank you very much and Happy New Year!

@ilods Thank you very much and Happy New Year!

What is known about the parameters, i, u, n, p, y?

@lesshaste Yes, if you make che change of variable B(p) = c(n-1-p) then c(0)=1+(n-1)/n*A(0):

For comparison I start as before:

restart;
RA:=A(k)=1+((n-k-2)/n)*A(k+1)+(2/n)*B(k+1)+(k/n)*(A(0));
RB:= B(k)=1+((n-k-1)/n)*B(k+1)+(k/n)*A(0);
#RA holds for k = 0 .. n-2 and RB holds for k = 1 .. n-1: 
T:=NULL:
for n from 2 to 6 do
  SA:=seq(RA,k=0..n-2);
  SB:=seq(RB,k=1..n-1);
  T:=T,solve({SA,SB},{seq(A(k),k=0..n-2),seq(B(k),k=1..n-1)})
end do:
T;
n:='n':
eval(RB,k=n-1-p);
eq:=eval(%,B=(p->c(n-1-p)));
resc:=rsolve({eq,c(0)=1+(n-1)/n*A(0)},c(p));
eval(resc,p=n-k-1);
resB:=B(k)=eval(%,c=(k->B(n-1-k)));
#Tests:
simplify(eval(resB,{k=1,n=3}));
eval(%,T[2]);
seq(eval(simplify(eval(resB,{k=1})),T[n-1]),n=2..6);
seq(simplify(eval(resB,{n=3} union T[2])),k=1..2);
seq(seq(simplify(eval(resB,T[n-1])),k=1..n-1),n=2..6);
##Now we can use the result for B in RA.
##Presumably a similar change of variable could work for A, but I have not attempted it.
##Only a couple of tests:
res:=eval(RA,eval(resB,k=k+1));
eval(res,n=3);
seq(%,k=0..1);
simplify([%]);
solve(%,{A(0),A(1)});
T[2];
eval(res,n=4);
seq(%,k=0..2);
simplify([%]);
solve(%,{A(0),A(1),A(2)});
T[3];

@lesshaste Yes, if you make che change of variable B(p) = c(n-1-p) then c(0)=1+(n-1)/n*A(0):

For comparison I start as before:

restart;
RA:=A(k)=1+((n-k-2)/n)*A(k+1)+(2/n)*B(k+1)+(k/n)*(A(0));
RB:= B(k)=1+((n-k-1)/n)*B(k+1)+(k/n)*A(0);
#RA holds for k = 0 .. n-2 and RB holds for k = 1 .. n-1: 
T:=NULL:
for n from 2 to 6 do
  SA:=seq(RA,k=0..n-2);
  SB:=seq(RB,k=1..n-1);
  T:=T,solve({SA,SB},{seq(A(k),k=0..n-2),seq(B(k),k=1..n-1)})
end do:
T;
n:='n':
eval(RB,k=n-1-p);
eq:=eval(%,B=(p->c(n-1-p)));
resc:=rsolve({eq,c(0)=1+(n-1)/n*A(0)},c(p));
eval(resc,p=n-k-1);
resB:=B(k)=eval(%,c=(k->B(n-1-k)));
#Tests:
simplify(eval(resB,{k=1,n=3}));
eval(%,T[2]);
seq(eval(simplify(eval(resB,{k=1})),T[n-1]),n=2..6);
seq(simplify(eval(resB,{n=3} union T[2])),k=1..2);
seq(seq(simplify(eval(resB,T[n-1])),k=1..n-1),n=2..6);
##Now we can use the result for B in RA.
##Presumably a similar change of variable could work for A, but I have not attempted it.
##Only a couple of tests:
res:=eval(RA,eval(resB,k=k+1));
eval(res,n=3);
seq(%,k=0..1);
simplify([%]);
solve(%,{A(0),A(1)});
T[2];
eval(res,n=4);
seq(%,k=0..2);
simplify([%]);
solve(%,{A(0),A(1),A(2)});
T[3];

@lesshaste I would do it the same way (eval or subs, no real difference in this case).

To get a sequence of A(0) for n = 2 to (e.g. 10) one could do:

S:=NULL:
for n from 2 to 10 do
  SA:=seq(RA,k=0..n-2);
  SB:=seq(RB,k=1..n-1);
  S:=S,subs(solve({SA,SB},{seq(A(k),k=0..n-2),seq(B(k),k=1..n-1)}),A(0))
end do:
S;
evalf(S);

@lesshaste I would do it the same way (eval or subs, no real difference in this case).

To get a sequence of A(0) for n = 2 to (e.g. 10) one could do:

S:=NULL:
for n from 2 to 10 do
  SA:=seq(RA,k=0..n-2);
  SB:=seq(RB,k=1..n-1);
  S:=S,subs(solve({SA,SB},{seq(A(k),k=0..n-2),seq(B(k),k=1..n-1)}),A(0))
end do:
S;
evalf(S);

@Douglas Lewit Done, hopefully. But I think you should have suppressed the output from balance2 and Balance2.

@Carl Love Thanks for pointing that out to me. I have noticed it often enough, so I should know better. It always has had to do with < or > and maybe only after I edit an already posted reply.

I haven't made actual experiments with this, only noticed it and been quite annoyed by it.

I have inserted the intended lines again. Hopefully, they will remain as intended.

@Carl Love Thanks for pointing that out to me. I have noticed it often enough, so I should know better. It always has had to do with < or > and maybe only after I edit an already posted reply.

I haven't made actual experiments with this, only noticed it and been quite annoyed by it.

I have inserted the intended lines again. Hopefully, they will remain as intended.

@Markiyan Hirnyk My point was (as I also said) that the names the results from evalf  are assigned to have nothing to do with any unpredictable behavior by evalf. I was not criticizing your example as such, just that it didn't make that point.

@Markiyan Hirnyk My point was (as I also said) that the names the results from evalf  are assigned to have nothing to do with any unpredictable behavior by evalf. I was not criticizing your example as such, just that it didn't make that point.

If you give us the code as text, then you are more likely to get a response.

But clearly something like diff(x(0),t) would evaluate to zero resulting in 0=0 in the initial conditions.

You need to write D(x)(0)=0 instead.

But the variable names have nothing to do with it though.

restart;
with(RandomTools):
s := evalf(Generate(list(rational(denominator = 30), 10)));
s1 := evalf(Generate(list(rational(denominator = 30), 10)));
restart;
with(RandomTools):
s1 := evalf(Generate(list(rational(denominator = 30), 10)));
s := evalf(Generate(list(rational(denominator = 30), 10)));

First 186 187 188 189 190 191 192 Last Page 188 of 231