| 查看: 703 | 回复: 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个月了,请各位帮帮忙,帮我解决一下这个问题,多谢! |
» 猜你喜欢
博士读完未来一定会好吗
已经有21人回复
导师想让我从独立一作变成了共一第一
已经有5人回复
到新单位后,换了新的研究方向,没有团队,持续积累2区以上论文,能申请到面上吗
已经有11人回复
读博
已经有4人回复
JMPT 期刊投稿流程
已经有4人回复
心脉受损
已经有5人回复
Springer期刊投稿求助
已经有4人回复
小论文投稿
已经有3人回复
Bioresource Technology期刊,第一次返修的时候被退回好几次了
已经有9人回复
申请2026年博士
已经有6人回复
文刀星
木虫 (小有名气)
- 应助: 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













回复此楼