法线方程实现最小二乘拟合(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.
请添加图片描述

六、总结与思考

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

国产飞腾/龙芯/瑞芯微芯片在信创行业应用:金融行业、教育行业、党政机关

党政机构 方案背景: 在国家提出信息技术应用创新发展战略的大环境下,政务大厅需要基于国家科技自主技术深入推进“互联网政务服务”。加快建设全国一体化在线政务服务平台,进一步落实创新驱动发展战略,提升政务网络安全保障能力…

Java筑基—String类

这里写目录标题 一、字符串的拼接二、获取字符串长度三、字符串转换四、去除前后空白字符五、比较字符串是否相等六、比较字符串是否包含七、字符串是否以某些开始、结尾八、字符串的替换九、字符串的转换十、空串和NULL串 一、字符串的拼接 Java语言允许使用 号拼接两个字符…

内网不能访问域名怎么办?

在网络应用中,我们常常遇到内网不能访问域名的问题。这是由于内网环境限制导致的,内网无法直接连接到公网,因而无法访问互联网上的域名。我们可以利用一些特殊技术和工具来解决这个问题。 天联组网技术的应用 天联组网是一种非常受欢迎的解决…

IDEA启动jsp项目

1、背景 有个老项目的前端需要修改,整来源码之后发现是比较古老的jsp项目,需要在idea中启动下试试 2、代码配置流程 常规的配置流程网上都有 2.1 首先找到Project Structure 2.2 配置web.xml 注意下方的 web resource directory, web.xml中的写的相对…

如何选择软件开发服务商

在当今数字化快速发展的时代,软件已经成为企业运营不可或缺的一部分。然而,对于许多非技术背景的企业来说,如何选择一个合适的软件开发服务商却是一个不小的挑战。本文将从需求分析、服务商评估、合同条款以及后期维护等方面,详细…

FastDFS分布式文件系统——上传本地文件

目录 安装FastDFS FastDFS 使用Java客户端上传本地文件到FastDFS服务器上 pom.xml fastdfs_conf配置文件 FastDFS 测试 安装FastDFS 1、用FastDFS一步步搭建文件管理系统 - bojiangzhou - 博客园 (cnblogs.com)2、FastDFS文件上传功能封装 - 动力节点 (bjpowernode.com)…

Nginx 1.26.0 爆 HTTP/3 QUIC 漏洞,建议升级更新到 1.27.0

据悉,Nginx 1.25.0-1.26.0 主线版本中涉及四个与 NGINX HTTP/3 QUIC 模块相关的中级数据面 CVE 漏洞,其中三个为 DoS 攻击类型风险,一个为随机信息泄漏风险,影响皆为允许未经身份认证的用户通过构造请求实施攻击。目前已经紧急发布…

BurpSuite2024.5

1 工具介绍 本版本更新介绍 此版本引入了Burp Scanner对WebSockets的支持、对记录登录编辑器的改进、WebSocket 匹配和替换规则以及许多性能改进。 Burp Scanner 支持 WebSockets 我们已更新内部代理的配置以允许 WebSocket 流量。这使 Burp Scanner 现在可以抓取依赖 WebSo…

【漯河市人才交流中心_登录安全分析报告-Ajax泄漏滑动距离导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

可视化小波频率如何影响地震纵向分辨率(MATLAB R2018A)

地震勘探主要通过地表接收的地震波场来识别地下的地质结构和物性参数等,获取地震数据的质量直接决定着反演地下信息的精确度和准确性。地震数据的分辨率是评价地震数据品质的重要标准之一,高分辨率的地震数据包含丰富的地质信息,更有利于进行…

快蜗牛OZON数据分析,OZON快蜗牛数据

在当今电商行业蓬勃发展的背景下,OZON作为俄罗斯及东欧市场的重要电商平台,其数据背后蕴藏着巨大的商业价值。快蜗牛,作为专注于OZON平台的数据分析工具,为卖家提供了深入的市场洞察和策略指导。接下来看看快蜗牛OZON数据分析&…

c基础 - 输入输出

目录 一.scanf() 和 printf() 函数 1.printf 2.scanf 二 . getchar() & putchar() 函数 1.int getchar(void) 2.int putchar(int c) 三. gets() & puts() 函数 一.scanf() 和 printf() 函数 #include <stdio.h> 需要引入头文件,stdio.h 1.printf print…

Nginx实战:日志打印自定义请求头

nginx的日志可以打印很多内容&#xff0c;但是有时候自定义的请求头该怎么打印呢&#xff1f;像下面这种场景&#xff1a; 其实很简单&#xff0c;设置日志打印格式log_format的时候&#xff0c;自定义的请求头用 【$http_自定义请求头名】 的格式就可以打印出来 例如你的自定义…

[机器学习] 低代码机器学习工具PyCaret库使用指北

PyCaret是一个开源、低代码Python机器学习库&#xff0c;能够自动化机器学习工作流程。它是一个端到端的机器学习和模型管理工具&#xff0c;极大地加快了实验周期&#xff0c;提高了工作效率。PyCaret本质上是围绕几个机器学习库和框架&#xff08;如scikit-learn、XGBoost、L…

文件夹损坏0字节:原因、恢复方案与预防措施

在使用电脑或移动设备时&#xff0c;我们有时会遇到文件夹突然损坏并显示为0字节的情况。这种故障不仅令人困惑&#xff0c;更可能导致重要数据的丢失。本文将深入探讨文件夹损坏0字节的现象&#xff0c;分析其产生的原因&#xff0c;并给出两种有效的数据恢复方案&#xff0c;…

2023年亚太杯A题:果园采摘机器人的图像识别,一二题

问题一&#xff1a;基于附件1中提供的可收获苹果的图像数据集&#xff0c;提取图像特征&#xff0c;建立数学模型&#xff0c;计算每幅图像中的苹果的数量&#xff0c;并绘制附件1中所有苹果的分布直方图。 对于自动采摘机器人&#xff0c;首要的能力就是识别出苹果对象&#…

CrossOver支持M4新品吗?苹果M4芯片对游戏支持的怎么样?

CrossOver是一款可以在不同平台之间无缝切换的软件&#xff0c;它可以让你在MacOS或者Linux操作系统上运行Windows应用程序&#xff0c;无需安装双系统或虚拟机。CrossOver是基于Wine项目开发的&#xff0c;Wine是一个可以在非Windows平台上运行Windows应用程序的兼容层。 那么…

doris实战处理(一)doris表的建表规范、查询

感谢原文&#xff1a;https://mp.weixin.qq.com/s/tGbdkF62WU6qbAH0mqtXuA 第一部分&#xff1a;字符集规范 【强制】数据库字符集指定utf-8&#xff0c;并且只支持utf-8。 命令规范 【建议】库名统一使用小写方式&#xff0c;中间用下划线&#xff08;_&#xff09;分割&a…

使用第三方工具percona-xtrabackup进行数据备份与恢复

目录 准备工作 开始安装 innobackupex的使用 完全备份 增量备份 数据恢复 本次需要用到的软件 mysql 5.7.35percona-xtrabackup-24-2.4.8 ps&#xff1a;---MySQL必须是5.7的版本&#xff0c;在8.0之后已经不支持 percona-xtrabackup-24 系统版本CentOS7.9 准备工作 …

基于tensorflow和NasNet的皮肤癌分类项目

数据来源 https://challenge.isic-archive.com/data/#2019 数据划分 写了个脚本划分 for line in open(ISIC/labels.csv).readlines()[1:]:split_line line.split(,)img_file split_line[0]benign_malign split_line[1]# 0.8 for train, 0.1 for test, 0.1 for validati…