当前位置: 首页 > news >正文

线性/非线性最小二乘 与 牛顿/高斯牛顿/LM 原理及算法

最小二乘分为线性最小二乘非线性最小二乘

最小二乘目标函数都是min ||f(x)||2

  • 若f(x) = ax + b,就是线性最小二乘;
  • 若f(x) = ax2 + b / ax2 + bx 之类的,就是非线性最小二乘;

1. 求解线性最小二乘

【参考】

2. 求解非线性最小二乘

需要用到牛顿法,高斯牛顿法,或者LM法
目标函数都是min F(x) = min ||f(x)||2
求解的时候需要求解的是f(x)的最小值,其实求解的就是f(x)'=0的地方

(1) 牛顿法/高斯梯度下降

牛顿法是将f(x)进行二阶泰勒展开: f(x)=f(xk)+f’(xk)(x-xk)+1/2 f’‘(xk)(x-xk)2
因为求解的其实是上式的最小值,也就是求解上式导数为0的值
核心迭代等式:xk+1 = xk - f’(xk)/f’'(xk)
其中,一阶导f’(xk)可以看成雅可比矩阵J,二阶导f’'(xk)可以看成海森矩阵H

算法

  1. 给定初值x0
  2. 对于第k次迭代,求出一阶导f’(xk)和二阶导f’'(xk)
  3. 如果f’(xk)足够小则停止;否则xk+1=xk - f’(xk)/f’'(xk),返回2

(2) 高斯牛顿法

这里的f(x)代表的是目标函数F(x)
是将f(x)进行一阶泰勒展开:f(x+dx) = f(x) + J*dx
取得最小值的条件也就是 f(x) + J * dx这个式子对dx的导数为0,
可以求解得到: JTJ * dx = - J * f(x) ,可以简化为 H dx = g
刚好利用JTJ代替H,减少H计算量

算法

求解等式为 JTJ * dx = - J * f(x),即增量方程,这里的dx也就是每次需要寻找的变化量

  1. 给定初值x0
  2. 对于第k次迭代,求出雅可比J(xk) 和f(xk)
  3. 将以上两值代入,利用方程H dx = g,求解dx
  4. 如果dx足够小则停止,否则xk+1=xk+dx,返回2

(3) LM法

高斯牛顿本质求解的是xk+1 = xk - H-1 * J(xk) * f(xk) 但是H如果非正定,那 H-1不存在,因此将其加上单位矩阵结局正定问题 :(H + kI)dx = g

计算信赖区间 ρ请添加图片描述
算法

求解等式为 (JTJ+ μI) dx = -J f(x),其中J = J(xk),f(x) = f(xk)

  1. 给定初值x0
  2. 对于第k次迭代,求出雅可比J(xk) 和f(xk)
  3. 计算ρ,若 ρ > 3/4,则 μ = 2μ;
        若 ρ < 1/4,则 μ = 0.5μ;
  4. 将J(xk) ,f(xk)和 μ代入,利用方程 (H + μI) dx = g,求解dx
  5. 如果dx足够小则停止,否则xk+1=xk+dx,返回2

参考
https://zhuanlan.zhihu.com/p/556170185?utm_id=0
https://blog.csdn.net/weixin_43763292/article/details/128060801
https://blog.csdn.net/weixin_41869763/article/details/103603089

相关文章:

线性/非线性最小二乘 与 牛顿/高斯牛顿/LM 原理及算法

最小二乘分为线性最小二乘和非线性最小二乘 最小二乘目标函数都是min ||f(x)||2 若f(x) ax b&#xff0c;就是线性最小二乘&#xff1b;若f(x) ax2 b / ax2 bx 之类的&#xff0c;就是非线性最小二乘&#xff1b; 1. 求解线性最小二乘 【参考】 2. 求解非线性最小二乘…...

mysqldump: Error 2013 导致mysql停止运行

https://www.cnblogs.com/DataArt/p/10173957.html 1 查询表大小 SELECT table_name AS "表名", round(((data_length index_length) / 1024 / 1024), 2) AS "大小(MB)" FROM information_schema.tables WHERE table_schema your_database_name AND …...

2023年数维杯国际大学生数学建模挑战赛D题洗衣房清洁计算解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛 D题 洗衣房清洁计算 原题再现&#xff1a; 洗衣房清洁是人们每天都要做的事情。洗衣粉的去污作用来源于一些表面活性剂。它们可以增加水的渗透性&#xff0c;并利用分子间静电排斥机制去除污垢颗粒。由于表面活性剂分子的存在&#xff…...

python 两种colorbar 最大最小和分类的绘制

1 colorbar 按照自定义的最值绘制 归一化方法使用Normalize(vmin0, vmax40.0) import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.cm as cm import matplotlib.colors as mcolors from matplotlib import rcParams from matplot…...

Linux-基础IO

&#x1f30e;Linux基础IO 文章目录&#xff1a; Linux基础IO C语言中IO交互       常用C接口         fopen         fputs         fwrite         fgets 当前路径       三个文件流 系统文件IO       open函数     …...

202006青少年软件编程(Python)等级考试试卷(二级)

第 1 题 【单选题】 以下程序的运行结果是&#xff1f;&#xff08; &#xff09; l ["兰溪","金华","武义","永康","磐安","东阳","义乌","浦江"]for s in l:if"义"in s:print(…...

【LeetCode】每日一题:2244.完成所有任务需要的最少轮数

给你一个下标从 0 开始的整数数组 tasks &#xff0c;其中 tasks[i] 表示任务的难度级别。在每一轮中&#xff0c;你可以完成 2 个或者 3 个 相同难度级别 的任务。 返回完成所有任务需要的 最少 轮数&#xff0c;如果无法完成所有任务&#xff0c;返回 -1 。 英文原题&#xf…...

百度文心一言 java 支持流式输出,Springboot+ sse的demo

参考&#xff1a;GitHub - mmciel/wenxin-api-java: 百度文心一言Java库&#xff0c;支持问答和对话&#xff0c;支持流式输出和同步输出。提供SpringBoot调用样例。提供拓展能力。 1、依赖 <dependency> <groupId>com.baidu.aip</groupId> <artifactId…...

59.基于SSM实现的网上花店系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统&#xff0c;网上花店是在MySQL中建立数据表保存信息&#xff0c;运用SSMVue框架和Java语言编写。并按照软件设计开发流程进行设计实现充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SSM的网…...

什么是字节码?

字节码&#xff08;Bytecode&#xff09;是Java虚拟机&#xff08;JVM&#xff09;能够理解和执行的中间代码。Java源代码首先编译成字节码文件&#xff08;扩展名为 .class&#xff09;&#xff0c;而不是直接编译成特定机器的机器码。字节码具有以下特点&#xff1a; 平台无…...

C++ JWT的使用

接入sdk需要使用JWT加密参数&#xff0c;做个记录以备后查 #include <iostream> #include <jwt-cpp/jwt.h> int main() { // 设置JWT的密钥&#xff08;对于HS256&#xff09; std::string secret_key "your-256-bit-secret"; // 创建一个新的JW…...

SpringBoot内置插件的使用(jackson和lombok)

文章目录 引言I lombok(自动为属性生成构造器)II jacksonsee also引言 idea正式版2021.2.2 已经捆绑安装jackson和lombok插件 I lombok(自动为属性生成构造器) Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。 htt…...

Franz Electron + React 源码启动运行填坑指南

环境要求 安装miniconda python 环境electron/rebuild用得着&#xff0c;miniconda 默认自带的 python 是 3.11 版本&#xff0c;比较新&#xff1b; 安装virsual studio 2019 要把C桌面相关的都安装了&#xff0c;大概需要20G&#xff0c;不要安装到 C 盘&#xff0c;都安装到…...

网络安全法中关于网络信息的保护和监管,有哪些规定?

网络安全法作为我们数字时代的重要法律保障&#xff0c;对于网络信息的保护和监管有着明确且详细的规定。这些规定不仅体现了国家对于网络安全的重视&#xff0c;也为我们每个人在数字世界中提供了坚实的法律屏障。 首先&#xff0c;我们来看一个关于网络运营者主体责任的案例。…...

前端XHR请求数据

axios封装了XHR(XMLHttpRequest) 效果 项目结构 Jakarta EE9&#xff0c;Web项目。 无额外的maven依赖 1、Web页面 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title&…...

利用香港多IP服务器优化网站访问速度的关键策略?

利用香港多IP服务器优化网站访问速度的关键策略? 随着数字化时代的不断发展&#xff0c;网站的全球访问速度成为企业吸引用户、提升竞争力的重要因素。特别对于跨国企业而言&#xff0c;如何确保全球用户都能享受到稳定快速的访问体验显得尤为重要。在这一背景下&#xff0c;…...

如何快速将视频做成二维码?扫描二维码播放视频的制作方法

视频二维码的用途越来越多&#xff0c;比如常见的有产品展示、企业宣传、教程说明、个人展示等都可以生成二维码&#xff0c;通过扫码在手机或者其他设备上预览内容&#xff0c;从而提升其他人获取视频的速度&#xff0c;实现内容的快速分享。 对于有制作视频二维码需求的小伙…...

使用python开发的闭运算调试器

使用python开发的开运算调试器 简介效果代码 简介 用来调试闭运算效果的小工具&#xff0c;滑动条可以控制滤波核的大小&#xff0c;用来查看不同滤波核下的闭运算效果。 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayou…...

一例Phorpiex僵尸网络变种的分析

概述 这是一例Phorpiex僵尸网络变种&#xff0c;通过NSIS打包&#xff0c;加载恶意dll(Flaminius.dll)&#xff0c;读取dat文件&#xff08;Preoral.dat&#xff09;&#xff0c;在内存解密并解压缩出一个Pe&#xff0c;创建同名傀儡进程并注入。通过可移动存储介质传播&#…...

PDF文件转换为CAD的方法

有时候我们收到一个PDF格式的设计图纸&#xff0c;但还需要进行编辑或修改时&#xff0c;就必须先将PDF文件转换回CAD格式。分享两个将PDF转换回CAD的方法&#xff0c;一个用到在线网站&#xff0c;一个用到PC软件&#xff0c;大家根据情况选择就可以了。 ☞在线CAD网站转换 …...

快速验证汽车电子创意:用快马AI十分钟搭建CAN总线通信原型

在汽车电子和工业控制领域&#xff0c;CAN总线通信是最基础也最重要的技术之一。最近我在做一个车载设备的小项目&#xff0c;需要快速验证CAN通信功能。传统开发方式往往要花大量时间搭建底层驱动&#xff0c;但这次我尝试用InsCode(快马)平台的AI辅助功能&#xff0c;居然十分…...

FlowState Lab问题排查大全:从依赖错误到显存溢出的解决方案

FlowState Lab问题排查大全&#xff1a;从依赖错误到显存溢出的解决方案 1. 引言 遇到技术问题时的挫败感&#xff0c;相信每个开发者都深有体会。特别是当你满怀期待地准备运行FlowState Lab时&#xff0c;突然蹦出的错误提示就像一盆冷水浇下来。别担心&#xff0c;这篇文章…...

嵌入式AI开发实战:从MCU到模型部署全流程

1. 嵌入式AI开发实战&#xff1a;从入门到项目落地作为一名在嵌入式领域摸爬滚打多年的工程师&#xff0c;我深知AI技术给这个传统行业带来的变革。记得2018年第一次接触基于MCU的简单图像识别时&#xff0c;那种"原来嵌入式设备也能做AI"的震撼感至今难忘。如今&…...

JAVA重点基础、进阶知识及易错点总结(14)字节流 字符流

&#x1f680; Java 巩固进阶 第14天 主题&#xff1a;字节流 & 字符流 —— 文件读写的核心引擎&#x1f4c5; 进度概览&#xff1a;今天进入 IO 流的灵魂章节&#xff01;掌握这 4 个核心类&#xff0c;你就能打通文件读写的任督二脉。 &#x1f4a1; 核心价值&#xff…...

电散热器为何能适配多场景采暖?

一、设备概述&#xff1a;3kW 220V电散热器的核心定位3kW 220V电散热器是一款功率适中、电压适配家用及小型商用场景的便捷采暖设备&#xff0c;凭借无需复杂管道铺设、即开即热的优势&#xff0c;成为现代采暖的热门选择。其额定功率3kW、额定电压220V&#xff0c;适配家庭、办…...

Java多线程实战:ReentrantLock与信号量Semaphore的5个高频使用场景解析

Java多线程实战&#xff1a;ReentrantLock与信号量Semaphore的5个高频使用场景解析 在Java并发编程领域&#xff0c;ReentrantLock和Semaphore是两个至关重要的同步工具。它们虽然都属于JUC&#xff08;java.util.concurrent&#xff09;包中的并发控制机制&#xff0c;但设计理…...

2.2.2.3 Spark实战:词频统计

本次实战涵盖了Spark词频统计&#xff08;WordCount&#xff09;的两种主流实现方式。首先&#xff0c;利用Scala在spark-shell中完成从读取文件、flatMap分词、map映射到reduceByKey聚合的完整流程&#xff0c;并实现结果的降序排序。其次&#xff0c;针对Spark 3.3.2版本的需…...

IO-Link物理层深度解析:编码机制与接口设计实战

1. IO-Link物理层编码机制详解 第一次接触IO-Link的开发者往往会被它的11bit编码规则绕晕。我刚开始调试STM32的IO-Link主站时&#xff0c;就因为在UART配置上少勾选了一个校验位&#xff0c;导致从站设备死活不响应。后来用逻辑分析仪抓包才发现&#xff0c;原来发送的0xF1在…...

dig (Domain Information Groper):从命令行到自动化运维的DNS探秘

1. 从命令行工具到运维利器的dig进化史 第一次接触dig命令时&#xff0c;我正被一个诡异的域名解析问题困扰。当时作为新手运维&#xff0c;只会用ping和nslookup反复测试&#xff0c;直到同事甩给我一行dig trace example.com——瞬间看到了完整的DNS解析链条&#xff0c;那种…...

3步打造B站高效体验:开源客户端的极致优化指南

3步打造B站高效体验&#xff1a;开源客户端的极致优化指南 【免费下载链接】BiliBili-UWP BiliBili的UWP客户端&#xff0c;当然&#xff0c;是第三方的了 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBili-UWP BiliBili-UWP作为一款开源客户端&#xff0c;专为Wi…...