最小二乘法求解圆方程圆形及半径

这篇具有很好参考价值的文章主要介绍了最小二乘法求解圆方程圆形及半径。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ci最小二乘法定义(摘抄于百度百科):

最小二乘法求解圆方程圆形及半径

基本思路(摘抄于百度百科):

最小二乘法求解圆方程圆形及半径

简单的来说,最小二乘法为一类线性算法,将需要求解的系数当作未知数,f(x)与x当作已知数,通过多组对应关系求得系数的方法。

所以,最小二乘法仅适合最小二乘法求解圆方程圆形及半径系数为一次项方程式

例如:最小二乘法求解圆方程圆形及半径,k与b作为系数是可通过最小二乘法求的

而:,A作为系数,是不可通过最小二乘法求得的

理论过程:

当圆心为(0,0),半径为r时,可得圆的方程式为:

最小二乘法求解圆方程圆形及半径

令圆心为(h,k)时,

圆方程为:最小二乘法求解圆方程圆形及半径

这是在连续数据的情况下,我们将其代入离散数据点的情况:

圆方程为:最小二乘法求解圆方程圆形及半径

展开式为:最小二乘法求解圆方程圆形及半径

为了简化方程式,令最小二乘法求解圆方程圆形及半径

则方程为:最小二乘法求解圆方程圆形及半径

既误差函数为:最小二乘法求解圆方程圆形及半径

对误差函数的二次进行求导,已知E=0,既误差函数的二次方对任何数求导均为0:

所以:

推得:

最小二乘法求解圆方程圆形及半径最小二乘法求解圆方程圆形及半径

 最小二乘法求解圆方程圆形及半径

展开并化简得:

最小二乘法求解圆方程圆形及半径

最小二乘法求解圆方程圆形及半径

最小二乘法求解圆方程圆形及半径

系数放等号左边,常数放等号右边

最小二乘法求解圆方程圆形及半径

最小二乘法求解圆方程圆形及半径

最小二乘法求解圆方程圆形及半径

使用矩阵表示既为

其中

、、

、、

、、

最小二乘法求解圆方程圆形及半径

最小二乘法求解圆方程圆形及半径

最小二乘法求解圆方程圆形及半径

求解矩阵方程既可得到圆心(h,k)

最小二乘法求解圆方程圆形及半径

可以利用克莱姆求解矩阵方程

解得:

、、

此方法和推导同样适合多项式方程、椭圆方程等,这边不再做详细介绍

MATLAB代码(为MATLAB R2022版本下.mlapp回调代码):

            [file,path] = uigetfile;
            if isempty(file)
                return;
            end 
            if ~contains(file,'.csv')
                msgbox("请确定选择文件为<.csv>文件后重试!")
                return;
            end
            filepath=strcat(path,file);
            LineData=readtable(filepath);
            LineAll=table2array(LineData);
            LineX=LineAll(:,1);
            Liney=LineAll(:,2);

            nSum=0;
            XSum=0;
            YSum=0;
            XYSum=0;
            X2Sum=0;            
            Y2Sum=0;

            X2YSum=0;
            XY2Sum=0;
            X3Sum=0;
            Y3Sum=0;


            N=size(LineX);
          
            for i=1:N
                nSum=nSum+1;
                XSum=XSum+LineX(i);
                YSum=YSum+Liney(i);
                XYSum=XYSum+LineX(i)*Liney(i);
                X2Sum=X2Sum+LineX(i)*LineX(i);
                Y2Sum=Y2Sum+Liney(i)*Liney(i);

                X2YSum=X2YSum+LineX(i)*LineX(i)*Liney(i);
                XY2Sum=XY2Sum+LineX(i)*Liney(i)*Liney(i);
                X3Sum=X3Sum+LineX(i)*LineX(i)*LineX(i);
                Y3Sum=Y3Sum+Liney(i)*Liney(i)*Liney(i);
            end 
            
            C11=2*X2Sum;
            C12=2*XYSum;
            C13=-1*XSum;
            C21=2*XYSum;
            C22=2*Y2Sum;
            C23=-1*YSum;
            C31=2*XSum;
            C32=2*YSum;
            C33=-1*nSum;

            R1=X3Sum+XY2Sum;
            R2=X2YSum+Y3Sum;
            R3=X2Sum+Y2Sum;
            
            M1=[C11,C12,C13;
                C21,C22,C23;
                C31,C32,C33;];

            M2=[R1;R2;R3];

            M3=M1\M2;

            A=M3(1);
            B=M3(2);
            R=sqrt((A^2+B^2-M3(3)));
            Resultstring=strcat("圆心(",num2str(A),",",num2str(B),")","半径:",num2str(R));
            msgbox(Resultstring);

此文章为个人知识点总结文章, 转载请标注来源。文章来源地址https://www.toymoban.com/news/detail-427300.html

到了这里,关于最小二乘法求解圆方程圆形及半径的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能基础_机器学习006_有监督机器学习_正规方程的公式推导_最小二乘法_凸函数的判定---人工智能工作笔记0046

    我们来看一下公式的推导这部分比较难一些, 首先要记住公式,这个公式,不用自己理解,知道怎么用就行, 比如这个(mA)T 这个转置的关系要知道 然后我们看这个符号就是求X的导数,X导数的转置除以X的导数,就得到单位矩阵, 可以看到下面也是,各种X的导数,然后计算,得到对应的矩阵

    2024年02月08日
    浏览(58)
  • 使用opencv计算图片上任意一点到图片中心点距离为半径绘制圆形,计算FOV

    一、计算公式 图片坐标:Point(x,y) 半径 :r = ( x − i m a g e . c o l s / 2 ) 2 + ( y − i m a g e . r o w s / 2 ) 2 sqrt {(x - image.cols/2)^2 + (y - image.rows/2)^2} ( x − ima g e . co l s /2 ) 2 + ( y − ima g e . ro w s /2 ) 2 ​ 二、以 R R R 为半径在图像上绘制圆形,如下图所示: 三、实现代码

    2024年01月16日
    浏览(47)
  • 经纬度坐标为中心点生成米距离长度半径的圆形面,含java js源码+在线绘制,代码简单零依赖

    目录 java版源码 js版源码 在线绘制预览效果 关于计算的精确度 前些时间在更新我的坐标边界查询工具的时候,需要用到经纬度坐标点的距离计算,和以坐标点为中心生成一个指定距离为半径的圆,搜了一下没有找到现成简单又合适的代码,于是把自己压箱底的代码翻出来了

    2024年02月08日
    浏览(56)
  • 空间解析几何:圆柱面一般式方程的推导——已知中轴线和半径

            本文主要针对在已知 中轴线 和 半径 r的情况下(其中 为中轴线上的已知一点)如何来求解圆柱面方程做出详细解答。   1. 圆柱面模型 的 建立 :   Step 1 :假设点P 为待求圆柱面上的任意一点,由于点P到直线q的垂直距离PM为r,即 ,其中 ,点M为直线q上一点, 。

    2024年02月02日
    浏览(44)
  • 【数值计算方法(黄明游)】解线性代数方程组的迭代法(一):向量、矩阵范数与谱半径【理论到程序】

       注意:速读可直接跳转至“4、知识点总结”及“5、计算例题”部分   当涉及到线性代数和矩阵理论时, 向量、矩阵范数以及谱半径 是非常重要的概念,下面将详细介绍这些内容: a. 定义及性质   考虑一个 n n n 维向量 x x x ,定义一个实值函数 N ( x ) N(x) N ( x ) ,

    2024年01月25日
    浏览(48)
  • MATLAB 之 非线性方程数值求解、最优化问题求解和常微分方程初值问题的数值求解

    非线性方程的求根方法很多,常用的有牛顿迭代法,但该方法需要求原方程的导数,而在实际运算中这一条件有时 是不能满足的,所以又出现了弦截法、二分法等其他方法。 在 MATLAB 中,非线性方程的求解和最优化问题往往需要调用最优化工具箱来解决。优化工具箱提供了一

    2024年02月08日
    浏览(57)
  • 【矩阵论】6. 正规方程与矩阵方程求解

    矩阵论的所有文章,主要内容参考北航赵迪老师的课件 [注]由于矩阵论对计算机比较重要,所以选修了这门课,但不是专业搞数学的,所以存在很多口语化描述,而且对很多东西理解不是很正确与透彻,欢迎大家指正。我可能间歇性忙,但有空一定会回复修改的。 矩阵论 1

    2024年02月02日
    浏览(45)
  • matlab求解方程和多元函数方程组

    核心函数solve 一般形式 S=solve(eqns,vars,Name,Value) ,其中: eqns是需要求解的方程组; vars是需要求解的变量; Name-Value对用于指定求解的属性(一般用不到); S是结果,对应于vars中变量; 单个方程求解 方程:sin(x)=1 代码: 结果: 说明: MATLAB定义方程用的是 == 符号,就是这样

    2024年02月08日
    浏览(44)
  • 数论——线性同余方程、乘法逆元 学习笔记

    众所周知: 如果爆 int 请自行开 long long 或边读边模,或高精度处理。 定义 若 (a bmod m = b bmod m) ,则称 (a) 与 (b) 关于模 (m) 同余,记为 (a equiv b pmod m) . 同余的性质 反身性: (a equiv a pmod m) ; 对称性:若 (a equiv b pmod m) ,则 (b equiv a pmod m) ; 传递性:若 (

    2024年02月08日
    浏览(47)
  • PINN深度学习求解微分方程系列一:求解框架

    下面我将介绍内嵌物理知识神经网络(PINN)求解微分方程。首先介绍PINN基本方法,并基于Pytorch框架实现求解一维Poisson方程。 内嵌物理知识神经网络(PINN)入门及相关论文 深度学习求解微分方程系列一:PINN求解框架(Poisson 1d) 深度学习求解微分方程系列二:PINN求解burg

    2023年04月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包