[Date Index]
[Thread Index]
[Author Index]
Re: DSolve problems with system of ODEs. Out in pure notation?
*To*: mathgroup at smc.vnet.net
*Subject*: [mg21756] Re: DSolve problems with system of ODEs. Out in pure notation?
*From*: "Allan Hayes" <hay at haystack.demon.co.uk>
*Date*: Thu, 27 Jan 2000 22:56:38 -0500 (EST)
*References*: <200001210900.EAA06601@smc.vnet.net> <200001220753.CAA11688@smc.vnet.net> <86e8o3$fbv@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
I have deleted the graphic display and most of the output.
eqns = {x'[t] == -0.036 x[t] + 0.0124 y[t] + 0.000035 z[t] + 49.3,
y'[t] == 0.0111 x[t] - 0.0286 y[t],
z'[t] == 0.0039 x[t] - 0.000035 z[t], x[0] == 0, y[0] == 0, z[0] ==
0};
soln = DSolve[ eqns, {x[t], y[t], z[t]}, t];
I am not sure what caused the error message.
We can get what they indicate by Help Browser > GoTo [RootSum::pfn] with
Other Information chosen from the category buttons. We get
"Generated when the first argument in RootSum is not a Function expression."
However it looks as if it is serious, since the solution is incorrect:
soln /. t -> 0
{{x[0] -> 1.77331, y[0] -> -0.546333, z[0] -> -0.192132}}
But, in reply to your question about the form of the answer:
RootSum[f, form]represents the sum of form[x]for allx that satisfy the
polynomial equationf[x] == 0.
This is very useful notation - for mathematics in general, not just for
Mathematica.
In this case we can convert to standard notation (but it takes a while)
ToRadicals[soln]
And, with another wait, to traditional notation
TraditionalForm[%]
Since your input includes inexact numbers, you might accept the muchs
shorter form.
N[soln]
Or maybe a numerical solution over some range of t (I have used -1 to 1)
Numsoln = NDSolve[eqns, {x[t], y[t], z[t]}, {t, -1, 1}]
This is OK at t=0:
Numsoln /. t -> 0
{{x[0] -> 0., y[0] -> 0., z[0] -> 0.}}
To check on the values throughout the t-range it is convenient to convert
the solution to one for the functions x,y and z:
FunNumsoln = Nsoln /. f_[t] -> f
and, in eqns change Equal to Subtract:
diffs = eqns /. Equal -> Subtract
Now plot diffs with the functions substitued for x, y, z (with a perfect
solution each would give constant zero function)
Plot[Evaluate[diffs /. FunNumsoln], {t, -1, 1}, PlotRange -> All];
The maximum absolute error looks to be less than 0.000035.
Allan
---------------------
Allan Hayes
Mathematica Training and Consulting
Leicester UK
www.haystack.demon.co.uk
hay at haystack.demon.co.uk
Voice: +44 (0)116 271 4198
Fax: +44 (0)870 164 0565
"J.Guillermo Sanchez" <guillerm at gugu.usal.es> wrote in message
news:86e8o3$fbv at smc.vnet.net...
> If I evaluate,
>
> DSolve[{x'[t] == -0.036 x[t] + 0.0124 y[t] + 0.000035 z[t] + 49.3,
> y'[t] == 0.0111 x[t] - 0.0286 y[t], z'[t] == 0.0039 x[t] - 0.000035
> z[t],
> x[0] == 0, y[0] == 0, z[0] == 0}, {x[t], y[t], z[t]}, t]
>
> I receive a massage like this
> (RootSum::"pfn" :
> "(DSolve`DSolveDump`dysfunction$6[273147 + <<1>>...
> is not a pure function.).
> and them a out in pure notation.
>
> But I want to receive the solution in standard notation.
>
> Also the same sentece work fine in Mathematica 2.2.
>
> Can anyone give a hand?
>
>
>
>
Prev by Date:
**Re: Making a function dynamically define another conditional function...**
Next by Date:
**Re: Problem with evaluation of delayed rules**
Previous by thread:
**Re: DSolve problems with system of ODEs. Out in pure notation?**
Next by thread:
**Intersection of 2 subspaces**
| |