24小时热门版块排行榜    

查看: 2107  |  回复: 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的回帖

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的回帖
查看全部 10 个回答

王柳叶

木虫 (正式写手)



小木虫: 金币+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的回帖

王柳叶

木虫 (正式写手)


★ ★ ★ ★
小木虫: 金币+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的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 2026国自然函评费到账 +16 羊腰板 2026-08-21 17/850 2026-08-23 23:02 by tianxiaochun
[基金申请] 让我中一个面上吧! +12 大萍1987 2026-08-20 15/750 2026-08-23 20:44 by 大萍1987
[基金申请] 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
[基金申请] 今天放榜吗? +15 布布和一二 2026-08-19 16/800 2026-08-23 09:55 by 张春生
[基金申请] 范进中举一文的中心思想 +3 炎黄贵胄 2026-08-22 4/200 2026-08-22 20:02 by mycsru
[基金申请] 人气不行了 +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
[基金申请] 建议基金发布提前给出明确的时间点 +10 kulium 2026-08-21 13/650 2026-08-21 21:58 by alongwaytogo
[基金申请] 今日不放榜?网传国自然预计 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 期刊论文帮手
[基金申请] 今天放榜没戏了吧 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
[基金申请] 时间戳变了,能看出什么问题? +18 基诺咪客 2026-08-17 23/1150 2026-08-20 17:19 by Godzela
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
信息提示
请填处理意见