matlab最小二乘法拟合圆程序

已知的坐标点x=[-49.9622-43.950-35.2174-17.7505-0.056717.296831.134243.3837];y=[1.2313-24.06... 已知的坐标点
x=[-49.9622 -43.950 -35.2174 -17.7505 -0.0567 17.2968 31.1342 43.3837];
y=[1.2313 -24.0672 -35.709 -46.4552 -50.0373 -47.1269 -39.0672 -25.4104];
参考程序:
http://wenku.baidu.com/link?url=vkZ6bDPV8rNH4Og-_h5YrpEnrWhYbPrPrnu1Db9ZqtSA7dLcvpPdwtgHceOK4uCeCw9U_-CV7-32NYX_t0koJpi4D539__IjEFiE-eLYKfi
说明:所给的参考程序能够计算出圆的圆心,半径
要求:1.计算出圆的圆心,半径
2.能得到拟合圆的图形,并且图上显示已知的坐标点;
3.完整的程序
如果说的不清楚,劳烦追问,谢谢各位大神,完成后追加悬赏
展开
 我来答
兔子和小强
2015-06-12 · TA获得超过6945个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1380万
展开全部
%% x,y为题目中数据
plot(x, y, '*')
hold on

A = [x; y; ones(size(x))];
abc = -(A*A')\sum(A*[x'.^2 y'.^2], 2)
ox = -abc(1)/2;
oy = -abc(2)/2
R = sqrt(ox^2+oy^2-abc(3))

plot(ox, oy, 'or')
t = linspace(0, 2*pi, 100);
plot(ox+R*cos(t), oy+R*sin(t))

追问
你好,这个程序是最小二乘法的吗,感觉和提供的程序差别很大啊
追答
是最小二乘法,就按着你所发的word文档写的。
MATLAB擅长的是矩阵运算,那word里的程序简直是把MATLAB当做C语言来用。解(2,3,4)方程组abc = -(A*A')\sum(A*[x'.^2 y'.^2], 2)一句话即可。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式