mathematica数据导出,求助高手

如图所示这里,我想把图上x[t]的实部(蓝色线),按t从0到1,存到ksi_r.data中,该怎么办?求助高手... 如图所示

这里,我想把图上x[t]的实部(蓝色线),按t从0到1,存到ksi_r.data中,该怎么办?
求助高手
展开
 我来答
yang_bigarm
2013-12-22 · TA获得超过3947个赞
知道大有可为答主
回答量:1664
采纳率:100%
帮助的人:562万
展开全部
假定你有这样一个方程,直接调用NDSolve求解,解出来的结果可以画图
sol = NDSolve[{x'[t] == -y[t] - x[t]^2, y'[t] == 2 x[t] - y[t]^3, x[0] == y[0] == 1}, {x, y}, {t, 20}];Plot[Evaluate[{x[t], y[t]} /. sol], {t, 0, 20}]
但是x[t],y[t]没有函数表达式,得到的是这样的结果
InterpolatingFunction[{{0.,20.}},<>]
这种叫做插值函数。

现在你要把x[t]存储下来,因为没有表达式,所以不能直接保存。应该是按t从0到1,把x[t]的值存储下来,先求插值插值函数的值,再保存。
data = Table[{t, (x[t] /. s)[[1]]}, {t, 0, 20, 0.1}];Export["d:/ksi_r.dat", data]

你要恢复这个函数的时候,就这样
restore = Import["d:/data.dat"];
然后再重新计算插值函数ifun,画图,跟原来的x[t]基本上一模一样。
ifun = Interpolation[restore];Plot[ifun[x], {x, 0, 20}]
追问

试了下是对的,如果我想只保存x[t]的实部该怎么做?

这里的1代表什么意思哩?

追答
你要保存实部,就
data = Table[{t, (Re[x[t]]/.First[sol])[[1]] }, {t, 0, 20, 0.1}];Export["d:/ksi_r.dat", data]

你自己试一下这个
{0.1, (Re[x[0.1]]/.First[sol])}
就明白了,多套了一层括号
{0.1, (Re[x[0.1]]/.First[sol])[[1]]}
这样就把那层括号给去掉了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式