24小时热门版块排行榜    

查看: 2691  |  回复: 12

albertazhao

铜虫 (初入文坛)

[求助] 非线性回归中,函数表达式错误Matrix dimensions must agree????

非线性回归中,函数表达式错误Matrix dimensions must agree????
怎么回事呢?急急急!!!
程序如下
x =
    1.1200
    1.2400
    1.3000
    1.1700
    1.1600
    0.9760
    0.8090
    0.8100
    0.4440
    0.4290
y =
    1.5900
    1.6300
    1.8600
    1.7700
    1.7300
    1.4500
    1.3600
    1.2000
    0.9520
    0.8280
ab=[1 2];
f=inline('y-(a(2)*(1.1*sqrt(x)+a(1))./(0.5*x+52))','x','y','a');
[a,r]=lsqnonlin(f,ab,[ ],[ ],[ ],x,y)


albertazhao@gmail.com
回复此楼
7777777777
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有3个 )

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★
albertazhao: 回帖置顶 2012-07-19 14:06:09
albertazhao: 金币+5, ★★★很有帮助 2012-07-19 14:06:35
CODE:
function alb
x =[ 1.1200;1.2400;1.3000;1.1700;1.1600;0.9760;0.8090;0.8100;0.4440;0.4290];
y =[ 1.5900;1.6300;1.8600;1.7700;1.7300;1.4500;1.3600;1.2000;0.9520;0.8280];
ab=[1 2];
f=inline('y-(a(2)*(1.1*sqrt(x)+a(1))./(0.5*x+52))','x','y','a');
[a,r]=lsqnonlin(@(a)f(x,y,a),ab)
end

showmethemoney
9楼2012-07-17 17:37:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖


臭水沟: 金币+1, 谢谢交流~~ 2012-07-17 22:29:55
albertazhao: 回帖置顶 2012-07-19 14:01:35
引用回帖:
8楼: Originally posted by albertazhao at 2012-07-17 17:30:59
ab=;
f=inline('y-(a(2)*(1.1*sqrt(x)+a(1))./(0.5*x+52))','a','x','y');
=lsqnonlin(@(a)f(x,y,a),ab)   
我的运行错误,为什么?
Error in inline expression ==> y-(a(2)*(1.1*sqrt(x)+a(1))./(0.5*x+5 ...

问题在于定义f时是a,x,y的顺序,调用时是x,y,a的顺序,改成一致应该就可以了

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

showmethemoney
10楼2012-07-17 17:47:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

★ ★ ★
albertazhao: 回帖置顶 2012-07-19 16:37:15
xiegangmai: 金币+3, 谢谢应助! 2012-07-20 00:19:24
引用回帖:
11楼: Originally posted by albertazhao at 2012-07-19 13:59:50
可以运行了,
为什么是这个顺序
另外我换了数据,为什么就得不到结果,结果还是初始值
cftool命令也不能得到稳定数值,运行一次得到的数值和运行第二次不同
我拟合公式
拟合方程-非线性回归-Matlab lsqnonlin ...

要保证你使用时的顺序跟你定义时的顺序是一致的,前面用axy,后面就要用axy,前面用xya,后面就要用xya。当然,前面用xya,后面你也可以用yxa,但是y和x就反了,但是你不能用xay,因为你的a是2个元素,y是一个元素。
拟合不出来是因为你的y太大了,ab的变化对y的影响很小。需要自己改写函数

更详细的在matlab帮助里搜索Local Minimum Possible就可以看到了
showmethemoney
12楼2012-07-19 15:20:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

mei3014

金虫 (正式写手)

木有头屑

哪个是自变量?
一勤天下无难事,处世无难忍最高。
2楼2012-07-17 12:00:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

albertazhao

铜虫 (初入文坛)

引用回帖:
2楼: Originally posted by mei3014 at 2012-07-17 12:00:38
哪个是自变量?

http://zhidao.baidu.com/question/451848649.html#replyask-62449207
不能附图,问题在这里详细描述
我在百度知道悬赏提问了。
7777777777
3楼2012-07-17 13:28:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

albertazhao

铜虫 (初入文坛)

引用回帖:
3楼: Originally posted by albertazhao at 2012-07-17 13:28:50
http://zhidao.baidu.com/question/451848649.html#replyask-62449207
不能附图,问题在这里详细描述
我在百度知道悬赏提问了。...

General model:
     f(x) = b*(1.1*sqrt(x)+a)/(0.5*x+52)
Coefficients (with 95% confidence bounds):
       a =     -0.2423  (-0.3988, -0.08585)
       b =       92.99  (75.48, 110.5)

Goodness of fit:
  SSE: 0.05727
  R-square: 0.9482
  Adjusted R-square: 0.9417
  RMSE: 0.08461
这个是用Matlab 的cftool命令做的。是交互式,我想知道用程序哪里出错,怎么解决。
7777777777
4楼2012-07-17 13:54:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

albertazhao

铜虫 (初入文坛)

引用回帖:
2楼: Originally posted by mei3014 at 2012-07-17 12:00:38
哪个是自变量?

用1stOpt:

Function y=a2*(1.1*sqrt(x)+a1)/(0.5*x+52);
Data;
x=1.1200,1.2400,1.3000,1.1700,1.1600,0.9760,0.8090,0.8100,0.4440,0.4290;
y=1.5900,1.6300,1.8600,1.7700,1.7300,1.4500,1.3600,1.2000,0.9520,0.8280;
复制代码
均方差(RMSE): 0.075677672378937
残差平方和(SSE): 0.0572711009669372
相关系数(R): 0.973733426792748
相关系数之平方(R^2): 0.948156786453548
决定系数(DC): 0.948156780435072
卡方系数(Chi-Square): 0.0203090417650265
F统计(F-Statistic): 154.311404020362

参数        最佳估算
----------        -------------
a2        92.9877941634666
a1        -0.242321929529164
7777777777
5楼2012-07-17 13:55:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

albertazhao

铜虫 (初入文坛)

引用回帖:
5楼: Originally posted by albertazhao at 2012-07-17 13:55:18
用1stOpt:

Function y=a2*(1.1*sqrt(x)+a1)/(0.5*x+52);
Data;
x=1.1200,1.2400,1.3000,1.1700,1.1600,0.9760,0.8090,0.8100,0.4440,0.4290;
y=1.5900,1.6300,1.8600,1.7700,1.7300,1.4500,1.3600,1.2000,0 ...

这个也可以公式变形,简化为直线方程进行拟合,结果如下y(0.5x+52)=1.1b*sqrt(x)+ab
b = 93.0213
a = -0.2426
我想知道lsqnonlin函数问题出在哪里。
7777777777
6楼2012-07-17 14:23:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
臭水沟: 金币+2, 谢谢交流~~ 2012-07-17 22:29:45
[a,r]=lsqnonlin(@(a)f(x,y,a),ab,[ ],[ ],[ ])



a =

   -0.2423   92.9878


r =

    0.0573
showmethemoney
7楼2012-07-17 16:05:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

albertazhao

铜虫 (初入文坛)

引用回帖:
7楼: Originally posted by csgt0 at 2012-07-17 16:05:29
=lsqnonlin(@(a)f(x,y,a),ab,,,)



a =

   -0.2423   92.9878


r =

    0.0573

ab=[1 2];
f=inline('y-(a(2)*(1.1*sqrt(x)+a(1))./(0.5*x+52))','a','x','y');
[a,r]=lsqnonlin(@(a)f(x,y,a),ab)   
我的运行错误,为什么?
Error in inline expression ==> y-(a(2)*(1.1*sqrt(x)+a(1))./(0.5*x+52))
Matrix dimensions must agree.

可否给我你的完整程序,谢谢
7777777777
8楼2012-07-17 17:30:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 albertazhao 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 估计是周四 +3 archvillain 2026-08-18 3/150 2026-08-21 01:48 by jnhyjjm
[基金申请] 基金啊基金 +3 longfie172 2026-08-20 3/150 2026-08-21 00:04 by wuchongjun
[基金申请] 科研孤儿太难了 +14 我4大白菜 2026-08-20 15/750 2026-08-20 22:33 by 袁向阳007
[基金申请] 言之凿凿,明天官网会通知放榜? +15 医学老男孩 2026-08-20 17/850 2026-08-20 20:35 by CaoLG
[基金申请] 时间戳又变了 +12 wuchongjun 2026-08-20 17/850 2026-08-20 20:05 by spzhao
[基金申请] 时间戳变了,能看出什么问题? +18 基诺咪客 2026-08-17 23/1150 2026-08-20 17:19 by Godzela
[基金申请] 只有每年这种时候来逛逛小木虫 +21 yaoyewhu2008 2026-08-20 22/1100 2026-08-20 17:03 by yaoyewhu2008
[基金申请] 放榜前的不淡定 40+3 snowwithsea 2026-08-19 12/600 2026-08-20 15:56 by lfy8008
[基金申请] 今天基金会出结果吗?20260819 +14 kkkl_v 2026-08-19 15/750 2026-08-20 08:21 by sunzitan
[基金申请] filecode,4个jtjc了 +11 ziyangfang 2026-08-19 13/650 2026-08-19 21:28 by aasahr
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +5 瞬息宇宙 2026-08-15 5/250 2026-08-19 20:23 by super2002521
[基金申请] 今天放榜没戏了吧 +4 yuleib84 2026-08-19 5/250 2026-08-19 19:52 by hhs666
[基金申请] filecode=后面第一个是大写字母 +10 wangze12014 2026-08-14 12/600 2026-08-19 16:56 by 苦难博士
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 什么时候开奖? +6 CrisMessi 2026-08-18 6/300 2026-08-19 08:06 by Equinoxhua
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
信息提示
请填处理意见