把白噪声数据加入至微分方程求解
请问,有没有办法把白噪声数据写成z=x(t)的形式,写到微分方程里面再求解啊??方程为:
y''=-z''-B*y-C*y'^2
请各位帮忙啦 唉,怎么没人帮忙啊!!!郁闷中啊!! 既然是白噪声了怎么能写成z=x(t)的形式?理论上说不通 就是想请教一下,能不能把它写入微分方程中进行求解啊??:'( :'( 自己已经解决啦!呵呵 原帖由 octopussheng 于 2006-12-30 08:03 发表
自己已经解决啦!呵呵
能不能告知一下啊,我也有同问啊,那位仁兄指点一下啊!最好使用matlab原有的ode函数! 我是参考这个例子做的:
如下的例子需要用到interp1 命令。 建立如下的微分方程函数:
% FUN2.M 带有数据集合的时变微分方程的例子
functionxdot = fun2 ( t, x, beta, omega, T, P )
pt = interp1 ( T, P, t );
xdot (2 ) = beta * x (2 ) – omega^2 * x (1) + pt ;
xdot (1 ) = x (2 );
xdot = xdot ( : );% 使得xdot是一列
% fun2.m 结束
在MATLAB中采用如下的形式调用这个函数:
beta = .1 ;
omega = 2 ;
A = .1 ;
w0 = 1.3 ;
theta = pi /4 ;
X0 = [ 0 1]’;
t0 = 0 ;
tf = 20 ;
T = t0 – eps : .1 : tf + theta +eps ;
P = A.* sin(w0 .*T –theta );
[ t, y ] = ode23 ( @ fun2 , [ t0, tf ], X0, [ ], theta, omega, T, P );
plot ( t, y (:,1));
hold on;
plot(t,y(:,2),'g'); 我在做的时候直接将T和P写成之前算出来的向量,写在方程的程序里面,这样是可行的 Thank you!
原来我是用自编的函数做的,做Monte-carlo的时候很慢,谢谢你的那个interp1 函数 ,
thany you!! 感谢分享,刚好碰到类似问题了。先学习学习 octopussheng 发表于 2007-1-5 15:17 static/image/common/back.gif
我在做的时候直接将T和P写成之前算出来的向量,写在方程的程序里面,这样是可行的
oct,我用duffing系统这样得不到结果?
functionxdot=fun2(t,x,beta,T,P)
pt = interp1(T,P,t);
xdot(1)=x(2);
xdot(2)=0.1*x(2)+x(1)-beta*x(1)^3+f*cos(t)+pt ;
xdot=xdot(:);% 使得xdot是一列
% fun2.m 结束
clear all
clc
%在MATLAB中采用如下的形式调用这个函数:
beta =.1 ;
f =.1;
w0 =1.3;
X0=;
t0=0;
tf=50;
T=t0:.01:tf;
P=0.01*rand(1,length(T));
=ode23(@fun2,T,X0,[ ],T,P );
plot(t,y(:,1));
hold on;
plot(t,y(:,2),'g');
报错是 Not enough input arguments.
页:
[1]