24小时热门版块排行榜    

查看: 2105  |  回复: 9

tjufishs

木虫 (初入文坛)


[交流] 求助,一自变量二因变量拟合matlab该怎么实现呢?

RT,
例如y1=∑(ai*(x^2*ti^2)/(1+x^2*ti*2))
       y2=∑(ai*(x*ti)/(1+x^2*ti*2))
其中ai是未知量,x、y1、y2、ti已知,两个函数共用ai,用matlab该怎么实现呢?

[ Last edited by tjufishs on 2013-4-7 at 14:34 ]
回复此楼

» 猜你喜欢

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

» 抢金币啦!回帖就可以得到:

查看全部散金贴

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

王柳叶

木虫 (正式写手)



小木虫: 金币+0.5, 给个红包,谢谢回帖
请楼主再详细一些,没有看懂你的帖子,越详细越好。
2楼2013-04-07 13:02:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjufishs

木虫 (初入文坛)


引用回帖:
2楼: Originally posted by 王柳叶 at 2013-04-07 13:02:36
请楼主再详细一些,没有看懂你的帖子,越详细越好。

额,就是说我测了一组数据,x是频率,y1和y2是相应的模量,ti是已知的
现在想做一组拟合,其中
y1=∑(ai*(x^2*ti^2)/(1+x^2*ti*2))
y2=∑(ai*(x*ti)/(1+x^2*ti*2))
这两个方程中想要求得得系数ai是共用的,您明白我的意思吗?
非常感谢

[ Last edited by tjufishs on 2013-4-7 at 14:34 ]
3楼2013-04-07 14:32:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

crown202

禁虫 (正式写手)


xiegangmai: 金币+1, 谢谢参与! 2013-04-08 23:45:44
本帖内容被屏蔽

4楼2013-04-08 09:44:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

王柳叶

木虫 (正式写手)


★ ★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
xiegangmai: 金币+3, 谢谢参与! 2013-04-08 23:45:53
引用回帖:
3楼: Originally posted by tjufishs at 2013-04-07 14:32:59
额,就是说我测了一组数据,x是频率,y1和y2是相应的模量,ti是已知的
现在想做一组拟合,其中
y1=∑(ai*(x^2*ti^2)/(1+x^2*ti*2))
y2=∑(ai*(x*ti)/(1+x^2*ti*2))
这两个方程中想要求得得系数ai是共用的 ...

可以用Matlab 进行计算
ai为未知数
假设一个ai,计算出一个方差
OF=(y11-y1)^2+(y22-y2)^2
使得OF最小
这个可以使用Matlab 的Fmincon 函数或者lsqnonlin函数
5楼2013-04-08 11:06:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snipher950

木虫 (正式写手)


★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
xiegangmai: 金币+2, 谢谢参与! 2013-04-08 23:46:00
这个很简单,可以换位思考一下,把函数值变成y1-y2就可以了嘛!然后就是普通的最小二乘拟合可以解决的了。
6楼2013-04-08 14:53:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjufishs

木虫 (初入文坛)


引用回帖:
5楼: Originally posted by 王柳叶 at 2013-04-08 11:06:58
可以用Matlab 进行计算
ai为未知数
假设一个ai,计算出一个方差
OF=(y11-y1)^2+(y22-y2)^2
使得OF最小
这个可以使用Matlab 的Fmincon 函数或者lsqnonlin函数...

y1与y2数量级不太一样,可不可以写成
OF=[(y11-y1)/y11]^2+[(y22-y2)/y22]^2 ?

非常感谢!

另外弱弱问一下,怎么把悬赏的金币给你啊。。。。?
7楼2013-04-09 17:27:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjufishs

木虫 (初入文坛)


引用回帖:
6楼: Originally posted by snipher950 at 2013-04-08 14:53:31
这个很简单,可以换位思考一下,把函数值变成y1-y2就可以了嘛!然后就是普通的最小二乘拟合可以解决的了。

y1和y2数量级不太一样,而且误差会不会比较大?
8楼2013-04-09 17:27:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjufishs

木虫 (初入文坛)


引用回帖:
5楼: Originally posted by 王柳叶 at 2013-04-08 11:06:58
可以用Matlab 进行计算
ai为未知数
假设一个ai,计算出一个方差
OF=(y11-y1)^2+(y22-y2)^2
使得OF最小
这个可以使用Matlab 的Fmincon 函数或者lsqnonlin函数...

您好,我按您的方法写了一下,但是遇到了一个错误
辅助函数:
function y = minfun(x)
double G1 = 0;
double G2 = 0;
double y = 0;

for i = 1:1:35
%   for j = 1:1:5
%     G1=G1+x(j)*(f(i)*x(j+5))^2/(1+(f(i)*x(j+5))^2);
%     G2=G2+x(j)*(f(i)*x(j+5))/(1+(f(i)*x(j+5))^2);
%   end

G1=x(1)*(f(i)*x(6))^2/(1+(f(i)*x(6))^2)+x(2)*(f(i)*x(7))^2/(1+(f(i)*x(7))^2)+x(3)*(f(i)*x(8))^2/(1+(f(i)*x(8))^2)+x(3)*(f(i)*x(9))^2/(1+(f(i)*x(9))^2)+x(5)*(f(i)*x(10))^2/(1+(f(i)*x(10))^2);
G1=x(1)*(f(i)*x(6))/(1+(f(i)*x(6))^2)+x(2)*(f(i)*x(7))/(1+(f(i)*x(7))^2)+x(3)*(f(i)*x(8))/(1+(f(i)*x(8))^2)+x(3)*(f(i)*x(9))/(1+(f(i)*x(9))^2)+x(5)*(f(i)*x(10))/(1+(f(i)*x(10))^2);

y = y + ((G11(i)-G1)/G11(i))^2 + ((G22(i)-G2)/G2(i))^2;
end

主函数:
x0 = [10000 10000 10000 10000 10000 0.01 0.1 1 10 100];
lb = [0 0 0 0 0 0.008 0.08 0.8 8 80];
ub = [inf inf inf inf inf 0.03 0.3 3 20 120];
options = optimset('Display','iter','GradObj','on');
%[x,fval] = fmincon(@minfun,x0,[],[],[],[],lb,ub,[],options);
x = fmincon(@minfun,x0,[],[],[],[],lb,ub,[],options);
其中
f=[0.0100000000000000
0.0129000000000000
0.0165000000000000
0.0212000000000000
0.0273000000000000
0.0350000000000000
0.0450000000000000
0.0578000000000000
0.0742000000000000
0.0954000000000000
0.123000000000000
0.158000000000000
0.203000000000000
0.260000000000000
0.334000000000000
0.429000000000000
0.551000000000000
0.708000000000000
0.909000000000000
1.17000000000000
1.50000000000000
1.93000000000000
2.47000000000000
3.18000000000000
4.08000000000000
5.25000000000000
6.74000000000000
8.66000000000000
11.1000000000000
14.3000000000000
18.4000000000000
23.6000000000000
30.3000000000000
38.9000000000000
50
]
G11=[3220
5090
7230
9400
12300
15300
20900
26300
32800
40400
49000
59000
71900
82000
95900
107000
121000
137000
154000
163000
175000
202000
200000
236000
261000
272000
285000
317000
319000
353000
361000
384000
395000
411000
425000
]
G22=[12100
14500
17200
21300
25500
30600
36200
41300
46000
52200
57200
63200
68000
74300
77600
80900
88300
90600
95300
104000
116000
114000
88600
106000
130000
154000
134000
134000
136000
155000
150000
153000
184000
197000
201000
]
运行之后遇到问题
Error using minfun
Too many output arguments.

Error in fmincon (line 640)
      [initVals.f,initVals.g] = feval(funfcn{3},X,varargin{:});

Error in mintest (line 6)
x = fmincon(@minfun,x0,[],[],[],[],lb,ub,[],options);

Caused by:
    Failure in initial user-supplied objective function evaluation.
    FMINCON cannot continue.
请问是什么问题呢?多谢!!
9楼2013-04-10 17:14:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snipher950

木虫 (正式写手)



小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
8楼: Originally posted by tjufishs at 2013-04-09 17:27:42
y1和y2数量级不太一样,而且误差会不会比较大?...

数量级不一样是可以处理的啊……
误差为什么会扩大呢?没有理由啊!
10楼2013-04-12 17:41:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tjufishs 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +4 process2012 2026-08-23 5/250 2026-08-23 19:58 by jurkat.1640
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 什么时候开奖? +9 CrisMessi 2026-08-18 10/500 2026-08-23 12:03 by 丶昵称占用
[基金申请] 2026国自然函评费到账 +15 羊腰板 2026-08-21 16/800 2026-08-23 10:45 by process2012
[基金申请] 今天放榜吗? +15 布布和一二 2026-08-19 16/800 2026-08-23 09:55 by 张春生
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[基金申请] filecode,4个jtjc了 +13 ziyangfang 2026-08-19 16/800 2026-08-22 17:08 by WH3796
[基金申请] 人气不行了 +8 fansofjerry 2026-08-21 8/400 2026-08-22 16:30 by zyqchem
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 放榜前的不淡定 40+4 snowwithsea 2026-08-19 14/700 2026-08-21 23:51 by cratir
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +16 医学老男孩 2026-08-20 20/1000 2026-08-21 21:13 by Ldrop2023
[基金申请] 科研孤儿太难了 +17 我4大白菜 2026-08-20 18/900 2026-08-21 20:57 by zhangev
[基金申请] 感觉是下周放榜了 +7 angus9576 2026-08-17 12/600 2026-08-21 13:38 by weiyin
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[论文投稿] 投稿咨询 +5 wwm09 2026-08-17 7/350 2026-08-21 10:11 by 期刊论文帮手
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 估计是周四 +3 archvillain 2026-08-18 3/150 2026-08-21 01:48 by jnhyjjm
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见