Question: how to fix plot range to see the change in results for different value of k=delta't'??

for small value of k no change show in plot... the resulted value is so small and the system consider it zero and show no change in plot.. then how to get the change in plot to change in k... ??? plz suggest 


 

restart; Digits := 5; with(plots); with(LinearAlgebra)

a := 0:

0.11976e-3*k

(1)

for i from 0 while i <= N do u[i, 0] := h*i+1 end do:

for j from 0 while j <= N+1 do u[0, j] := .1; u[N+1, j] := .5 end do:

printlevel := 2:

NULL

NULL

sys := ([seq])(seq(eq[i, j], j = 0 .. N), i = 1 .. N):

nops(sys);

vars:=indets(sys) minus {k}:

nn := Matrix(N+1, N+1,(i, j)-> u[i-1, j-1]):

##

p:=proc(kk) local u_res,A;

  u_res:=solve(eval(sys,k=kk),vars);

  A:=eval(nn,u_res);

  plots:-matrixplot(A)

end proc;

## Testing p for k=0.001:

p(0.001);

## Animating the plot for k=0.0001..0.001:

plots:-animate(p,[k],k=0.0001..0.001);

 

90

 

proc (kk) local u_res, A; u_res := solve(eval(sys, k = kk), vars); A := eval(nn, u_res); plots:-matrixplot(A) end proc

 

 

 

 

``


 

Download Crank_scheme_4.mw
 

restart; Digits := 5; with(plots); with(LinearAlgebra)

a := 0:

0.11976e-3*k

(1)

for i from 0 while i <= N do u[i, 0] := h*i+1 end do:

for j from 0 while j <= N+1 do u[0, j] := .1; u[N+1, j] := .5 end do:

printlevel := 2:

NULL

NULL

sys := ([seq])(seq(eq[i, j], j = 0 .. N), i = 1 .. N):

nops(sys);

vars:=indets(sys) minus {k}:

nn := Matrix(N+1, N+1,(i, j)-> u[i-1, j-1]):

##

p:=proc(kk) local u_res,A;

  u_res:=solve(eval(sys,k=kk),vars);

  A:=eval(nn,u_res);

  plots:-matrixplot(A)

end proc;

## Testing p for k=0.001:

p(0.001);

## Animating the plot for k=0.0001..0.001:

plots:-animate(p,[k],k=0.0001..0.001);

 

90

 

proc (kk) local u_res, A; u_res := solve(eval(sys, k = kk), vars); A := eval(nn, u_res); plots:-matrixplot(A) end proc

 

 

 

 

``


 

Download Crank_scheme_4.mw

 

Please Wait...