24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2765  |  回复: 7

lihongru

金虫 (小有名气)

[求助] matlab非线性参数拟合问题

现已知x和y的一系列实验值,且已知x和y具有如下关系:
y=kln(x-ky)+a,期中k和a是待拟合的参数,我一开始采用线性拟和的方法,先给括号中的k赋初值k0,对y和ln(x-k0)线性回归出新的k和a,然后对k进行迭代和线性拟合,直到k收敛,现在的问题是有的情况下能够收敛出k,有时不收敛,请问有没有更好的非线性回归方法,求得k和a参数呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

lihongru(金币+10): 谢谢,我对1stOpt不是特别熟悉,回头试一下。 2011-10-24 20:58:45
你的问题已变成隐函数拟合了,可以试下1stOpt,处理的很好。
2楼2011-10-24 09:36:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqx1985

木虫 (著名写手)

云中仙

【答案】应助回帖

★ ★
微尘、梦想(金币+2): 谢谢参与应助 2011-10-24 17:46:23
lihongru(金币+10): 谢谢,我试着运行一下。 2011-10-24 21:00:32
你的表达式,经过转化不就是下面的形式吗?
x=e^[(y-a)/k]+ky;
你可以在matlab中建立一个函数
function y=fun(x,p)
a=p(1);k=p(2);
y=e^((x-a)./k)+k*x;
end
进而你可以用nlinfit函数进行非参数拟合
options = statset('Robust','on');
[beta,r,J,Sigma,mse] = nlinfit(x,y,@fun,rand(1,2),options);
即可得到参数的估计值,当然,你也可以重新定义函数,采用最小二乘的方法进行参数估计。
人面不知何时去,桃花依旧笑春风
3楼2011-10-24 11:24:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lihongru

金虫 (小有名气)

我试着用另一种方法解了一下,就是我知道k的大概范围,然后程序如下:
k=6:0.1:15%另一种求k值的方法
g=length(k);
for i=1:g
d0=d-k(i)*s;
lnd0=log(d0);
X0=[lnd0,DT,cons];
p=X0\lns;
m=p(1)-k(i);
f=abs(m);
if f>=delt
    return
else
end
end
p
可是运行不出结果,也不知程序错在什么地方。
4楼2011-10-24 21:04:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lihongru

金虫 (小有名气)

原始的要拟合的方程是lns=kln(d-k*s)+a*DT+c,s、d和DT是已知的三个列向量,要拟合k、a和c,若DT固定后就成了一个隐函数了。不知采用上边的方法可行不可行。
5楼2011-10-24 21:13:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lihongru

金虫 (小有名气)

上面程序运行不出来,用如下程序解决了
delt=1*10^-4;%设定迭代终止值
k=6:0.1:15;%另一种求k值的方法
f=1;
i=0;
if f>=delt
    i=i+1;
    d0=d-k(i)*s;
    lnd0=log(d0);
    X0=[lnd0,DT,cons];
    p=X0\lns;
    m=p(1)-k(i);
    f=abs(m);
end
p
不知是不是正确
6楼2011-10-24 22:04:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqx1985

木虫 (著名写手)

云中仙


jjdg(金币+1): 感谢支持 2011-10-25 00:16:11
引用回帖:
3楼: Originally posted by yqx1985 at 2011-10-24 11:24:04:
你的表达式,经过转化不就是下面的形式吗?
x=e^[(y-a)/k]+ky;
你可以在matlab中建立一个函数
function y=fun(x,p)
a=p(1);k=p(2);
y=e^((x-a)./k)+k*x;
end
进而你可以用nlinfit函数进行非参数拟合
opt ...

have a try
人面不知何时去,桃花依旧笑春风
7楼2011-10-24 23:54:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lihongru

金虫 (小有名气)

最后用如下程序解决了
delt=1*10^-4;%设定迭代终止值
k=6:0.00001:15;%另一种求k值的方法
g=length(k);
f=1;
i=0;
while f>=delt
  i=i+1;
  d0=d-k(i)*s;
  lnd0=log(d0);
  X0=[lnd0,DT,cons];
  p=X0\lns;
  m=p(1)-k(i);
  f=abs(m);
end
p
i
就是整体感觉比较笨重,如果用非线性拟合的话,可能会更好,感谢楼上两位的帮助!
8楼2011-10-26 08:05:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lihongru 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自然面上和省基金B类撒花 +6 花田半亩~白 2026-04-21 6/300 2026-04-22 10:55 by 3126142009
[考博] 华师大读博 +3 xq83 2026-04-22 5/250 2026-04-22 10:42 by xq83
[教师之家] 又一批高校组建人工智能学院 师资行吗 不是骗人吗 +5 yexuqing 2026-04-19 5/250 2026-04-22 10:01 by easeheart
[考研] 0854求调剂 +24 门路摸摸 2026-04-15 28/1400 2026-04-22 09:54 by Sy199704!
[论文投稿] 急需审稿人!!! +3 陆小果画大饼 2026-04-21 3/150 2026-04-21 23:54 by jzy_123456
[考博] 申博/考博 +4 啃面包的小书虫 2026-04-17 8/400 2026-04-21 16:26 by 啃面包的小书虫
[考研] 一志愿A区211,22408 321求调剂 +7 随心所欲☆ 2026-04-15 8/400 2026-04-21 08:22 by Equinoxhua
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[论文投稿] 期刊推荐 +3 材料研究生 2026-04-15 5/250 2026-04-20 16:02 by 豆豆7758
[论文投稿] 有没有接收比较快的sci期刊呀,最好在一个月之内的,研三孩子求毕业 20+4 之护着 2026-04-16 7/350 2026-04-20 15:45 by 豆豆7758
[考研] 337求调剂 +3 jyz04 2026-04-18 3/150 2026-04-20 12:24 by 研可安
[考博] 湖南大学刘巧玲课题组2026年第二批次博士研究生招生信息 +3 南风观火 2026-04-18 5/250 2026-04-20 10:13 by 南风观火
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 304求调剂 +8 castLight 2026-04-16 8/400 2026-04-19 17:14 by 中豫男
[考研] 求调剂 +10 小聂爱学习 2026-04-16 12/600 2026-04-19 16:51 by 中豫男
[考研] 求调剂 +6 苦命人。。。 2026-04-18 7/350 2026-04-19 16:27 by 中豫男
[考研] 接受任何调剂 +6 也就是栗子 2026-04-17 7/350 2026-04-18 17:20 by 涵竹刘
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[考研] 260求调剂 +4 Zyt1314520.. 2026-04-17 5/250 2026-04-18 08:28 by babysonlkd
[考研] 急需调剂 +9 绝不放弃22 2026-04-15 10/500 2026-04-18 08:09 by chixmc
信息提示
请填处理意见