看了多篇文章,觉得没有一篇比较全,且可以参照的多元非线性函数拟合,看了多篇文章后总结以下内容,主要以示例给出,希望能帮助到大家快速上手。

1.需要用到的函数语法

beta = nlinfit(X, Y, modelfun, beta0) X为你的自变量,Y是因变量,modelfun是你用inline定义的函数名字,beta0是模型参数的初始值。
还有一个inline的语法,用于定义函数句柄,请参照下面看具体的用法。


2. 多元拟合概述

1.当你需要拟合一个多元函数的时候,需要首先知道其大致的模型,即参数待定的模型,如, y = b 0 + b 1 ∗ x 1 + b 2 ∗ x 2 + b 3 ∗ x 3 y=b_0+b_1*x_1+b_2*x_2+b_3*x_3 y=b0​+b1​∗x1​+b2​∗x2​+b3​∗x3​那么就可以用定义一个函数

mymodel =inline( 'b(1) + b(2) .* x(:,1) + b(3) .* x(:,2) + b(4) .* x(:,3)' ,'b','x');

虽然我给出的的线性函数,但非线性函数也是一样的只需要在inlien里面定义好就行。


2.接下来需要原始数据,这里我的例子会给出数据,方便参照,其次你需要设置初始的参数值如代码中的beta0;
给出拟合例子如下:

clc;clear;close all;
x(:,1) = [180  201 205 208 213 217 218 222 226 230 233 238 240 242 253]';  % 跳高成绩
x(:,2)= [280 240 226 224 220 217 225 221 211 213 199 198 195 186 183]';    % 1000m成绩
x(:,3)= [153 170 162 160 162 165 170 168 169 179 172 172 175 181 176]';    % 跳绳个数
Y = [60    75 70 70 75 75 85 80 80 85 90 90 90 95 95]';                    % 综合打分mymodel =inline( 'b(1) + b(2) .* x(:,1) + b(3) .* x(:,2) + b(4) .* x(:,3)' ,'b','x');
beta0=[9.5,0.7,0.29,0.88];
y0=beta0(1)+beta0(2)* x(:,1)+ beta0(3) .* x(:,2) + beta0(4) .* x(:,3);
beta=nlinfit(x,Y,mymodel,beta0);
yn=beta(1)+beta(2)* x(:,1)+ beta(3) .* x(:,2) + beta(4) .* x(:,3);plot(yn,'DisplayName','yn');hold on;plot(y0,'DisplayName','y0');hold off;legend('\fontname{宋体}拟合参数后的曲线','\fontname{宋体}初始参数下的曲线');

可以得到如下的拟合曲线图,
![在这里插入图片描述](https://img-blog.csdnimg.cn/f291769b96124993b3b135b894a52bfd.png

3 一元函数拟合验证

其实这种方法也可以用于一元线性回归,代码简单。给出例子如下。

X = 1 : 10;
Y = [0 4 8 17 29 34 54 62 80 99];
mymodel = inline('beta(1) * X .^ beta(2)', 'beta', 'X');
beta0 = [1, 2];
beta = nlinfit(X, Y, mymodel, beta0);
yy=beta(1)*X.^beta(2);
plot(X,Y,'*',X,yy,'-or');

结果曲线图为:

Matlab多元非线性函数拟合相关推荐

  1. 多元非线性函数拟合(Matlab_nlinfit函数)

    Process 前两天练题的时候要用到多元非线性拟合,但是在网上找到的大多都是一些求问的帖子,真正有用的回答却不多,这里汇总一下与大家分享. 首先导入数据(参数和结果) 确定自己要拟合的函数(自己画个 ...

  2. matlab拟合高次相,matlab 多元高次非线性函数拟合,回归,求教高手!

    问题描述: matlab 多元高次非线性函数拟合,回归,求教高手! 有这样几个数组 自变量n个: x=[...] y=[...] m=[.] w=[.] . 因变量一个: z=[.] 模型1(两个自变 ...

  3. 《MATLAB 神经网络43个案例分析》:第3章 遗传算法优化BP神经网络——非线性函数拟合

    <MATLAB 神经网络43个案例分析>:第3章 遗传算法优化BP神经网络--非线性函数拟合 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB 神经网 ...

  4. 基于BP神经网络的非线性函数拟合(一维高斯函数)研究-含Matlab代码

    目录 一.引言 二.BP神经网络的结构与原理 2.1 信息前向传播 2.2 误差的反向传播过程 三.基于BP神经网络的非线性函数拟合 3.1 数据生成 3.2 神经网络拟合结果 四.参考文献 五.Ma ...

  5. 【智能控制实验】基于MATLAB的BP神经网络实现非线性函数拟合设计

    基于MATLAB的BP神经网络实现非线性函数拟合设计 一.实验要求: 重点是掌握BP神经网络的学习算法原理,掌握matlab工具箱设计BP神经网络拟合非线性模型的方法(m文件):掌握在图形用户界面下设 ...

  6. 遗传算法优化BP神经网络在非线性函数拟合中的应用

    遗传算法优化BP神经网络在非线性函数拟合中的应用 在工程应用中经常会遇到一些复杂的非线性系统,这些系统状态方程复杂,难以用数学方法精确建模.在这种情况下,可以建立BP神经网络表达这些非线性系统.通常B ...

  7. 基于粒子群算法的神经网络非线性函数拟合

    基于粒子群算法的神经网络非线性函数拟合 文章初心 最近在学机器学习,自己的方向是智能算法,课程报告需要,于是试着把机器学习和粒子群算法相结合,写出来供大家参考,交流. 文末有这部分内容相关的代码,已开 ...

  8. 【机器学习】基于人工鱼群算法的多元非线性函数寻优

    基于人工鱼群算法的多元非线性函数寻优

  9. matlab高斯拟合多峰,MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)

    MATLAB用"fitgmdist"函数拟合高斯混合模型(一维数据) 在MATLAB中"fitgmdist"的用法及其GMM聚类算法中介绍过"fitg ...

最新文章

  1. 均匀分布取某一点概率_概率和概率分布
  2. centos7在分区上建立文件系统和挂载
  3. jquery生成二维码
  4. UNITY 中List.Sort的BUG
  5. BOOST_PP_CHECK_EMPTY宏相关的测试程序
  6. perl语言编程 第四版_2020年,5 种 将死的编程语言
  7. BZOJ 1827: [Usaco2010 Mar]gather 奶牛大集会 树形DP
  8. window 快捷键使用 + idear 编辑器使用
  9. java notify唤醒原理_Java wait和notify虚假唤醒原理
  10. python装饰器应用论文_python 装饰器应用
  11. ASP.NET组件设计Step by Step(8)
  12. 开源计算机集群监控Ganglia应用视频
  13. Windows系统cmd命令检测dll文件
  14. devc语言图形编程教程_devc编程软件程序怎么调试 devc调试步骤图文方法教程
  15. php获取用户手机imei id,获取手机设备信息  IMEI
  16. eclipse常用插件之FindBugs
  17. 怎样将UltraISO做的启动U盘还原成原来的样子
  18. udp buffer 和reassemble buffer
  19. 蒙特卡洛方法求定积分
  20. Python利用re正则表达式抓取豆瓣电影Top250排行榜

热门文章

  1. 【C++之GDB调试】GDB调试从入门到精通
  2. 互联网金融的信息安全(一)新环境的安全形势
  3. 爬虫实战 | 采集可视化知乎问题的回答
  4. 2015计算机考研重点,2015考研管理综合真题及答案:逻辑推理一(网友版)
  5. Lance老师UI系列教程第三课-QQ登录注册界面的实现(android-2012最新版)
  6. 查看网络通不通的几种方法
  7. FastAdmin 多表联查 踩坑
  8. Codeforces Round #401 (Div. 2) D. Cloud of Hashtags(字符串 + 逆向思维)
  9. 百度地图开放平台轻量路径规划
  10. dubbo2.7.x