24小时热门版块排行榜    

查看: 3642  |  回复: 7

zheyi-1984

铜虫 (小有名气)

[求助] 关于使用lsqcurvefit进行最小二乘曲线拟合时候出现的误差巨大问题求助!!!

所编写程序如下:
需要输入的数据
%testinputdata
%Angular distribution input data
x=[(1*pi/180)1*pi/180)180*pi/180);
   (1*pi/180)1*pi/180)180*pi/180);
   (1*pi/180)1*pi/180)180*pi/180);];
y=ang180';
c0=[0.44 0.1 0];%所希望拟合数据的初始值猜测
lup=[1 1 1];  % 这里可以不用
ldown=[0 0 0];

拟合所用的函数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function F=fittingfunction(c,x)
x1=x(1,;
x2=x(2,;
x3=x(3,;
F=1+c(1)*(1/2)*(3*(cos(x1)).^2-1)+c(2)*(1/8)*(63*(cos(x2)).^5-70*(cos(x2)).^3+15*(cos(x2)))+c(3)*(1/16)*(231*(cos(x3)).^6-315*(cos(x3)).^4+105*(cos(x3)).^2-5);

主程序
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
testinputdata
[c,renorm]=lsqcurvefit(@fittingfunction,c0,x,y,ldown,lup)


数据y的具体数值如下:
432.566950000000    416.920840000000    428.946100000000    433.053000000000    422.072450000000    428.162070000000    437.013270000000    426.751340000000    429.561780000000    425.763280000000    439.139480000000    425.480800000000    429.461310000000    419.672230000000    420.245560000000    427.193010000000    421.941920000000    422.916680000000    419.172600000000    426.356640000000    417.627120000000    420.576520000000    419.312750000000    417.820550000000    412.241250000000    417.973460000000    421.155510000000    420.329720000000    424.538270000000    414.565690000000    419.184860000000    417.904280000000    423.277490000000    420.463540000000    421.824140000000    417.933560000000    414.354910000000    414.106710000000    422.038680000000    417.209890000000    422.252760000000    417.202880000000    417.861040000000    419.148860000000    415.500790000000    423.182760000000    410.352220000000    418.970570000000    414.258190000000    414.768140000000    421.373230000000    419.670000000000    417.689380000000    416.945940000000    418.924440000000    413.251710000000    421.376270000000    418.567780000000    416.737390000000    421.627380000000    410.248860000000    413.871680000000    412.041020000000    417.244790000000    416.846830000000    418.066840000000    408.823080000000    416.875210000000    432.661280000000    415.876350000000    410.174940000000    402.669780000000    413.330730000000    407.934270000000    404.469130000000    408.634240000000    409.460610000000    403.576070000000    413.147640000000    410.905870000000    417.493510000000    418.093370000000    408.392450000000    412.877850000000    412.443730000000    398.812310000000    409.211240000000    412.151020000000    413.395380000000    409.491270000000    413.395380000000    412.151020000000    409.211240000000    398.812310000000    412.443730000000    412.877850000000    408.392450000000    418.093370000000    417.493510000000    410.905870000000    413.147640000000    403.576070000000    409.460610000000    408.634240000000    404.469130000000    407.934270000000    413.330730000000    402.669780000000    410.174940000000    415.876350000000    432.661280000000    416.875210000000    408.823080000000    418.066840000000    416.846830000000    417.244790000000    412.041020000000    413.871680000000    410.248860000000    421.627380000000    416.737390000000    418.567780000000    421.376270000000    413.251710000000    418.924440000000    416.945940000000    417.689380000000    419.670000000000    421.373230000000    414.768140000000    414.258190000000    418.970570000000    410.352220000000    423.182760000000    415.500790000000    419.148860000000    417.861040000000    417.202880000000    422.252760000000    417.209890000000    422.038680000000    414.106710000000    414.354910000000    417.933560000000    421.824140000000    420.463540000000    423.277490000000    417.904280000000    419.184860000000    414.565690000000    424.538270000000    420.329720000000    421.155510000000    417.973460000000    412.241250000000    417.820550000000    419.312750000000    420.576520000000    417.627120000000    426.356640000000    419.172600000000    422.916680000000    421.941920000000    427.193010000000    420.245560000000    419.672230000000    429.461310000000    425.480800000000    439.139480000000    425.763280000000    429.561780000000    426.751340000000    437.013270000000    428.162070000000    422.072450000000    433.053000000000    428.946100000000    416.920840000000    432.566950000000    397.985250000000

运行程序后没有出现报错,出现结果如下:

Local minimum found.

Optimization completed because the size of the gradient is less than
the default value of the function tolerance.




c =

    1.0000    0.0000    1.0000


renorm =

  3.1256e+007

看这个彪悍的误差。。。。

拟合所得的曲线与实际数据简直是天地之差。。。

尝试过调整c的初始取值,不管怎么调整,结果不变。

尝试过把y数据归一化,拟合结果好看了那么一点点,但是还是差十万八千里,so黔驴技穷了。。。

刚接触matlab,不知道这种问题该如何解决?求大侠们帮助的说。

[ Last edited by zheyi-1984 on 2012-10-28 at 19:20 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zheyi-1984

铜虫 (小有名气)

额,不知道怎么把自动插入的表情符号改掉。。。
2楼2012-10-28 19:21:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zsy312

银虫 (小有名气)

代码应该写到"
CODE:
"到"

"之间, 不然可能会有笑脸, 代码也被打乱.
3楼2012-10-29 07:26:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zsy312

银虫 (小有名气)


xiegangmai: 金币+1, 谢谢参与 2012-10-29 20:09:38
代码应该写到:
中括号code中括号



另外一边也是 中括号/code中括号
之间, 不然可能会有笑脸, 代码也被打乱.我不能直接输入, 输入就成了楼上的情况了.
4楼2012-10-29 07:28:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai: 金币+1, 专家考核, 谢谢参与 2012-10-29 20:09:49
不好解决,cos都小于1,角度1度本来就梯度很小,再5次方梯度就更小了。
showmethemoney
5楼2012-10-29 11:28:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zheyi-1984

铜虫 (小有名气)

多谢楼上几位的建议,代码已经放入“”之间,“跪求”有心人帮助的说!
“所编写程序如下:
需要输入的数据
%testinputdata
%Angular distribution input data
x=[(1*pi/180)1*pi/180)180*pi/180);
   (1*pi/180)1*pi/180)180*pi/180);
   (1*pi/180)1*pi/180)180*pi/180);];
y=ang180';
c0=[0.44 0.1 0];%所希望拟合数据的初始值猜测
lup=[1 1 1];  % 这里可以不用
ldown=[0 0 0];

拟合所用的函数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function F=fittingfunction(c,x)
x1=x(1,;
x2=x(2,;
x3=x(3,;
F=1+c(1)*(1/2)*(3*(cos(x1)).^2-1)+c(2)*(1/8)*(63*(cos(x2)).^5-70*(cos(x2)).^3+15*(cos(x2)))+c(3)*(1/16)*(231*(cos(x3)).^6-315*(cos(x3)).^4+105*(cos(x3)).^2-5);

主程序
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
testinputdata
[c,renorm]=lsqcurvefit(@fittingfunction,c0,x,y,ldown,lup)


数据y的具体数值如下:
432.566950000000    416.920840000000    428.946100000000    433.053000000000    422.072450000000    428.162070000000    437.013270000000    426.751340000000    429.561780000000    425.763280000000    439.139480000000    425.480800000000    429.461310000000    419.672230000000    420.245560000000    427.193010000000    421.941920000000    422.916680000000    419.172600000000    426.356640000000    417.627120000000    420.576520000000    419.312750000000    417.820550000000    412.241250000000    417.973460000000    421.155510000000    420.329720000000    424.538270000000    414.565690000000    419.184860000000    417.904280000000    423.277490000000    420.463540000000    421.824140000000    417.933560000000    414.354910000000    414.106710000000    422.038680000000    417.209890000000    422.252760000000    417.202880000000    417.861040000000    419.148860000000    415.500790000000    423.182760000000    410.352220000000    418.970570000000    414.258190000000    414.768140000000    421.373230000000    419.670000000000    417.689380000000    416.945940000000    418.924440000000    413.251710000000    421.376270000000    418.567780000000    416.737390000000    421.627380000000    410.248860000000    413.871680000000    412.041020000000    417.244790000000    416.846830000000    418.066840000000    408.823080000000    416.875210000000    432.661280000000    415.876350000000    410.174940000000    402.669780000000    413.330730000000    407.934270000000    404.469130000000    408.634240000000    409.460610000000    403.576070000000    413.147640000000    410.905870000000    417.493510000000    418.093370000000    408.392450000000    412.877850000000    412.443730000000    398.812310000000    409.211240000000    412.151020000000    413.395380000000    409.491270000000    413.395380000000    412.151020000000    409.211240000000    398.812310000000    412.443730000000    412.877850000000    408.392450000000    418.093370000000    417.493510000000    410.905870000000    413.147640000000    403.576070000000    409.460610000000    408.634240000000    404.469130000000    407.934270000000    413.330730000000    402.669780000000    410.174940000000    415.876350000000    432.661280000000    416.875210000000    408.823080000000    418.066840000000    416.846830000000    417.244790000000    412.041020000000    413.871680000000    410.248860000000    421.627380000000    416.737390000000    418.567780000000    421.376270000000    413.251710000000    418.924440000000    416.945940000000    417.689380000000    419.670000000000    421.373230000000    414.768140000000    414.258190000000    418.970570000000    410.352220000000    423.182760000000    415.500790000000    419.148860000000    417.861040000000    417.202880000000    422.252760000000    417.209890000000    422.038680000000    414.106710000000    414.354910000000    417.933560000000    421.824140000000    420.463540000000    423.277490000000    417.904280000000    419.184860000000    414.565690000000    424.538270000000    420.329720000000    421.155510000000    417.973460000000    412.241250000000    417.820550000000    419.312750000000    420.576520000000    417.627120000000    426.356640000000    419.172600000000    422.916680000000    421.941920000000    427.193010000000    420.245560000000    419.672230000000    429.461310000000    425.480800000000    439.139480000000    425.763280000000    429.561780000000    426.751340000000    437.013270000000    428.162070000000    422.072450000000    433.053000000000    428.946100000000    416.920840000000    432.566950000000    397.985250000000

运行程序后没有出现报错,出现结果如下:

Local minimum found.

Optimization completed because the size of the gradient is less than
the default value of the function tolerance.




c =

    1.0000    0.0000    1.0000


renorm =

  3.1256e+007”
6楼2012-10-29 15:00:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zheyi-1984

铜虫 (小有名气)

引用回帖:
5楼: Originally posted by csgt0 at 2012-10-29 11:28:41
不好解决,cos都小于1,角度1度本来就梯度很小,再5次方梯度就更小了。

是的,我现在在想是不是我选取lsqcurvefit用来拟合本身不是很适合呢?因为是借鉴前人的工作,必须使用勒让德多项式...能有其他的建议吗?多谢!
7楼2012-10-29 15:03:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gilderf

金虫 (小有名气)

【答案】应助回帖

★ ★
xiegangmai: 金币+2, 谢谢应助 2012-11-04 19:37:16
lsqcurvefit有默认的精度,确定计算需要的精度后设置一下会有帮助。
如果改变函数结构能减低精度要求也可以试试。
8楼2012-11-04 15:19:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zheyi-1984 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 系统今天又提示维护了,估计离放榜不远了 +12 winnerche 2026-07-29 16/800 2026-08-04 08:18 by Equinoxhua
[有机交流] 一个有机合成实验室都需要哪些设备? 50+3 kf2781974 2026-07-31 10/500 2026-08-04 08:05 by 88817753
[教师之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 jRl3mE6ddZGq 2026-08-03 9/450 2026-08-04 07:46 by k7OM8YghWbkC
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 cu9Nq1xK233Z 2026-08-03 13/650 2026-08-04 07:30 by k7OM8YghWbkC
[教师之家] 基础研究怎么拉横向,学校到款任务越来越多,难以完成 拉横向,都有哪些途径啊 +9 锦衣卫寒战 2026-07-28 13/650 2026-08-04 07:21 by Ermito
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 cu9Nq1xK233Z 2026-08-03 6/300 2026-08-04 06:10 by k7OM8YghWbkC
[教师之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 cu9Nq1xK233Z 2026-08-03 9/450 2026-08-04 06:07 by k7OM8YghWbkC
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 jRl3mE6ddZGq 2026-08-03 6/300 2026-08-04 04:47 by k7OM8YghWbkC
[博后之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 cu9Nq1xK233Z 2026-08-03 8/400 2026-08-04 04:46 by k7OM8YghWbkC
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 cu9Nq1xK233Z 2026-08-03 7/350 2026-08-04 04:46 by k7OM8YghWbkC
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 cu9Nq1xK233Z 2026-08-03 8/400 2026-08-04 03:21 by k7OM8YghWbkC
[基金申请] 什么时候能放榜呀? +3 Jacob678 2026-08-03 3/150 2026-08-03 16:14 by gltch
[高分子] UV压敏胶开发 +3 ichall 2026-07-30 5/250 2026-08-03 14:40 by Sunrisepay
[基金申请] 面上提前没消息,有中的吗 +14 archvillain 2026-08-02 16/800 2026-08-03 12:23 by fuweiguochen
[基金申请] 面上再次挂了,太难了,躺也躺不了,倦也卷不过,小学校之殇! +19 低垂的野花 2026-07-31 25/1250 2026-08-03 09:25 by gy116024
[基金申请] 2026年国自然面上资助率 +16 布布和一二 2026-07-30 22/1100 2026-08-03 09:20 by gy116024
[基金申请] 微信指数没变化,科研之友没阅读 +15 wangze12014 2026-07-28 19/950 2026-08-02 20:05 by 蔡棒棒菂
[考博] 2027年申博 50+3 射雕英雄胜 2026-07-30 3/150 2026-08-02 09:36 by lfy8008
[高分子] HXDI做水性聚氨酯乳液,是不是特别容易出渣 15+3 yuyusuv 2026-07-29 3/150 2026-07-31 09:21 by huizingga
[基金申请] 你们的时间戳变了吗 +3 archvillain 2026-07-30 4/200 2026-07-30 18:53 by levinzhwen
信息提示
请填处理意见