定点(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写拟合曲线的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)