24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2206  |  回复: 12

albertazhao

铜虫 (初入文坛)

送鲜花一朵
引用回帖:
10楼: Originally posted by csgt0 at 2012-07-17 17:47:21
问题在于定义f时是a,x,y的顺序,调用时是x,y,a的顺序,改成一致应该就可以了...

可以运行了,
为什么是这个顺序
另外我换了数据,为什么就得不到结果,结果还是初始值
cftool命令也不能得到稳定数值,运行一次得到的数值和运行第二次不同
我拟合公式
拟合方程-非线性回归-Matlab lsqnonlin函数 求解a b
y=316.7808*b*(1.1*sqrt(x)+a)/(0.48485*x+51.88261)
x       y
290        1.59E+16
230        1.63E+16
200        1.86E+16
160        1.77E+16
120        1.73E+16
80        1.45E+16
50        1.36E+16
30        1.20E+16
15        9.52E+15
7        8.28E+15
7777777777
11楼2012-07-19 13:59:50
已阅   回复此楼   关注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的回帖

albertazhao

铜虫 (初入文坛)

引用回帖:
12楼: Originally posted by csgt0 at 2012-07-19 15:20:03
要保证你使用时的顺序跟你定义时的顺序是一致的,前面用axy,后面就要用axy,前面用xya,后面就要用xya。当然,前面用xya,后面你也可以用yxa,但是y和x就反了,但是你不能用xay,因为你的a是2个元素,y是一个元素 ...


已经找到问题解决了,正是y值太大,无法运行初始值。我后面的次方去掉,然后拟合,求出参数后,再把b值增大,得到了理想的结果。
7777777777
13楼2012-07-19 16:39:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 albertazhao 的主题更新
信息提示
请填处理意见