24小时热门版块排行榜    

查看: 2070  |  回复: 9

xiaoqiia

金虫 (小有名气)

[交流] 求大神帮忙matlab拟合函数求参数

如题,x= 1  7  14  21  35
          y=17.24   16.31   14.21   13.16   11.87
方程为y=18+a[1-exp(-bx)]-cln(1+dx),求参数abcd,要拟合的函数过程啊,在下第一次接触matlab,完全新手~求大神帮忙,金币不多,愿相送50个。
回复此楼

» 猜你喜欢

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

奔跑吧少年
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qq2537742567

新虫 (小有名气)


★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
xiaoqiia: 金币+2, 能来个过程吗?小弟刚接触,不大懂~ 2014-04-20 10:02:55
fegg7502: 金币+1, 应助指数+1, 鼓励交流 2014-04-21 07:50:36
lsqcurvefit你参考这个函数来做
2楼2014-04-20 09:45:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
xiaoqiia: 金币+10, 用了为什么参数不能显示d呢?只有abc跟non。。求大神继续指导下 2014-04-20 20:53:33
fegg7502: 金币+1, 应助指数+1, 鼓励交流 2014-04-21 07:50:45
用1stOpt计算挺好的,结果好像不止一种:
代码为:
Title "Curve";
Parameters a,b,c,d;
Variable x,y;
Function y=18+a*(1-exp(-b*x))-c*log(1+d*x);
Data;
1     17.24
7     16.31
14    14.21
21    13.16
35    11.87
Be water, my friend.
3楼2014-04-20 12:56:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoqiia

金虫 (小有名气)

引用回帖:
3楼: Originally posted by NicoleLas at 2014-04-20 12:56:42
用1stOpt计算挺好的,结果好像不止一种:
代码为:
Title "Curve";
Parameters a,b,c,d;
Variable x,y;
Function y=18+a*(1-exp(-b*x))-c*log(1+d*x);
Data;
1     17.24
7     16.31
14    14. ...

是LN不是LOG~
奔跑吧少年
4楼2014-04-20 20:54:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mzhyan

至尊木虫 (文坛精英)


xiaoqiia: 金币+1 2014-04-20 21:53:25
blessing
5楼2014-04-20 21:45:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
6楼2014-04-20 22:17:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
fegg7502: 金币+1, 鼓励交流 2014-04-21 07:50:53
fegg7502: 应助指数+1, 鼓励交流 2014-04-21 07:51:03
比如这是一组解。
"Curve"

迭代数: 66
计算用时(时:分:秒:微秒): 00:00:01:60
优化算法: 准牛顿法(BFGS) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE): 0.0720037079046967
残差平方和(SSE): 0.0259226697601244
相关系数(R): 0.999337253425239
相关系数之平方(R^2): 0.9986749460835
决定系数(DC): 0.998674945880788
卡方系数(Chi-Square): 0.000930938251442266
F统计(F-Statistic): 2261.05881499843

参数        最佳估算
----------        -------------
a                  31.1225668620202
b                  1.96505984749032
c                  2.75886155053898
d                  21490.6088747969

====== 结果输出 =====

No        实测值y        计算值y
1        17.24        17.2400202
2        16.31        16.2333504
3        14.21        14.3210955
4        13.16        13.2024765
5        11.87        11.7931817

不好意思,换成ln了,以前在使用其它软件时,LOG就是LN,而LG为LOG10()。
我没有1stOpt正版的,你最好求助一下dingd版主。
Be water, my friend.
7楼2014-04-20 23:00:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

waterque

金虫 (正式写手)

★ ★ ★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
xiaoqiia: 金币+5, 嗯,谢谢 2014-04-29 10:01:05
matlab 拟合还是很强大的,有一个curve fitting tool很强大。建议使用
输入命令cftool即弹出拟合窗口,设置拟合的参数。
你这个数据点太少,拟合有一定的不确定性,需要根据实际进行分析对比。
行自己的路:waterque@hotmail.com
8楼2014-04-21 11:28:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

spiderone

木虫 (小有名气)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
xiaoqiia: 金币+10, 非常感谢 2014-04-29 09:59:08
function jisuan
clear all
clc
x=[1 7 14 21 35]';  % x数据
yexp=[17.24   16.31   14.21   13.16   11.87]';  % y数据
lb=[];
ub=[];
% 非线性拟合
k0=[26.1    1.8    2.8    3429.0];  %  参数初始值
[k,resnorm,residual,exitflag] = ...
    lsqnonlin(@f,k0,[],[],[],x,yexp)           

y=18+k(1).*(1-exp(-k(2).*x))-k(3).*log(1+k(4).*x)  % 计算结果


% ------------------------------------------------------------------
function y=f(k,x,yexp)
y=18+k(1).*(1-exp(-k(2).*x))-k(3).*log(1+k(4).*x)-yexp;

%--------------------------------------------------------------------
计算结果如下:
k =

  1.0e+003 *

    0.0261    0.0018    0.0028    3.4290


resnorm =

    0.0259


residual =

    0.0000
   -0.0767
    0.1111
    0.0425
   -0.0769
计算值y =

   17.2400
   16.2333
   14.3211
   13.2025
   11.7931
9楼2014-04-22 19:21:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
10楼2014-04-22 19:51:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiaoqiia 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见