| 查看: 713 | 回复: 1 | ||
[求助]
求解一个含约束的非线性参数拟合问题,方程为幂函数,请各位大神帮忙,多谢! 已有1人参与
|
|
y=[184,107,49,15366,575,19120,5504] x=[5.15,8.21,10.39,1.07,2.37,0.94,1.50] f(x)为指数函数:f(x)=a*x^b 含约束的非线性参数拟合的最优目标为: min{[y1-f(x1)]^2+[y2-f(x2)]^2+[y3-f(x3)]^2……[yn-f(xn)]^2} 约束条件为: 0.5yi<f(xi)<2yi 本题的目的是想求使目标函数最优的幂函数的参数a和b。 我初学matlab,看过一些含约束的曲线拟合的例子,都是对方差等参数进行约束,也看过一些参数拟合的例子,但是怎么添加约束没有找到,这个问题困扰我近1个月了,请各位帮帮忙,帮我解决一下这个问题,多谢! |
» 猜你喜欢
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有5人回复
论文终于录用啦!满足毕业条件了
已经有25人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有3人回复
自荐读博
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有5人回复
不自信的我
已经有5人回复
磺酰氟产物,毕不了业了!
已经有4人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
文刀星
木虫 (小有名气)
- 应助: 13 (小学生)
- 金币: 3651.2
- 散金: 500
- 红花: 5
- 帖子: 60
- 在线: 100.9小时
- 虫号: 3693767
- 注册: 2015-02-22
- 性别: GG
- 专业: 导航、制导与传感技术
【答案】应助回帖
感谢参与,应助指数 +1
|
拟合不太懂,不过这个问题可以用优化算法来算。只是你的数据太奇怪,找不到满足约束的a,b。程序如下,仅作参考。 A=[]; b=[]; Aeq=[]; beq=[]; lb=[0,0]; ub=[1000,1000]; options = gaoptimset('TolFun',1e-8,'TolCon',1e-8); X0 = ga(@my_obj,2,A,b,Aeq,beq,lb,ub,@my_con,options); %X0是用遗传算法优化出来的结果,可能不太好,进一步用下面的算法; X = fmincon(@my_obj,X0,A,b,Aeq,beq,lb,ub,@my_con); %将遗传算法得出的结果作为初值进行优化可得更精确的结果; function f=my_obj(x) % 目标函数 %输入参数x=[a,b]; % Y=[184,107,49,15366,575,19120,5504]; % X=[5.15,8.21,10.39,1.07,2.37,0.94,1.50]; %由于你的数据找不到满足约束的点,所以用下面的来替代,令a=1,b=2;这样可以看出算法是有效的。 X=1:7; Y=X.^2; fx=x(1)*(X.^x(2)); f=sum((Y-fx).^2); function [c,ceq]=my_con(x) %约束条件 % Y=[184,107,49,15366,575,19120,5504]; % X=[5.15,8.21,10.39,1.07,2.37,0.94,1.50]; X=1:7; Y=X.^2; fx=x(1)*(X.^x(2)); c1=0.5*Y'-fx'; c2=fx'-2*Y'; c=[c1;c2]; ceq=[]; |
2楼2015-09-29 10:01:30









回复此楼