matlab 离散点拟合,拟合成圆,并能确定圆心坐标和半径对应的长度

matlab 离散点拟合,拟合成圆,并能确定圆心坐标和半径对应的长度,第1张

定点(2,3)半径203,又边要超出边界003,画面调整成为高度(3-203),宽2,最右下角的点就是圆的一边顶点,再画面调整为高3,宽2,这个点是圆心,然后调整画面为高3宽(2+203),这个时候最右下角的点是圆的右面顶点,现在圆心定啦,上顶点和右顶点也定啦,知道这3个点就能画出你想要的圆

%% x,y为题目中数据

plot(x, y, '')

hold on

A = [x; y; ones(size(x))];

abc = -(AA')\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, 2pi, 100);

plot(ox+Rcos(t), oy+Rsin(t))

x=-10:10;%x的取值范围

n=length(x)%x的向量长度

a=2+rand(1,n);%产生一个以2~3之间的随机数组

b=5+rand(1,n);%产生一个以5~6之间的随机数组

y=a+bx^2

;%产生y

plot(x,y,'o')%画图,蓝色圈圈

pp=polyfit(x,y,2)%2次拟合,pp为回归系数

xx=-10:01:10;

%再产生新的xx

yy=polyval(pp,xx);%通过回归系数和xx得到yy

hold

on%

在同一个地方画图

plot(xx,yy,'r')%用回归系数和xx作图,红色

图形见:

可以做到!!关于参数问题 help之

我一般喜欢使用nlinfit

非线性拟合,我用过很多次发现要用好她

的关键在于你要找到一个很好的初值

举个例子:

椭圆的方程可以是

ax^2+by^2+cxy+dx+ey+f=0;

发现其实双曲线,抛物线和他的一样

所以你在选取初值的时候最起码初值带入后

是个椭圆,

不然你拟合出来不仅仅是效果差,可能就变质

你说的情况其实是解方程了(四个未知数四个方程)

对于更多的数据:

先编写函数

function f=ffun(a,x)

f=a(1)x(:,1)+a(2)x(:,1)^2+a(3)x(:,2)+a(4)x(:,2)^2;

其余运行

x=[p,c];%p,c为列响量,f也为列向量

a0=[1,1,1,1];%初值取好点效果更好

a=nlinfit(x,f,'ffun',a0)

MATLAB 可以根据三组数据拟合出 三维图像,得出函数么

如果要表示范围,可以使用 fileExchange 网上提供的 最小体积椭球包含的拟合函数(MinVolEllipse) 或者 凸多面体包含的拟合函数(convhull)。

首先,有多组(十组以上)的x,y,z值

其次,列出球的方程的一般式或标准式方程,如(x-a)²+(y-b)²+(z-c)²=R²

再次,用Matlab的 nlinfit函数进行拟合,得到a,b,c,R值

最后,求得球的方程表达式

以上就是关于matlab 离散点拟合,拟合成圆,并能确定圆心坐标和半径对应的长度全部的内容,包括:matlab 离散点拟合,拟合成圆,并能确定圆心坐标和半径对应的长度、matlab最小二乘法拟合圆程序、用Matlab写拟合曲线的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10110812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存