Matlab 迭代法(2)高斯牛顿法

news2024/11/20 10:33:28

一、思想

高斯牛顿法的对象是最小二乘法。

采用一定的方法对Hession 矩阵进行近似,这样的话可以减少计算量,只需要计算一阶偏导数得到雅可比矩阵即可。

               minF(x)=|| f(x)||^2  

那么x在xk处的增量Δxk出的最小二乘法为 

    minF(xk+Δxk)=∣∣f(xk​+Δxk​)∣∣^2

同理:

     F(xk+Δxk)=≈∣∣f(xk​)+J(xk​)TΔxk​∣∣^2

J(xk​) 是一阶导数,也就是雅可比矩阵,xk是一个已知数据,只有Δxk​是未知数,那么我们要计算的就是这个Δxk​。

二、算法流程

1、确定函数的模型,设定迭代精度m

2、设定一个初始值  y=A*exp(Bx),  已知x y 数据,所以拟合的就是参数  A 和B,那么就要给A  和B 设定一个初始值。

3、对与k次迭代,计算J(xk)雅可比矩阵 和 误差r 

 y'=A*exp(Bx),  r=y-y'

4、计算 Δxk=inv(J(xk)'J(xk)T)*(-J(xk)*r)

5、计算 norm(Δxk) <m?Ok:x(k+1)=x(x)+Δxk    ---》返回3

eg1 :

clear ;
clc;
iterator_num=500;
segma=1e-8;% 迭代精度
% y=a*exp(bx)+c 函数模型
% 设置其实参数值
a=6;
b=0.3;
c=0.1;
act_x=[1;2;3;4;5;6;7;8];
act_y=[8.3;11.0;14.7;19.7;26.7;35.2;44.4;55.9];
% 开始迭代
for i=1:iterator_num
    y=a*exp(b*act_x);
    %计算误差 r=act_y-y
    r=act_y-y;
    % 计算偏导数a 的雅可比矩阵
    Jacobian_a=exp(b*act_x);
    % 计算偏导数b 的雅可比矩阵
    Jacobian_b=a*exp(b*act_x).*act_x;
  
    % 联立雅可比方阵
    Jf=[Jacobian_a,Jacobian_b];
    % =====
    delta_abc=inv(Jf'*Jf)*Jf'*r;
    if norm(delta_abc)<segma
        break;
    end
    a_iterator=a+delta_abc(1);
    b_iterator=b+delta_abc(2);
    % 判断精度
    if norm(r)<segma
        break;
    end
    a=a_iterator;
    b=b_iterator;
end
it_y=a*exp(b*act_x);
plot(act_x,act_y,'.',act_x,it_y,'-');
xlim([0 10]);
ylim([0 70]);
legend('act','fit','Location','southoutside','Orientation','horizontal')





eg2;

Matlab Gauss 拟合_Σίσυφος1900的博客-CSDN博客

从上面的链接可以得到一些数据x y

 函数的模型是:y(i)=a*exp(-(x(i)-b).^2/c.^2)+0.1*rand(1);

补充:求导数


>> syms  act_x
>> y=a*exp(-(act_x-b).^2/c.^2)
 
y =
 
a*exp(-(act_x - b)^2/c^2)
 
>> diff_a=diff(y,a)
 
diff_a =
 
exp(-(act_x - b)^2/c^2)
 
>> diff_b=diff(y,b)
 
diff_b =
 
(a*exp(-(act_x - b)^2/c^2)*(2*act_x - 2*b))/c^2
 
>> diff_c=diff(y,c)
 
diff_c =
 
(2*a*exp(-(act_x - b)^2/c^2)*(act_x - b)^2)/c^3
 
>> 

 

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

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

相关文章

10. 100ASK_V853-PRO开发板支持录音和播放音频

0.前言 ​ 本章主要讲述如何使用板载的MIC拾音咪头录音并使用喇叭播放音频。 ​ 音频_开发指南&#xff1a;https://tina.100ask.net/SdkModule/Linux_AudioFrequency_DevelopmentGuide-02/#220-v853 ​ 全志官方音频介绍&#xff1a;https://v853.docs.aw-ol.com/soft/tina…

HBase分布式安装配置

本环节需要使用root用户完成相关配置&#xff0c;安装HBase需要配置前置环境。命令中要求使用绝对路径&#xff0c;具体要求如下: 确认是否完成Hadoop和Zookeeper的分布式&#xff08;Hadoop伪分布式不可以&#xff09;安装部署&#xff0c;没有的话请进行安装部署并启动。完成…

DeSD:用于3D医学图像分割的深度自蒸馏自监督学习

文章目录 DeSD: Self-Supervised Learning with Deep Self-Distillation for 3D Medical Image Segmentation摘要本文方法Deep Self-DistillationDownstream Transfer Learning 实验结果 DeSD: Self-Supervised Learning with Deep Self-Distillation for 3D Medical Image Seg…

数据结构学习记录——集合及运算(集合的表示、并查集、树结构表示集合、集合运算、查找函数、并运算)

目录 集合的表示 集合运算概述 并查集 树结构表示集合 集合运算 查找函数 并运算 集合的表示 集合运算概述 交、并、补、差&#xff0c;判定一个元素是否属于某一个集合 并查集 集合并、查某元素属于什么集合 我们最主要关心的就是集合的两个运算&#xff0c;一个是把…

【网络原理】TCP原理

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;Java EE初阶&#x1f447; 目 录 &#x1f343;一. 确认应答&#x1f342;二. 超时重传&#x1f341;三. 连接管理&#x1f33f;四. 滑动窗口&#x1f33b;五. 流量控制&#x1f340;六. 拥塞控制&#x1f49…

量子计算:当前阶段仍属于热炒概念

一、量子计算为何可能会成为一个风口&#xff1f; 量子计算是利用量子力学原理进行计算的新型计算方式。与传统的经典计算机不同&#xff0c;量子计算机利用量子比特&#xff08;qubits&#xff09;进行信息处理&#xff0c;由于量子比特可以处于叠加态&#xff0c;这使得量子…

【英】考虑多能负荷不确定性的区域综合能源系统鲁棒规划(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

携手共建数字钢铁,Hightopo亮相第三届钢铁展洽会

4 月 26 日备受期待的第三届钢铁展洽会在日照盛大召开。图扑软件作为智慧钢铁行业领先的 2D 和 3D 图形界面可视化解决方案提供商&#xff0c;受邀参与此次展会。 图扑软件携智慧钢铁三维可视化监控体系亮相“钢铁展洽会”&#xff0c;向众多钢铁企业展示了一系列图扑 HT 数字…

性价比最高的护眼台灯是哪款?最好的护眼台灯

不管你处在学生被动学习还是上班后主动学习的阶段&#xff0c;为自己挑选一款合适的台灯非常重要&#xff0c;因为夜晚的氛围能达到很高的学习效率&#xff0c;而台灯可以保证我们有一个舒适的阅读感受。那在为学习需求挑选台灯时&#xff0c;不应该以平价作为选购标准&#xf…

RTC 体验优化的“极值”度量与应用

随着线上互动需求的增加&#xff0c;直播连麦、语音/视频聊天的应用越来越广泛。我们一直在说“追求用户的极致体验”&#xff0c;但是体验是一个抽象的概念&#xff0c;很难量化和统计。如何从用户的行为中得到所在场景的优化“极值”&#xff0c;如何依据“极值”建立统一的质…

macOS Ventura 13.4 RC2(22F63)发布

系统介绍 根据黑果魏叔官网提供&#xff1a;5 月 12 日消息&#xff0c;苹果今天面向开发人员&#xff0c;发布了 macOS Ventura 13.4 的第 2 个候选 RC 版本&#xff08;内部版本号 22F63&#xff09;&#xff0c;距离上个候选版本相隔数天时间。 macOS Ventura 带来了台前调…

VS2022安装NuGet 包

手动安装 在 解决方案资源管理器 中加载项目&#xff0c;然后选择“项目>管理 NuGet 包”。系统会打开“NuGet 包管理器”窗口。 2、 选择“ 浏览 ”选项卡&#xff0c; 使用左上角的搜索框搜索特定包。 从列表中选择一个包&#xff0c;在右侧窗格中显示其信息&#xff0c;…

MySQL(表的约束)

文章目录 0. 前言1. 空属性2. 默认值3. 列描述4. zerofill5. 主键6. 自增长7. 唯一键8. 外键 0. 前言 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数据的合法性&#xff0c;从业务逻辑角度保证数据的正…

【ChatGPTMidjourney】许多职业即将消失,AI 即将战胜人类了吗?

文章目录 前言一、人类科技发展史二、 AI浪潮下的挑战1. 数据安全和隐私保护问题2. 带来新的伦理和道德问题3. 版权和知识产权问题 三、对传统行业和就业的冲击1.传统文本编辑行业受到冲击2.就业岗位的变化3.工作流程的变化4.创意版权问题 四、AI浪潮下的机遇1.提高效率和创意性…

不用网闸、FTP的话 如何实现内外网数据交换?

网络隔离已然成为很多企业首选的数据保护方式&#xff0c;即使是内部人员之间&#xff0c;也是不能随意的发送敏感文件的。但是&#xff0c;文件的流转交互&#xff0c;又是不可避免的&#xff0c;网络隔离保障了企业网络安全&#xff0c;但在具体实践中仍需解决各隔离网间的数…

基于html+css图展示57

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Ubuntu一条命令下载MCU固件

现在很多项目开发都逐渐的迁移到Linux环境下。但是Linux开发单片机就没有像Windows下开发那么方便&#xff0c;它没有对应开发工具&#xff08;KEIL&#xff0c;IAR等&#xff09;&#xff0c;它们自带烧录等功能。所以在Linux上开发单片机需要安装下载固件的工具–JLink。 J…

小程序上线流程

1.配置服务器域名 小程序接口API 2.业务域名配置 ​首先配置小程序的业务域名&#xff0c;将下载txt文件放在A 域名根目录下&#xff0c;然后才可以配置业务域名为 A 。主要应用场景为&#xff0c;小程序页面跳转其他小程序 3. npm run build:weapp 编译&#xff0c;小程序代…

【ChatGPT】 AI 手把手一步一步教学 Self-Attention:这些动图和代码让你一次读懂ChatGPT背后的“自注意力”

BERT 及其多种变体已经在多种语言理解任务上取得了非常出色的表现,这些架构全都基于 Transformer,而 Transformer 又使用了一种名为「自注意力」的方法。本文将通过图示和代码对自注意力机制进行透彻的解读。当然,在阅读本文之前,你可能也想了解什么是注意力机制。没有问题…

【JS】js常用工具类:

文章目录 一、 将对象拼接到url地址后面二、正则获取url中的图片名称三、获取多数组之间的差集四、数组遍历判断是否需要拼接地址五、 数组去重六、如果值不存在就 push 进数组&#xff0c; 反之不处理七、过滤对象中为NaN&#xff0c;undefined的属性八、字符串中插入千位分隔…