24小时热门版块排行榜    

查看: 923  |  回复: 2

yiran909

至尊木虫 (知名作家)

孤独的跑者

[交流] matlab最小二乘曲线约束拟合编程问题 已有1人参与

各位老师,给指导下,我编写的matlab最小二乘曲线有约束拟合
其中一个约束条件a(1)+a(2)+a(3)=1 这个约束条件不知道该怎么设置
帮看看程序中的问题,编译通不过,谢谢
function f=polyfun(a,x)%x是独立变量应变,a是待定系数
f=a(1)*u(1)+a(2)*v(1)+a(3)*w(1)+a(4)*x^a(5)+a(6);%这个函数定义的是否正确呢?
end

clear;
clc;
%多晶拟合单晶体积分数
x=[0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14];% x data
y=[58.63 68.47 79.80 92.49 102.40 113.67 124.95 134.85 146.86 156.03 163.77 174.41 182.15 ];% y data
u=[22.59 31.76 40.24 48.72 56.46 63.53 71.32 78.38 84.02 89.65 95.34 99.55 104.51];%[411]
v=[51.56 69.22 84.02 99.55 110.83 122.84 131.32 142.59 147.54 153.91 160.24 164.50 168.04];%[100]
w=[80.48 115.09 141.22 168.22 195.58 218.86 242.83 264.75 281.71 297.19 312.05 322.64 331.80];%[111]
a0=[0.2,0.5,0.3,50,0.3,80]; % initial values
lb=[0 0 0 0 0 0 ];
ub=[1 1 1 inf inf inf];
%a(1)+a(2)+a(3)=1 这个约束条件不知道该怎么设置
a=lsqcurvefit(@polyfun,a0,x,y,lb,ub)%help lsqcurvefit查看最小二乘拟合函数的用法
f=polyfun(a,x);
plot(x,y,'*',x,f,'r-');
subs(a)%输出函数系数值
回复此楼

» 猜你喜欢

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

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

dingd

铁杆木虫 (职业作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
约束拟合问题,1stOpt倒是很简单方便:
CODE:
Parameter a(6)=[0,];
Variable x,y,u,v,w;
Function y=a1*u+a2*v+a3*w+a4*x^a5+a6;
         a1+a2+a3=1;
Data;
x=[0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14];
y=[58.63 68.47 79.80 92.49 102.40 113.67 124.95 134.85 146.86 156.03 163.77 174.41 182.15 ];
u=[22.59 31.76 40.24 48.72 56.46 63.53 71.32 78.38 84.02 89.65 95.34 99.55 104.51];
v=[51.56 69.22 84.02 99.55 110.83 122.84 131.32 142.59 147.54 153.91 160.24 164.50 168.04];
w=[80.48 115.09 141.22 168.22 195.58 218.86 242.83 264.75 281.71 297.19 312.05 322.64 331.80];

均方差(RMSE):0.860758921413859
残差平方和(SSE):9.63177697031615
相关系数(R): 0.999759586120821
相关系数之平方(R^2): 0.999519230040476
确定系数(DC): 0.999519226423277
卡方系数(Chi-Square): 0.0417908673148741
F统计(F-Statistic): 2911.97367696933
约束条件: a1+a2+a3-1 = -1.21055721E-010

参数        最佳估算
----------        -------------
a1        0.999999999878933
a2        1.1216895450583E-14
a3        8.18442542490143E-26
a4        662.707342823122
a5        1.34795089754783
a6        31.6077209708818
matlab最小二乘曲线约束拟合编程问题
c108.jpg

» 本帖已获得的红花(最新10朵)

2楼2014-07-09 23:12:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yiran909

至尊木虫 (知名作家)

孤独的跑者

送红花一朵
引用回帖:
2楼: Originally posted by dingd at 2014-07-09 23:12:11
约束拟合问题,1stOpt倒是很简单方便:

Parameter a(6)=;
Variable x,y,u,v,w;
Function y=a1*u+a2*v+a3*w+a4*x^a5+a6;
         a1+a2+a3=1;
Data;
x=;
y=;
u=;
v=;
w=;

均方差(RMSE):0.8607589214 ...

谢谢,我学习下。
3楼2014-07-10 09:09:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 不惑可乐 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见