Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-06-17, 13:53   #1
mj1018
初级会员
 
注册日期: 2008-06-15
年龄: 41
帖子: 5
声望力: 0
mj1018 正向着好的方向发展
默认 [求助]曲线拟合

已知方程y=a+b*cos(x-c)
给定y和x,怎么用matlab拟合出a,b,c啊
本人刚学matlab,还请各位高手帮忙啊:lovely:
mj1018 当前离线   回复时引用此帖
旧 2008-06-17, 15:56   #2
watcher
高级会员
 
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21
watcher 正向着好的方向发展
默认

将cos(x-c)展开,原式变为
y=a+b*cos(c)*cos(x)+b*sin(c)*sin(x)
假设A=a,B=b*cos(c),C=b*sin(c),Xc=cos(x),Xs=sin(x)那么又有
y=A+B*Xc+C*Xs=[1,Xc,Xs]*[A;B;C];
由于x,y已知,即y,Xc,Xs已知;对于多个采样,问题又变为
Y=X*[A;B;C];%方程1
其中,Y=[y1;y2;...]是列向量,X=[1,Xc1,Xs1;1,Xc2,Xs2;...]是n行三列矩阵,n是采样个数。
这时,原问题变为求解方程1,待求量为A,B,C。A,B,C的一般表达式为
[A;B;C]=IX*Y;
这里IX是矩阵X的广义逆。在matlab中函数LSCOV(...)用于解决最小二乘广义逆,写法为
[A;B;C]=lscov(X,Y);%基于最小二乘的广义逆,不知合不合LZ要求,其它广义逆函数请查找帮助
求得A,B,C后,即可唯一解出a,b,c
watcher 当前离线   回复时引用此帖
旧 2008-06-18, 09:33   #3
vincent
初级会员
 
注册日期: 2008-05-22
年龄: 41
帖子: 1
声望力: 0
vincent 正向着好的方向发展
默认

可以按照二楼的试一下
vincent 当前离线   回复时引用此帖
旧 2008-06-18, 23:58   #4
fanxing39
高级会员
 
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31
fanxing39 是一位成功的新星fanxing39 是一位成功的新星fanxing39 是一位成功的新星fanxing39 是一位成功的新星
默认

不错哦, 2楼的把 最小二乘法拟合,用的挺不错的嘛:redface:
fanxing39 当前离线   回复时引用此帖
旧 2008-06-23, 12:14   #5
mj1018
初级会员
 
注册日期: 2008-06-15
年龄: 41
帖子: 5
声望力: 0
mj1018 正向着好的方向发展
默认

厉害,谢谢!!
mj1018 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
How MATLAB Represents Pixel Colors TechnicalArticles MATLAB技术文章 0 2008-01-06 16:32
【求助】如何求解如下方程? woshizhuqiqi MATLAB论坛 1 2007-12-20 22:00
留学美国行李清单 labfans MATLAB新闻聚合 0 2007-11-20 15:15
【求助】如何计算离散曲线的曲率半径 sophiemarceau MATLAB论坛 0 2007-08-22 19:40


所有时间均为北京时间。现在的时间是 01:33


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.