From: dh on 8 Jan 2010 06:28 Hi, obviously the output of NDSolve is a numerical function not an anayltical one. Therefore, the best you can do is to create a table with p and t values. This data you may the export e.g. to a CSV (or other formated), file that can be read by EXCEL. Here is an example: sol = f /. NDSolve[{f' [t] == f[t], f[0] == 1}, f, {t, 0, 1}][[1]] dat = Table[{t, sol[t]}, {t, 0, 1, .1}] Export["d:/tmp/t.dat", dat, "CSV"] Daniel Yun Zhao wrote: > Hi everyone, > > I would like to know if there is a way to export differential equation > solution obtained through Mathematica to microsoft excel. There are several > data processing things that I want to know, that simply plotting the > solution in Mathematica won't suffice. > > I have a system of differential equations like so: > > > sol3=NDSolve[{p'[t]=-0.0491*p[t]-0.0089*p[t],n'[t]=0.0491*p[t]+(0.0491-0.0089)*n[t],p[0]=25000,n[0]=0},{p,n},{t,0,100}] > > When I plotted it in Mathematica using this code: > > Plot[Evaluate[{n[t]+p[t]}/.First[sol3]],{t,0,100}] > > I get a exponential increasing function plotting number vs. time. > > What I want is the values of both the time vector and number vector, and I > want to copy and paste them into two columns in microsoft excel. > > I tried using: > > Export["newdata.dat", Evaluate[{n[t]+p[t]}/.First[sol3]] > > But this gives me a .dat file with the time and number vectors all scrambled > up. > > My question is: > > (1) is there a better way to tell Mathematica what I want to export, because > I don't think Evaluate[{n[t]+p[t]}/.First[sol3] is the correct term to > convey what I want > > (2) How do I properly export differential equation solutions that I can > graph but not display in Mathematica, to spreadsheets software like > Microsoft Excel? > > > > Thank you all very much. > >
From: Albert Retey on 8 Jan 2010 06:45 Am 08.01.2010 10:17, schrieb Yun Zhao: > Hi everyone, > > I would like to know if there is a way to export differential equation > solution obtained through Mathematica to microsoft excel. There are several > data processing things that I want to know, that simply plotting the > solution in Mathematica won't suffice. > > I have a system of differential equations like so: > > > sol3=NDSolve[{p'[t]=-0.0491*p[t]-0.0089*p[t],n'[t]=0.0491*p[t]+(0.0491-0.0089)*n[t],p[0]=25000,n[0]=0},{p,n},{t,0,100}] > > When I plotted it in Mathematica using this code: > > Plot[Evaluate[{n[t]+p[t]}/.First[sol3]],{t,0,100}] > > I get a exponential increasing function plotting number vs. time. > > What I want is the values of both the time vector and number vector, and I > want to copy and paste them into two columns in microsoft excel. > > I tried using: > > Export["newdata.dat", Evaluate[{n[t]+p[t]}/.First[sol3]] > > But this gives me a .dat file with the time and number vectors all scrambled > up. > > My question is: > > (1) is there a better way to tell Mathematica what I want to export, because > I don't think Evaluate[{n[t]+p[t]}/.First[sol3] is the correct term to > convey what I want NDSolve returns InterpolatingFunctions, a concept I think is not known to Excel, so when exporting to Excel, you need to extract an array of numeric values, which are very straightforward to export to excel. > (2) How do I properly export differential equation solutions that I can > graph but not display in Mathematica, to spreadsheets software like > Microsoft Excel? A very simple approach is this: Export[ ToFileName[{$HomeDirectory, "Desktop"}, "nplusp.xls"], Table[{t, n[t] + p[t]} /. First[sol3], {t, 0, 100}] ] of course you might want to adopt the sampling to your needs. If you want to reflect the sampling points the values NDSolve was actually using, you can use the function InterpolatingFunctionCoordinates in the package "DifferentialEquations`InterpolatingFunctionAnatomy`" to get a list of the values NDSolve used: Needs["DifferentialEquations`InterpolatingFunctionAnatomy`"] Export[ ToFileName[{$HomeDirectory, "Desktop"}, "nplusp.xls"], Map[ {#, p[#] + n[#] /. sol3[[1]]} &, InterpolatingFunctionCoordinates[p /. sol3[[1]]][[1]] ] ] hth, albert
|
Pages: 1 Prev: horizontal line color Next: export differential equation solution obtained |