java 多项式拟合最多的项数_Matlab概率统计与曲线拟合

一、二项分布

  • 二项分布来源于伯努利试验 (事件发生概率 ) :

含义为独立重复N次试验后, 事件总共发生k次的概率

  • 分布函数 二项分布记为
  • binopdf 获得事件共发生次的概率
  • binocdf 为事件最多发生次的概率
  • binornd 将生成一个服从二项分布 规模为 的随机矩阵
  • 二项分布的数字特征

例:画出情况下的二项分布概率特性曲线

N = 100; p = 0.5;     % 总试验次数和单次试验发生概率
k = 0:N;       % 所有可能的事件发生次数
pdf = binopdf(k, N, p);    % 绘制概率曲线
cdf = binocdf(k, N, p);    % 绘制分布曲线
h = plotyy(k, pdf, k, cdf);   % 左右两侧不同的纵轴刻度代表两个函数

绘制结果为:

31d2e60fecc87df9661f7fda297bbf87.png

进阶绘图技巧:set函数的使用

set(get(h(1),'Children'),'Color','b','Marker', '.', 'MarkerSize', 13)
% 句中 get(h(1),'children') 表示获取刚才第一条曲线绘制的所有子对象
% 然后将第一条曲线改为蓝色 并且在采样点加注实心点 不是只画点

set(get(h(1),'Ylabel'), 'String','pdf')
% 句柄包含多个绘图时 需要 get 出来再操作 此行改变了左侧 Y 轴的标记名

set(h(2),'Ycolor',[1, 0, 0])
% 第二条曲线纵坐标轴颜色改为纯红色

set(get(h(2),'Children'),'Color','r','Marker','+','MarkerSize',4)
% 第二条曲线改为红色并用来标注采样点

set(get(h(2), 'Ylabel'),'String', 'cdf')
% 右侧Y轴的标记名
xlabel('k')
grid on

绘图结果为:

6907f6005147e2f8cf8a09f209d2a77a.png

二、正态分布

  • 正态分布 为连续型随机分布,期望 标准差 :

对应分布函数

  • normpdf ) 获得服从正态分布 的随机变量概率密度函数在的取值。

  • normcdf ) 获得上述正态分布随机变量不超过的总概率

  • normrnd 将生成一个服从上述正态分 布,规模为 的随机样本构成的矩阵

  • randn 将生成一个服从标准正态分布 规模为 的随机样本构成的矩阵,事实上,我们可以利用这个矩阵可以构造任何正态分布随机矩阵。

例:正态分布几何表示

mu = 3; sigma = 0.5;
x = mu + sigma*[-3:-1,1:3];         % 设置六个不同的采样点
yf = normcdf(x, mu, sigma);         % 获得六个点的cdf值
P = [yf(4)-yf(3), yf(5)-yf(2), yf(6)-yf(1)];    % 计算cdf的差值(内部区域面积)
xd = 1:0.1:5; yd = normpdf(xd, mu, sigma); clf

for k=1:3
   xx = x(4-k):sigma/10:x(3+k);
   yy = normpdf(xx, mu, sigma);
   % 对于三个不同的面积区间进行不同范围的采样,并获得 pdf 函数的值
   subplot(3, 1, k), plot(xd, yd, 'b');     % 绘图位于3行1列第k个位置
   hold on, fill([x(4-k), xx, x(3+k)], [0, yy, 0], 'g'); hold off
   if k<2
       text(3.8, 0.6, '[{\mu}-{\sigma}, {\mu}+{\sigma}]')
   else
       kk = int2str(k);
       text(3.8, 0.6, ['[{\mu}-', kk, '{\sigma}, {\mu}+', kk, '{\sigma}]'])
   end
   text(2.8, 0.3, num2str(P(k))); shg   % 填充区域内显示面积
end
xlabel('x'); shg

绘图结果为:

06a85422cb2a36f52891383a5eb64dab.png

三、统计分析命令

  • 分别计算矩阵各列的最大值或最小值,
  • 若计算整个矩阵最大元素, 可用 或
  • 分别计算矩阵各列的均值与中位值
  • , 分别计算矩阵各列的样本标准差与样本方差
  • 计算矩阵各列所组成列向量计算出的协方差矩阵, 注意到对应的分丹仍然是
  • 计算矩阵x各列所组成列向量对应的相关系数

例:产生1000个服从的随机数

mu = 2; s = 0.5;
rng(22, 'v5normal')
x = randn(1000, 1);

y = s*x+mu;

subplot(2, 1, 1), histfit(x), axis([-5, 5, 0, 100]), ylabel('x')
subplot(2, 1, 2), histfit(y), axis([-5, 5, 0, 100]), ylabel('y')

ea6748eedc4160e92863ea619392d2c0.png

四、多项式拟合

假设 我们获取其函数曲线上的一组采样点 利用数学方法确定或估计系数 的问题称之为多项式拟合问题

一般来讲,多项式拟合往往会与逼近或插值这两种知识相结合。在采样点准确,函数光滑的情况下,高阶的拟合(即假设更大的 ) 往往效果更佳,但如果采样信息有噪声误差, 过大的可能会让结果失去拟合意义(一般设定 $n

  • p = ployfit(x, y, n)将通过数组和的数据进行拟合,拟合的阶数或次数设定为自然数,返回多项式系数
  • yy=polyval (p, x)可以将多项式系数回代,观察拟合值

利用MATLAB函数计算采样值向量与拟合值向量误差的范数, 范数与范数,可以分析其平方残差绝对值残差一致逼近残差的情况。

例:多项式拟合实例

x0 = 0:0.1:1;
y0 = [-.447, 1.978, 3.11, 5.25, 5.02, 4.66, 4.01, 4.58, 3.45, 5.35, 9.22]; % 构造原始数据
n = 3;P = polyfit(x0, y0, n)            % 多项式拟合
xx = 0:0.01:1; yy = polyval(P, xx);    % 利用得到的多项式代回得到预测值
plot(xx, yy, '-b', x0, y0, '.r', 'MarkerSize', 20);       % 绘图
legend('拟合曲线', '原始数据', 'Location', 'SouthEast')
xlabel('x')

绘制结果为:

7ada54f5a438396bb11f4e04325973fc.png

进阶制表

y1 = polyval(P, x0);
T = table(x0', y0', y1', y1'-y0', 'VariableNames', {'X', 'Y', 'Fit', 'FitError'})

表打印结果为:

T =

  11×4 table

     X       Y         Fit       FitError 
    ___    ______    ________    _________

      0    -0.447    -0.90431     -0.45731
    0.1     1.978      2.2819       0.3039
    0.2      3.11      4.0659      0.95592
    0.3      5.25      4.7879     -0.46211
    0.4      5.02       4.788     -0.23204
    0.5      4.66      4.4063     -0.25372
    0.6      4.01       3.983    -0.027002
    0.7      4.58      3.8583     -0.72174
    0.8      3.45      4.3722      0.92223
    0.9      5.35       5.865      0.51503
      1      9.22      8.6768     -0.54316

1. 多项式拟合的最小二乘理解

polyfit函数的方法即解最小二乘问题 :

方法是构造

易得 在 时, 方程超定 (可能无解) , 此时最小二乘解可以通过 获得

例:用最小二乘法获得拟合结果

x0 = (0:0.1:1)';
y0 = [-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22]';

m = length(x0);
n = 3;
X = zeros(m,n+1);                     %m个采样点,n+1个未知系数

for k=1:n
    X(:, n-k+1) = (x0.^k);
end

X(:, n+1) = ones(m, 1);
aT = (X\y0)'

输出结果应与调用多项式拟合函数得到的P相同

aT =

   56.6915  -87.1174   40.0070   -0.9043

2. 适用于特定问题的拟合或回归方法

  • 岭回归模型:本质上仍可化归为最小二乘问题

其中, 表示拟合系数。

  • Lasso模型:对拟合系数具有稀疏正则的模型:
  • 最小绝对残差 (LAR)模型:对离群值的处理有更好效果 :

实际问题中,线性拟合所使用的基函数也未必一定是多项式, 根据实际问题可以设置为三角函数、指数函数、正态分布的概率密度函数,以及混合定义的基底函数。

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

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

相关文章

mysql -- MAC下安装配置mysql

1:进入官网&#xff0c;链接是 https://dev.mysql.com/downloads/mysql/ 点击第一个dmg文件&#xff0c;download 2:点击 No thanks, just start my download. 3:下载到本地到dmg文件 4:安装MySQL&#xff0c;双击 mysql.dmg 文件&#xff0c;进行安装。 注意&#xff1a;安装…

负载均衡配置与使用

Nginx负载均衡的理解 Nginx是一个轻量级的、高性能的WebServer&#xff0c;他主要可以干下面两件事&#xff1a; 作为http服务器&#xff08;和apache的效果一样&#xff09; 作为反向代理服务器实现负载均衡 现在Nginx到处都可以见到&#xff0c;经常会看到宕机后的网页会显示…

计算机网络基础:网络分类和拓扑结构知识笔记

​​​​​​​1、计算机网络分类 城域网、广域网、局域网网对比 网络分类 缩写 分布距离 计算机分布范围 传输速率范围 局域网 LAN 10、100、1000m左右 房间、楼寓、校园 4Mb/s- 1Gb/s 城域网 MAN 10KM左右 城市 50Kb/s-100Mb/s 广域网 WAN 100KM左右 国家或…

php发送数据到视图格式_PHP-FPM的相关知识的深度解释

一、需要搞清楚几个名词概念1. CGI&#xff08;Common Gateway Interface&#xff0c;CGI&#xff09;通用网关接口, 是Web 服务器运行时外部程序的规范&#xff0c;按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互&#xff0c;还可通过数据API与数据库服…

stm32超声波测距代码_干货!特斯拉Autopilot核心传感器解读超声波雷达篇

加入高工智能汽车行业群(自动驾驶行业4群&#xff0c;车联网智能座舱3群&#xff0c;智能商用车行业群)&#xff0c;加微信&#xff1a;15818636852&#xff0c;并出示名片&#xff0c;仅限智能网联汽车零部件及OEM厂商。目前为止&#xff0c;特斯拉的Autopilot一共经历了三代硬…

计算机网络:网络设备知识笔记

网络设备是实现计算机网络实现用户通信和交互信息的硬件基础。常用的网络设备有中继器、网桥、路由器、集线器等。 1、网络传输介质互联设备 网络线路和用户节点具体衔接时&#xff0c;需要网络传输介质的互联设备。比如T型头&#xff08;同轴电缆连接器&#xff09;、收发器、…

执行git命令时提示秘钥权限太开放‘Permissions 0644 for ‘/Users/liuml/.ssh/id_rsa_tz‘ are too open.’

执行git命令时提示秘钥权限太开放‘Permissions 0644 for /Users/liuml/.ssh/id_rsa_tz are too open.’ 报错如下 这个问题是由于 权限的问题&#xff0c;需要文件设置权限&#xff1a; chmod 600 *

eclipse折叠if语句块_Python学习日志01判断 if 语句

1.条件判断语句&#xff08;if语句&#xff09;在python中&#xff0c;if语句就是用来进行判断的&#xff0c;语法如下&#xff1a;语法&#xff1a;If 条件表达式&#xff1a;代码块执行的流程&#xff1a;if语句在执行时&#xff0c;会先对条件表达式进行求值判断&#xff1b…

mysql怎么可视化连接_IDEA连接MySQL可视化工具连接操作

IDEA连接MySQL可视化工具连接操作入下所示&#xff1a;填写完成后&#xff0c;点击测试连接&#xff0c;连接成功如图所示点击OK即可报告错误(如图所示)&#xff1a;[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up. java.ne…

Windows下图文详解PHP三种运行方式(php_mod、cgi、fastcgi)

PHP能不能成功的在Apache服务器上运行&#xff0c;就看我们如何去配置PHP的运行方式。PHP运行目前为止主要有三种方式&#xff1a; a、以模块加载的方式运行&#xff0c;初学者可能不容易理解&#xff0c;其实就是将PHP集成到Apache服务器&#xff0c;以同一个进程运行。 b、以…

计算机网络基础:ISO/OSI网络体系结构知识笔记​

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

mac下安装redis

官网地址&#xff1a;https://redis.io/ 二、下载完成后解压安装 解压命令 tar zxvf redis-6.0.6.tar.gz 切换到redis目录下 cd redis-6.0.6 编译测试 sudo make test 编译安装 sudo make install sudo make test sudo make install

mysql having和where_浅谈Mysql中where和having的区别

一、误区&#xff1a;不要错误的认为having和group by 必须配合使用.二、where和having用法解析&#xff1a;1、 where和having都可以使用的场景&#xff1a;select goods_price,goods_name from goods where goods_price > 100select goods_price,goods_name from goods ha…

ds证据理论python实现_ALI模型理论以及Python实现

https://openreview.net/forum?idB1ElR4cgg模型结构和明天要发BiGAN模型一模一样&#xff0c;但是两篇论文的作者都是独立完成自己的内容的。而且从写作的风格来看emmm完全不一样ALI跟BiGAN的设计一模一样&#xff0c;但是就是没有加Latent regressor。虽然在ALI中也简要地谈到…

IO操作总结

1&#xff0c;读取文件将文件转换为二进制流 1 InputStream in new FileInputStream("C:/test.png"); 2 byte[] photo new byte[in.available()]; 3 in.read(photo); 4 in.close(); View Code2&#xff0c;写文件 1 Outpu…

计算机网络基础:网络标准相关知识介绍

1、常见的制定网络标准的机构 国际标准化组织、国际电信联盟、电子工业协会、电气和电子工程协会、因特网活动委员会 2、常见的网络标准 2.1 电信标准 国际电信联盟&#xff08;ITU&#xff09;1947年成为联合国的一个组织&#xff0c;包括ITU-R、ITU-T、ITU-D组成。 ITU-R:无线…

1-5Tomcat 目录结构 和 web项目目录结构

对应我的安装路径&#xff1a; web项目目录结构 转载于:https://www.cnblogs.com/huiziz/p/5671612.html

execjs执行js出现window对象未定义时的解决_10个常见的JS语言错误总汇

1、 Uncaught TypeError: Cannot Read Property这是 JavaScript 开发人员最常遇到的错误。当你读取一个属性或调用一个未定义对象的方法时&#xff0c;Chrome 中就会报出这样的错误。导致这个错误发生的原因有很多&#xff0c;常见的一种情况是在渲染 UI 组件时&#xff0c;不正…

安卓logcat工具apk_backdoorapk 安卓APK后门捆绑脚本

项目地址https://github.com/dana-at-cp/backdoor-apk项目介绍backdoor-apk是一个bash写的脚本&#xff0c;通过msfvenom生成一个android的payload&#xff0c;然后再使用apktools将payload捆绑到正常的apk文件中。使用方法rootkali:~/Android/evol-lab/BaiduBrowserRat# ./bac…

java8 supplier 接口

Supplier 接口 Supplier 接口是一个供给型的接口&#xff0c;其实&#xff0c;说白了就是一个容器&#xff0c;可以用来存储数据&#xff0c;然后可以供其他方法使用的这么一个接口 *** Supplier接口测试&#xff0c;supplier相当一个容器或者变量&#xff0c;可以存储值*/Tes…