Re: problem with NDSolve::dvnoarg:
- To: mathgroup at smc.vnet.net
- Subject: [mg116545] Re: problem with NDSolve::dvnoarg:
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Sat, 19 Feb 2011 05:12:59 -0500 (EST)
tarun dutta wrote: > n = 5; > p = 5/1000; > q = 1/10; > c[-1][t] = 0; d[-1][t] = 0; > c[n + 1][t] = 0; d[n + 1][t] = 0; > eqn1 = Table[ > c[i]'[t] == ((1/2)*i (i - 1) - q*i)*c[i][t] - > p*(Sqrt[i]* > c[i - 1][t]*(Sum[Sqrt[i]*d[i - 1][t]*d[i][t], {i, 0, n}]) + > Sqrt[i + 1]* > c[i + 1][ > t]*(Sum[Sqrt[i + 1]*d[i - 1][t]*d[i][t], {i, 0, n}])), {i, > 0, n}]; > eqn2 = Table[ > d[i]'[t] == ((1/2)*i (i - 1) - q*i)*d[i][t] - > p*(Sqrt[i]* > d[i - 1][t]*(Sum[Sqrt[i]*c[i - 1][t]*c[i][t], {i, 0, n}]) + > Sqrt[i + 1]* > d[i + 1][ > t]*(Sum[Sqrt[i + 1]*c[i - 1][t]*c[i][t], {i, 0, n}])), {i, > 0, n}]; > eqn3 = Table[Sum[(c[i]^2)[t], {i, 0, n}] == 1, {i, 1}]; > eqn4 = Table[Sum[(d[i]^2)[t], {i, 0, n}] == 1, {i, 1}]; > eqns = Flatten[Join[eqn1, eqn2, eqn3, eqn4]]; > bcs = {{c[0][0] == d[0][0] == 0.004567}, > Table[c[i][0] == 0.0000000034, {i, 1, 5}], > Table[d[i][0] == 0.0000000034, {i, 1, 5}]}; > var = Join[Table[c[i], {i, 0, 5}], Table[d[i], {i, 0, n}]]; > sol = NDSolve[{eqns, bcs}, var, {t, 1/10}] > > NDSolve::dvnoarg: > > I can not understand the meaning of this kind of error,, > can anyone explain and give some valuable insight. > regards, > tarun The full message, which you should have shown, is: "NDSolve::dvnoarg: "The function c[0] appears with no arguments. " The message tells you VERY CLEARLY what you should look for. It is a c[0] without a 't' argument. In my last response, I stated VERY CLEARLY why this was happening. Reluctantly, I quote myself: "You use a notation for summing the squares that is not correct. So you get things like c[0]^2 instead of c[0][t]^2." You might wish to carefully read these things because they can save you, and others, considerable time. Daniel Lichtblau Wolfram Research