24小时热门版块排行榜    

查看: 616  |  回复: 2

astonesh

新虫 (初入文坛)

[交流] 求助,matlab 四阶龙格库塔结合二乘法的问题 已有1人参与

function k
format long
clear all
clc
x0 = 0;
k0 = 0;   
lb = 0.1;
ub = 0.5;
tspan=linspace(0,400,800);
[m,n]=ode45(@example,tspan,0);
tspan = m;
data=n;
plot(tspan,data);
yexp = data';
options = optimset('Display','iter','TolFun',1e-10,'TolX',1e-10)
[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@ObjFunc,k0,lb,ub,options,tspan,x0,yexp);      
ci = nlparci(k,residual,jacobian);
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\tk = %.9f ± %.9f\n',k,ci(1,2)-k)
function f = ObjFunc(k,tspan,x0,yexp)           % 目标函数
[tspan,Xsim] = ode45(@example2,tspan,0,[],k);
Ysim=Xsim';
Ysim=Ysim(2:end);
f = Ysim(:,1)-yexp(:,1);

function dy = example(t,y)
pi=3.14;
dy=0.1*y-0.1*y.^3+0.3*sin(2*pi*0.01*t)+sqrt(2)*randn(size(t));


function dy = example2(t,y,k)  %ode 模型
%UNTITLED4 Summary of this function goes here
%   Detailed explanation goes here
pi=3.14;
dy=0.1*y-0.1*y.^3+k*sin(2*pi*0.01*t)+sqrt(2)*randn(size(t));
这是一个正确的程序。但是我想问,如果把sqrt(2)*randn(size(t))改为一个已知的1*800数组,然后对应时间t依次代进去,怎么弄?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

月只蓝

主管区长 (职业作家)

★
小木虫: 金币+0.5, 给个红包,谢谢回帖
大概看了一下, 用for 语句试试。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2014-10-28 08:37:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

astonesh

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 月只蓝 at 2014-10-28 08:37:59
大概看了一下, 用for 语句试试。

function k
format long
clear all
clc
x0 = 0;
k0 = 0;   
lb = 0.1;
ub = 0.5;
tspan=linspace(0,400,800);
[m,n]=ode45(@example,tspan,0);
tspan = m;
data=n;
plot(tspan,data);
  
yexp = data';
options = optimset('Display','iter','TolFun',1e-10,'TolX',1e-10)

[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@ObjFunc,k0,lb,ub,options,tspan,x0,yexp);      
ci = nlparci(k,residual,jacobian);
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\tk = %.9f ± %.9f\n',k,ci(1,2)-k)


function f = ObjFunc(k,tspan,x0,yexp)           % 目标函数
[tspan,Xsim] = example2(tspan,k,x0);
Ysim=Xsim';
Ysim=Ysim(2:end);

f = Ysim(:,1)-yexp(:,1);


function dy = example(t,y,y0)

pi=3.14;
dy=0.1*y-0.1*y.^3+0.3*sin(2*pi*0.01*t)+sqrt(2)*randn(size(t));


function [t,y] = example2(t,k,y0)  %ode 模型

fs=4;%采样频率
%T=1/fs;%采样时间
N=4096;%数据点数
%t=(0:N-1)*T;%时间序列
pi=3.14;
t_1=linspace(0,400,800);
[m1,n1]=ode45(@example,t_1,0);
subplot(3,2,1)
plot(m1,n1);

NFFT=2^nextpow2(N);%求得最接近总采样点的2^n,
Y2=fft(n1,NFFT)/N;
y2=2*abs(Y2(1:NFFT/20+1));
f2=fs/2*linspace(0,0.1,NFFT/20+1);%频率序列
subplot(3,2,2)
plot(f2,y2);
%第二个经过SR的频谱图

LPF = ones(4096,1);  
LPF(18:24)=zeros(7,1); %截止频率100Hz
%LPF(14:18)=zeros(5,1); %截止频率100Hz

Ylv4 = Y2.*LPF;
f4=fs/2*linspace(0,0.1,NFFT/20+1);
ylv4=2*abs(Ylv4(1:NFFT/20+1));
subplot(3,2,4)
plot(f4,ylv4);
%第四个图是幅值置0后对比图

T5=1/N;
%t5=(0:N-1)*T5;%时间序列
t5=linspace(0,400,800);
ylv5 = ifft(Ylv4*N);
ylvlv=ylv5(1:5:3996);
ylvlv2=ylvlv';
subplot(3,2,5)
plot(4*t5 ,ylv5(1:5:3996));
%画出第个五图
%上面的这些为了得到一个1*800的数据ylvlv2,已经确认得到就是1*800的矩阵,但是用for以后就不能调用ode45,结果出来就是k未定义
len=length(ylvlv2);
ty=linspace(0,400,len);
y=zeros(1,len);
y(1)=a*y0-b*y0^3+ylvlv2(1)+k*sin(2*pi*0.01*ty(1));

for i=1:len-1
   h=ty(i+1)-ty(i);
    q1=h*(a*y(i)-b*y(i)^3+ylvlv2(i+1)+k*sin(2*pi*0.01*ty(i+1)));
    q2=h*(a*(y(i)+h*k1/2)-b*(y(i)+h*k1/2)^3+ylvlv2(i+1)+k*sin(2*pi*0.01*(ty(i+1)+h/2)));
    q3=h*(a*(y(i)+h*k2/2)-b*(y(i)+h*k2/2)^3+ylvlv2(i+1)+k*sin(2*pi*0.01*(ty(i+1)+h/2)));
    q4=h*(a*(y(i)+h*k3/2)-b*(y(i)+h*k3)^3+ylvlv2(i+1)+k*sin(2*pi*0.01*(ty(i+1)+h)));
    y(i+1)=y(i)+(q1+2*q2+2*q3+q4)/6;
   
end

能再帮忙看看出现什么问题么   灰常感谢   急着用程序
3楼2014-10-28 10:06:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 astonesh 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 ELBZ6WwEaRj6 2026-11-04 6/300 2026-11-05 18:11 by My20PsvIExYO
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 ttH3f1oA6ace 2026-11-04 6/300 2026-11-05 18:00 by My20PsvIExYO
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ttH3f1oA6ace 2026-11-04 7/350 2026-11-05 17:58 by My20PsvIExYO
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ttH3f1oA6ace 2026-11-04 11/550 2026-11-05 17:58 by My20PsvIExYO
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 kvewwGtKktqB 2026-11-04 11/550 2026-11-05 17:47 by My20PsvIExYO
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 kvewwGtKktqB 2026-11-04 8/400 2026-11-05 17:47 by My20PsvIExYO
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 ncTVBM6AOJHF 2026-11-04 8/400 2026-11-05 17:38 by My20PsvIExYO
[考研] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-05 17:36 by My20PsvIExYO
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 9/450 2026-11-05 17:26 by My20PsvIExYO
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 ncTVBM6AOJHF 2026-11-04 16/800 2026-11-05 17:25 by My20PsvIExYO
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 ncTVBM6AOJHF 2026-11-04 9/450 2026-11-05 17:25 by My20PsvIExYO
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +6 ncTVBM6AOJHF 2026-11-04 19/950 2026-11-05 17:25 by My20PsvIExYO
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ncTVBM6AOJHF 2026-11-04 13/650 2026-11-05 17:15 by My20PsvIExYO
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ELBZ6WwEaRj6 2026-11-04 7/350 2026-11-05 16:08 by My20PsvIExYO
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 hNpp4Y2CGvSC 2026-11-04 10/500 2026-11-05 15:35 by My20PsvIExYO
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-05 15:24 by My20PsvIExYO
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 ncTVBM6AOJHF 2026-11-04 9/450 2026-11-05 15:13 by My20PsvIExYO
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 12/600 2026-11-05 11:10 by PYZmcHr5kSaq
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-05 10:39 by PYZmcHr5kSaq
[基金申请] 各位基础老师们,看完中央《从严治党》的决定后,对学术界更加有信心了吧 +5 iaeyuan 2026-11-01 5/250 2026-11-04 14:43 by jinchengzi
信息提示
请填处理意见