level 6
请问各位,我在进行Laplace逆变换正弦荷载时,在一定时间(10^10 s)以后结果不好,是为什么?谢谢!
代码如下:
<< NumericalInversion.m
P[s_] := Qs = LaplaceTransform[100*(1 + Sin[2 \[Pi]*10^-6*t]), t, s]
time = Table[10^i, {i, 0, 10, 0.01}]
ft = Crump[P[s], s, time]
fig = ListPlot[Transpose[{Log10[time], ft}], PlotRange -> All,
Joined -> True, InterpolationOrder -> 3]
2018年09月29日 18点09分
1
level 6
确切的说是10的7次方以后就不行了,按理说正弦荷载是不会收敛的
2018年09月30日 05点09分
4
吧务
level 12
从图上看大概是数值误差的问题,把定义改成
P[s_] = LaplaceTransform[100*(1 + Sin[2 \[Pi]*10^-6*t]), t, s];
试下
如果还不行的话再提高time的精度,比如time = SetPrecision[Table[10^i, {i, 0, 10, 0.01}], 30]
2018年09月30日 16点09分
6
谢谢!我试试
2018年09月30日 17点09分
试了一下,还是不行,不知道什么原因?
2018年09月30日 17点09分
@Shu_lty 把Crump的完整定义发上来吧,要不然没法测试也不好找里面到底是什么原因
2018年10月01日 06点10分
@无影东瓜 这个是laplace逆变换中程序包里面的,我只是调用了一下
2018年10月02日 13点10分
level 6
问题解决了,这个是程序包的问题,这个问题用InverseLaplaceTransform就可以很好的解决了,谢谢各位!
2018年10月05日 08点10分
8
level 6
顺便发一下我用InverseLaplaceTransform搞的程序:
<< NumericalInversion.m
P[s_] := Qs = LaplaceTransform[100*(1 + Sin[2 \[Pi]*10^-6*t]), t, s]
time = Table[10^i, {i, 0, 10, 0.002}]
ft = InverseLaplaceTransform[P[s], s, time]
fig = ListPlot[Transpose[{Log10[time], ft}], PlotRange -> All,
Joined -> True, InterpolationOrder -> 3]
2018年10月06日 01点10分
10
第一行现在用不着了。还有昨晚忘了说了,你那个扭曲的P[s]定义是怎么回事?
2018年10月06日 05点10分
额,啥意思?扭曲的P[s]?
2018年10月07日 00点10分
@Shu_lty 你这 P[s_] := Qs = 是想干啥
2018年11月03日 13点11分
@xzcyr 那个是复制的时候没删掉,本来没那个的。
2018年11月04日 10点11分