level 2
我现在求NDSolve解析解之后对数据做傅里叶变换分析频谱,但是不知道为啥用帮助里的做出来InterpolatingFunction后面没有[t],我自己弄出来的[t],导致后面都做不出来,具体看下图
2021年10月21日 03点10分
1
level 2
这是成功的
ifun = First[
u /. NDSolve[{u''[t] + u[t] == 0, u[0] == 0, u'[0] == 1},
u, {t, 0, \[Pi]}]]
Plot[{ifun[t]}, {t, 0, \[Pi]}]
data = Table[ifun[t], {t, 0, 3, 0.1}]
pdata = Abs[Fourier[data]]
BarChart[pdata]
2021年10月21日 03点10分
2
level 2
这是不成功的
ClearAll
Bx = 100 Sin[24 Pi t];
By = 100 Sin[86 Pi t];
Bz = 2842 + 5684 Cos[50000 t];
R1 = 50000;
R2 = 50000;
Rp = 700;
\[Gamma] = 5.6;
s = NDSolve[{
Px'[t] == \[Gamma] (Py[t] Bz - Pz[t] By) + Rp (0 - Px[t]) -
R2 Px[t],
Py'[t] == \[Gamma] (Pz[t] Bx - Px[t] Bz) + Rp (0 - Py[t]) -
R2 Py[t],
Pz'[t] == \[Gamma] (Px[t] By - Py[t] Bx) + Rp (1 - Pz[t]) -
R1 Pz[t],
Px[0] == 0, Py[0] == 0, Pz[0] == 0}, {Px[t], Py[t], Pz[t]}, {t, 0,
10}]
ifun = Evaluate[Px[t] /. s]
Plot[Evaluate[Px[t] /. s], {t, 0, 10}, AxesLabel -> {t, Px},
PlotRange -> All]
data = Table[ifun[t], {t, 0, 10, 0.00001}]
pdata = Abs[Fourier[data]]
BarChart[pdata]
2021年10月21日 03点10分
3
level 2
差别就在成功的插值函数出来没有[t],但是我自己搞出来的由[t],请问怎么把他消掉,常用的/.s这种语法是啥意思也不太清楚
2021年10月21日 03点10分
4