24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2176  |  回复: 3

Lucy

金虫 (小有名气)

[求助] 二阶微分方程的数值解的傅里叶变换

我用NDsolve求得了二阶微分方程的数值解,然后定义并画出了函数p[t]的图形,如下图,我现在想求p[t]的傅里叶变换,没有 函数p[t]关于变量t的具体表达式,而且其值也不是离散的,该用什么语句呢?   先谢谢啦~



回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

三十不惑

铜虫 (小有名气)

没别的意思,看到这么牛的题目,进来看看是哪位高手发的。。。
我已经远离这些方程好多年。。。。
个性签名
2楼2012-08-28 13:47:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walk1997

金虫 (著名写手)


xzhdty: 金币+1, 谢谢参与 2012-08-31 22:36:42
傅立叶变换要求知道函数在整个实轴上都有定义的了
你NDSolve给出的解 x 范围到不了无穷 不够做变换吧
1. 应该可以用离散的变换 或者 人工的延拓
2. 知道在边界收敛的话。。。。可以把求解区间取大 其他取为0 延拓
3. 或者做傅立叶级数展开  
4. 或者你对方程先做傅立叶变换 然后求解变换后的方程
一个例子 这个例子里面的延拓不满足原来的微分方程
Clear["Global`*"];
rule1 = NDSolve[y'[x] + 2 y[x] == 0 && y[0] == 1, y[x], {x, 0, 10}]
Plot[y[x] /. rule1[[1]], {x, 0, 1}]
yy[x_ /; 0 <= x <= 1] = y[x] /. rule1[[1]];
yy[x_ /; x < 0] = 0;
yy[x_ /; x > 1] = 0;
yybar2[w_?NumericQ] := FourierTransform[yy[x], x, w]
yybar2[1.0] // N
Plot[Re[yybar2[xx]], {xx, 1, 2}]

这程序里面数值积分精度有点问题 可能需要重新设置下参数
或者自己代入到傅立叶变换表达式中可能更方便

» 本帖已获得的红花(最新10朵)

3楼2012-08-30 11:32:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Lucy

金虫 (小有名气)

送鲜花一朵
引用回帖:
3楼: Originally posted by walk1997 at 2012-08-30 11:32:24
傅立叶变换要求知道函数在整个实轴上都有定义的了
你NDSolve给出的解 x 范围到不了无穷 不够做变换吧
1. 应该可以用离散的变换 或者 人工的延拓
2. 知道在边界收敛的话。。。。可以把求解区间取大 其他取为0 延 ...

嗯,谢谢大虾解答啊!
我先理解理解你的回答!
4楼2012-08-31 01:47:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Lucy 的主题更新
信息提示
请填处理意见