例10.2圆锥截面方程的拟合 设测量了圆周上7个点,其x,y坐标如下: x=-3.000 -2.000-1.00001.000 2.0003.000 y=3.03 3.90 4.354.504.404.02 3.26 试求出此圆锥截面的方程,并求其最大最小直径。 列出程序如下: x=[-3:3]'; 号把x,y赋值为列向量 y=[3.03,3.90,4.35,4.50,4.40,4.02,3.26]': A=[x.*y,y.*y,x,y,ones (size(x))]B=-x.^2; 号列出系数矩阵A和B c=inv(A'*A)*A'*B, 号解超定方程得出c
例10.2 圆锥截面方程的拟合 设测量了圆周上7个点,其x,y坐标如下: x = -3.000 -2.000 -1.000 0 1.000 2.000 3.000 y= 3.03 3.90 4.35 4.50 4.40 4.02 3.26 试求出此圆锥截面的方程,并求其最大最小直径。 列出程序如下: x=[-3:3]'; % 把x,y赋值为列向量 y=[3.03,3.90,4.35,4.50,4.40,4.02,3.26]'; A=[x.*y, y.*y, x, y, ones(size(x))]; B=-x.^2; % 列出系数矩阵A和B c=inv(A'*A)*A'*B, % 解超定方程得出c
程序运行结果 ·将程序运行生成的参数写出,应为: -9.09009.1809-3.0000 3.0300 9 -7.800015.2100 -2.0000 3.9000 -4 0.0050 -4.350018.9225 -1.0000 4.3500 1 0.9214 A= 0 20.2500 0 4.5000 1 B= 0 C= -0.2228 4.400019.36001.0000 4.4000 -1 -0.4050 8.040016.16042.0000 4.0200 1 -4 -16.8537 9.780010.62763.0000 3.2600 -9 ·即截面的方程为: x2+0.0050xy+0.9214y2-0.2228x-0.4050y-16.8537=0
程序运行结果 • 将程序运行生成的参数写出,应为: • 即截面的方程为: -9.0900 9.1809 -3.0000 3.0300 1 -7.8000 15.2100 -2.0000 3.9000 1 -4.3500 18.9225 -1.0000 4.3500 1 0 20.2500 0 4.5000 1 4.4000 19.3600 A = 1.0000 4.4000 1 8.0400 16.1604 2.0000 4.0200 1 9.7800 10.6276 3.0000 3.2600 1 -9 -4 -1 0 -1 -4 -9 B = 0.0050 0.9214 -0.2228 -0.4050 -16.8537 c = 2 2 x xy y x y + + = 0.0050 0.9214 -0.2228 -0.4050 -16.8537 0
例10.2曲线 ezplot(x2+0.005*x*y+0.9214*y2-0.2228*x-0.4050*y-16.8537) % 画圆锥曲线 hold on,plot(x,y,'x') %画测量点 grid on,axis equal %x,y两方向取同样比例尺 拟合的图形和给定的测量点, 如图所示。从工程角度看, 0 这样的测量点布局对拟合 精度不大有利。 X+0.005xy+0.9214y 0.22280.4050y-16537=0
例10.2 曲线 ezplot('x^2+0.005*x*y+0.9214*y^2-0.2228*x-0.4050*y-16.8537') % 画圆锥曲线 hold on, plot(x,y,'x') % 画测量点 • grid on, axis equal % x,y两方向取同样比例尺 拟合的图形和给定的测量点, 如图所示。从工程角度看, 这样的测量点布局对拟合 精度不大有利
估计圆直径的方法 ·设圆周方程为: (x-C)2+y-C2)2=r2 C1,c2为圆心的坐标,为半径。整理上述方程,得到 2xC,+2yC2+(r2-C2-c22)=2xC+2yC2+C3=x2+y2 用n个测量点坐标(x,y)代入,得到 2x21 2+2 2X2 2y2 →Ac=B ·这是关于三个未知数的个线性方程,所以是一个超定 问题。解出就可得知这个最小二乘圆的圆心坐标和半 径r的值: r=vc;+c2+c
估计圆直径的方法 • 设圆周方程为: c1 ,c2为圆心的坐标,r为半径。整理上述方程,得到 • 用n个测量点坐标(xi,yi)代入,得到 • 这是关于三个未知数的n个线性方程,所以是一个超定 问题。解出就可得知这个最小二乘圆的圆心坐标和半 径r的值: 2 2 2 1 2 ( ) ( ) x c y c r − + − = 2 2 2 2 2 2 2 ( ) 2 2 1 2 1 2 1 2 3 xc yc r c c xc yc c x y + + − − = + + = + 2 2 1 1 1 1 1 2 2 2 2 2 2 2 3 2 2 2 2 1 2 2 1 2 2 1 n n n n x y x y c x y x y c c x y x y + + = + Ac = B 2 2 3 1 2 r c c c = + +
例10.2a曲线程序及运行结果 程序ag1002a x=[-3:3]'; 号把x,y赋值为列向量 y=[3.03,3.90,4.35,4.50,4.40,4.02,3.26]': A=[2*x,2*y,ones(size(x))]号求出系数矩阵A,B B=X.^2+y.^2 c=inv (A'*A)*A'*B, 号求超定方程的解,得出c r=sqrt(c(3)+C(1)^2+c(2)^2) 号由c求出r 程序运行的最后结果为: c=0.1018 工件圆心的x坐标 0.4996 工件圆心的y坐标 15.7533 r= 4.0017 工件的半径r
例10.2a 曲线程序及运行结果 程序ag1002a x=[-3:3]'; % 把x,y赋值为列向量 y=[3.03,3.90,4.35,4.50,4.40,4.02,3.26]'; A=[2*x, 2*y, ones(size(x))] % 求出系数矩阵A,B B=x.^2+y.^2 c=inv(A'*A)*A'*B, % 求超定方程的解,得出c r=sqrt(c(3)+c(1)^2+c(2)^2) % 由c求出r 程序运行的最后结果为: c = 0.1018 工件圆心的x坐标 0.4996 工件圆心的y坐标 15.7533 r = 4.0017 工件的半径r