法线方程实现最小二乘拟合(Matlab)

一、问题描述

利用法线方程实现最小二乘拟合。

二、实验目的

掌握法线方程方法的原理,能够利用法线方程完成去一组离散数据点的拟合。

三、实验内容及要求

  1. 对于下面的不一致系统,构造法线方程,计算最小二乘以及2-范数误差。
    [ 3 − 1 2 4 1 0 − 3 2 1 1 1 5 − 2 0 3 ] [ x 1 x 2 x 3 ] = [ 10 10 − 5 15 0 ] \left[\begin{array}{rrr} 3 & -1 & 2 \\ 4 & 1 & 0 \\ -3 & 2 & 1 \\ 1 & 1 & 5 \\ -2 & 0 & 3 \end{array}\right] \left[\begin{array}{r} x_1 \\ x_2 \\ x_3 \end{array}\right] = \left[\begin{array}{r} 10 \\ 10 \\ -5 \\ 15 \\ 0 \end{array}\right] 343121121020153 x1x2x3 = 10105150

    % 系数矩阵
    A = [3, -1, 2;4, 1, 0;-3, 2, 1;1, 1, 5;-2, 0, 3];% 右侧的常数矩阵
    B = [10; 10; -5; 15; 0];% 使用最小二乘法求解
    X = lsqlin(A, B);% 计算法线方程的系数
    a = X(1);
    b = X(2);
    c = X(3);fprintf('构造的法线方程: %.2fx + %.2fy + %.2fz\n', a, b, c);
    fprintf('最小二乘解: x1 = %.2f, x2 = %.2f, x3 = %.2f\n', X(1), X(2), X(3));% 计算2-范数误差
    error = norm(A * X - B, 2);
    fprintf('2-范数误差为: %.2f\n', error);
    
  2. 如下为日本2023 年的每月石油消耗数据。
    利用周期模型y = c1 + c2 * cos2𝜋 + c3 * sin2𝜋 + c4 * cos4𝜋进行拟合,并计算RMSE。

    monthoil use (10^6 bbl/day)
    Jan6.224
    Feb6.665
    Mar6.241
    Apr5.302
    May5.073
    Jun5.127
    Jul4.994
    Aug5.012
    Sep5.108
    Oct5.377
    Nov5.510
    Dec6.372
    % 输入数据
    month = 1:12;
    oil_use = [6.224, 6.665, 6.241, 5.302, 5.073, 5.127, 4.994, 5.012, 5.108, 5.377, 5.51, 6.372];% 构造周期模型
    A = [ones(12, 1), cos(2 * pi * month'/12), sin(2 * pi * month'/12), cos(4 * pi * month'/12)];% 使用最小二乘法求解
    c = lsqlin(A, oil_use);% 构造法线方程
    y_fit = c(1) + c(2) * cos(2 * pi * month/12) + c(3) * sin(2 * pi * month/12) + c(4) * cos(4 * pi * month/12);% 计算RMSE
    rmse = sqrt(mean((oil_use - y_fit).^2));fprintf('构造的法线方程: y = %.4f + %.4f * cos(2*pi*x/12) + %.4f * sin(2*pi*x/12) + %.4f * cos(4*pi*x/12)\n', c(1), c(2), c(3), c(4));
    fprintf('最小二乘解: c1 = %.4f, c2 = %.4f, c3 = %.4f, c4 = %.4f\n', c(1), c(2), c(3), c(4));
    fprintf('RMSE: %.4f\n', rmse);
    

四、算法原理

给出法线方程进行数据拟合的过程。

背景:
数据拟合是一种通过数学模型来近似描述和预测现有数据的方法。法线方程(Normal Equation)是一种常用于最小二乘法(Least Squares)的工具,用于找到最优拟合参数,以最小化观测数据与模型预测之间的误差。

法线方程的基本形式:
对于一个线性模型,假设我们有一个包含m个样本的矩阵X(设计矩阵)和一个包含目标变量的列向量y,线性模型可以表示为:

y = X β + ε y = X \beta + \varepsilon y=+ε

其中, y y y 是目标变量, X X X 是设计矩阵, β \beta β 是待求参数向量, ε \varepsilon ε 是误差向量。最小二乘法的目标是找到最优的 β \beta β,使得误差的平方和最小。

法线方程的推导:
法线方程通过对最小二乘问题的偏导数为零的条件进行求解而得到。对于线性回归问题,法线方程可以写作:

X T X β = X T y X^T X \beta = X^T y XT=XTy

其中, X T X^T XT 表示矩阵 X X X 的转置。解这个方程可以得到最优的参数向量 β \beta β

法线方程的拟合过程:

  1. 构造设计矩阵 (X): 将样本数据按照模型的形式构造成设计矩阵。每一行对应一个样本,每一列对应一个特征。

  2. 构造目标变量向量 (y): 将观测到的目标变量按照样本顺序构造成列向量。

  3. 计算法线方程: 使用法线方程 X T X β = X T y X^T X \beta = X^T y XT=XTy 求解参数向量 β \beta β。这可以通过直接求解方程或者使用矩阵运算库中的函数来完成。

  4. 得到最小二乘解: 将得到的参数向量 β \beta β 代入线性模型,得到最小二乘拟合的结果。

  5. 评估拟合效果: 可以使用各种评估指标,如均方根误差(RMSE)、残差分析等,来评估拟合模型与实际数据之间的拟合质量。

优势和注意事项:

  • 优势: 法线方程提供了一种解决最小二乘问题的直观数学方法,具有简单、清晰的数学推导过程。

  • 注意事项: 在实际应用中,需要确保模型假设的合理性,避免过拟合或欠拟合。此外,若设计矩阵 X T X X^T X XTX 不可逆,可能需要考虑正则化方法。

总结:
法线方程作为最小二乘法的数学基础,为数据拟合提供了可靠的理论支持。通过构造法线方程,我们能够得到最优参数,实现对数据的准确拟合。在实际应用中,理解法线方程的原理对于建立有效的拟合模型至关重要。

五、测试数据及结果
1.给出构造的法线方程、最小二乘解、2-范数误差;
请添加图片描述

2.给出构造的法线方程、最小二乘解、RMSE.
请添加图片描述

六、总结与思考

法线方程作为最小二乘法的数学基础,为数据拟合提供了可靠的理论支持。通过构造法线方程,我们能够得到最优参数,实现对数据的准确拟合。在实际应用中,理解法线方程的原理对于建立有效的拟合模型至关重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx实战:LUA脚本_环境配置安装

目录 一、什么是LUA脚本 二、Nginx中的LUA脚本 1、主要特点 2、用途 三、如何在nginx中使用LUA脚本 1、原生nginx 2、OpenResty 3、nginx lua配置验证 一、什么是LUA脚本 Nginx Lua 脚本是 Nginx 与 Lua 语言集成的结果,它允许你使用 Lua 语言编写Nginx 模块…

(深度学习记录)第TR3周:Transformer 算法详解

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 文本的输入处理中,transformer会将输入文本序列的每个词转化为一个词向量,我们通常会选择一个合适的长度作为输入…

mysql中的模糊匹配

在MySQL中,模糊查询通常使用 LIKE 运算符和通配符来实现。模糊查询用于匹配满足特定模式的字符串,可以在字符串中使用通配符进行搜索。以下是关于MySQL模糊查询的详细介绍: LIKE 运算符 LIKE 运算符用于在WHERE子句中搜索列中的指定模式。可以使用两种通配符: %:表示零个…

若依分页问题排查

无限分页数据返回 一、问题排查1.1 代码排查1.2 sql排查1.3 原因分析 二、问题修复 项目使用了 若依的框架,前端反馈了一个问题,总记录条数只有 48条的情况下,传入的 页数时从6~~无穷大,每页大小为10, 此时还能返回数据&#xff0…

JSON源码类学习

json源码学习 parse把json转换成Object parseObject转换为jsonObject parseArray从字符串数组解析成真正的数组 tojsonString把真正的json解析json 数组的方法 作用:类型转换 为什么要做类型转换 开发一个方法验证 这个方法先封装方法,是否为json …

seaborn和matplotlib显示两条曲线图例

总结,添加label和plt.legend,以下由chatgpt生成 在使用 Seaborn 的 kdeplot(核密度估计图)时,显示图例也是一个常见需求,尤其是当你想比较多个不同分布的数据时。下面我将提供一个示例,说明如何…

Spring-Cloud-CircuitBreaker-Resilience4j (3.1.1)

介绍 Resilience4j 是一个专为函数式编程而设计的轻量级容错库。Resilience4j 提供高阶函数(装饰器),以增强任何功能接口、lambda 表达式或方法引用,包括断路器、速率限制器、重试或隔板。您可以在任何函数接口、lambda 表达式或…

【Python系列】Python 元组(Tuple)详解

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

CCF-CSP认证 2023年9月02 坐标变换(二)

题解&#xff1a;需要将所有的前n次变换存储到对应的数组里&#xff0c;在第i-j次变换就直接数组相减即可。 // #pragma GCC optimize(2, 3, "Ofast", "inline") #include <bits/stdc.h> // #define endl \n using namespace std; double k[100010…

背包算法详解

背包问题是一类常见的优化问题&#xff0c;其基本形式可以描述为&#xff1a;给定一组物品&#xff0c;每种物品都有自己的重量和价值&#xff0c;在限定的总重量内&#xff0c;如何选择物品&#xff0c;使得所选物品的总价值最大。背包问题在现实生活中有广泛的应用&#xff0…

【STL源码剖析-空间配置器】stack、queue简单实现

举头天外望 无我这般人 目录 stack 的概述 stack 的实现 queue 的概述 queue 的实现 契子✨ 我们之前学过了 vector、list 这些 STL 的&#xff08;容器&#xff09; 而我们今天将要学习空间配置器 -- stack、queue&#xff0c;那什么是空间配置器呢&#xff1f; 简单来讲就是…

sqlite性能考量及使用(附可视化操作软件)

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享&#xff0c;包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…

AI自动化办公:批量将Excel表格英文内容翻译为中文

有一个50列的表格&#xff0c;里面都是英文&#xff0c;要翻译成中文&#xff1a; 在ChatGPT中输入提示词&#xff1a; 你是一个开发AI大模型应用的Python编程专家&#xff0c;要完成以下任务的Python脚本&#xff1a; 打开Excel文件&#xff1a;"F:\AI自媒体内容\AI行业…

广东省青少年编程预选赛:挑战与机遇并存

广东省青少年编程预选赛&#xff1a;挑战与机遇并存 在数字化浪潮席卷而来的今天&#xff0c;编程技能已逐渐成为青少年必备的一项能力。广东省青少年编程预选赛作为一场汇集全省精英的竞技盛宴&#xff0c;不仅为青少年提供了一个展示才华的舞台&#xff0c;更是对他们逻辑思…

C++深度搜索

介绍 深度搜索是c的算法之一&#xff0c;简单来说就是“一路走到黑&#xff0c;不撞南墙不回头”就这样一条条把所有能走的路都走一遍&#xff0c;直到找出正确答案&#xff0c;有点类似于递归和枚举的结合体。 正文开始 迷宫出口 题目描述&#xff1a;一天Extense在森林里探…

HTML静态网页成品作业(HTML+CSS)——我的班级介绍网页(2个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

金属切削机床5G智能工厂工业物联数字孪生,推进制造业数字化转型

金属切削机床5G智能工厂工业物联数字孪生&#xff0c;推进制造业数字化转型。随着工业4.0时代的到来&#xff0c;制造业正面临着前所未有的变革与挑战。在这场变革中&#xff0c;金属切削机床智能工厂工业物联数字孪生平台正成为推动制造业数字化转型的重要力量。 数字孪生是指…

【vuejs】v-if和v-show的原理、异同、使用场景的分析

1. v-if 和 v-show 的共同点 1.1 作用效果的相似性 在Vue中&#xff0c;提供的v-if和v-show都是用来控制元素是否在页面上显示的条件指令。 当条件为true时&#xff0c;它们都会使元素可见&#xff1b; 当条件为false时&#xff0c;它们都会隐藏元素。 这一点在Vue的官方文…

香港云服务器好还是国内的好?

香港云服务器与国内云服务器各有其优点和缺点&#xff0c;选择哪种类型的云服务器主要取决于业务需求、用户群体、网络需求以及成本考虑。以下是对两者进行详细比较的内容。 首先&#xff0c;从网络速度和稳定性来看&#xff0c;香港云服务器具有独特的优势。由于香港是全球数据…

操作系统Linux的基本介绍

操作系统Linux的基本介绍如下&#xff1a; 一、概述 Linux是一个自由和开放源代码的类Unix操作系统&#xff0c;它基于POSIX和Unix的多用户、多任务、多线程和多CPU的操作系统。Linux最初是作为自由软件&#xff0c;由林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在1…