从一个例子出发

已知数据

y=[1.2 1.5 1.8 2.2 2.7 3.6 4.16 4.79 5.26 5.64 10.5 11.1 11.6 11.7 26.9 41.2 ]

x=[1.5 1.8 2.1 2.5 3 3.8 4.7 5.3 5.8 6.1 14.1 16.2 18.6 19.3 36.1 60.5]

散点图为

x、y满足的关系为:

y ( x ) = ∫ 0 x a d x 1 + b / x \ y(x)=\int_0^x \frac{adx} {1+b/x}y(x)=∫0x​1+b/xadx​

使用fitnlm函数

函数的用法可以具体参考:

https://ww2.mathworks.cn/help/stats/fitnlm.html?requestedDomain=cn

这里使用:

mdl = fitnlm(x,y,modelfun,beta0)形式

其中modelfun是函数句柄,也就是我们需要自己定义的y与x之间的关系

这里使用function形式,也可以单独保存为一个.m文件

function y=myfun(p,x)

N=size(x,1); %传入进来的是x向量

y=zeros(N,1); %需要计算每一个y分量

Nn=1e5; %自定义积分间隔,相当于把积分形式化为求和

Mn=1/Nn;

for i=1:N

for j=1:(x(i)*Nn)

y(i)=y(i)+p(1)*Mn/(1+p(2)/(Mn*j)); %求和代替积分

end

end

end

beta0是给定的初始值。

beta0=[0.5,0]; %自己选定的,或者说自己猜的

nlm1=fitnlm(x,y,@myfun,beta0); %注意@不要忘了

完整程序:

y=[1.2 1.5 1.8 2.2 2.7 3.6 4.16 4.79 5.26 5.64 10.5 11.1 11.6 11.7 26.9 41.2 ];

x=[1.5 1.8 2.1 2.5 3 3.8 4.7 5.3 5.8 6.1 14.1 16.2 18.6 19.3 36.1 60.5]

plot(x,y,'-o')

ylim([0,50])

xlim([0,70])

xlabel('x','FontSize',20)

ylabel('y','FontSize',20)

hold on

beta0=[0.5,0];

nlm1=fitnlm(x,y,@myfun,beta0);

ynew=nlm1.predict(x);

plot(x,ynew)

function y=myfun(p,x)

N=size(x,1); %传入进来的是x向量

y=zeros(N,1); %需要计算每一个y分量

Nn=1e5; %自定义积分间隔,相当于把积分形式化为求和

Mn=1/Nn;

for i=1:N

for j=1:(x(i)*Nn)

y(i)=y(i)+p(1)*Mn/(1+p(2)/(Mn*j)); %求和代替积分

end

end

end

最后的结果:

nlm1的结果为:

nlm1 =

Nonlinear regression model:

y ~ myfun(b,X)

Estimated Coefficients:

Estimate SE tStat pValue

________ __________ __________ __________

b1 0.6704 0.015457 43.371 2.5239e-16

b2 -0.10095 6.8484e-07 -1.474e+05 9.6578e-66

Number of observations: 16, Error degrees of freedom: 14

Root Mean Squared Error: 0.955

R-Squared: 0.993, Adjusted R-Squared 0.992

F-statistic vs. zero model: 1.67e+03, p-value = 2.21e-17

使用matlab计算变上限积分,matlab含有变上限积分参数的非线性回归相关推荐

  1. matlab 计算指北角,用MATLAB如何计算出矩形区域内的最大值?

    在MATLAB图像处理工具箱(Image Processing Toolbox)的GUI函数中,有一些用来在图像或坐标轴上选择矩形或椭圆区域的函数,使用示例如下: 第一行代码:显示matlab内置的一 ...

  2. spwm matlab 计算波表,利用MATLAB计算SPWM脉冲宽度与并应用STM32输出

    先上一张spwm波形生成原理图: 首先利用MATLAB产生三角波与正弦波叠加: %% 产生正弦波与三角波叠加 y1=abs(sawtooth(a*2*pi*m,0.5));%三角波 y2=0.8*si ...

  3. matlab计算重心的函数,MATLAB计算出图像中多个物体的个数及重心.doc

    MATLAB计算出图像中多个物体的个数及重心 计算出原始图像中物体的个数及每个物体的中心,并显示出来 I=imread('keshe17.bmp'); //主函数 figure(1),imshow(I ...

  4. matlab计算膜孔径分布,应用Matlab绘制活性炭吸附等温线和孔径分布图

    第 31 卷 第 9 期 2012 年 9 月 实 验 室 研 究 与 探 索 RESEARCH AND EXPLORATION IN LABORATORY Vol. 31 No. 9 Sep. 20 ...

  5. matlab计算一个长式子,matlab求积分,式子太长

    小弟遇到一式子, f(x)=6.02538E28*x^3*(-3.1542E-57/x^2+5.5256E47*(sin(1.4116*x)-1.4116*x*cos(1.4116*x))*exp(- ...

  6. matlab计算sinx近似值,《Matlab与数学实验》期末作业

    <Matlab与数学实验>期末作业 深圳大学考试答题纸 (以论文.报告等形式考核专用) 二○一 四 -二○一 五 学年度第 一 学期 课程编号 1601600001 学 号 2013800 ...

  7. matlab计算结果为inf,matlab里的mean为什么计算结果是inf

    matlab中的mean函数是什么意思啊,如何使用 在matlab中小编知道mean函数是分享均值的,可是mean(x,dim)中的dim是什么mean :平均值或数组的平均值 语法: M = mea ...

  8. matlab计算函数区域面积,matlab 中函数regionprops 求解区域面积的原理

    在matlab图像处理中太有用了,regionprops用来度量图像区域属性的函数. 函数:regionprops.顾名思义:它的用途是get the properties of region,即用来 ...

  9. matlab计算macd_[原创]基于MATLAB的一个简单的交易策略(基于MACD)的Matlab代码

    %%此程序用来计算MACD指标并对其有效性进行回测检验 %%原始数据命名为stk_clpr,且第一列为收盘价,第二列为交易日期 %% 计算相关指标(这里也可编一个函数),第一天初始化:DIFF=DEA ...

  10. matlab 计算结果为nan,matlab 计算 结果总是为Nan

    本人刚刚接触matlab,对这些运算不是很懂  计算ni的位置(exp(-E_g./(2.*k.*T))+eps)这个值之前一直是0 加了eps后就有结果显示了 后面部分exp((alfa.*T)./ ...

最新文章

  1. 无锡朗贤获B+轮融资,辰韬资本、兴韬投资领投
  2. aspx文件、aspx.cs文件、aspx.designer.cs文件之讲解
  3. 全网最深刻的理解音频转码swr_convert(2019/10/29已补充修正)
  4. Oracle 原理: 过程和函数
  5. mysql 怎么登陆远程服务器_教你手机怎么远程连接云服务器
  6. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---55
  7. 2019-03-28 SQL Server Pivot
  8. thinkpad t460p恢复原厂系统以及设置的方式
  9. WordPress数据库管理中五个实用的phpMyAdmin技巧
  10. Responsive Web Design 简单介绍与优缺点、实作入门, 响应式设计
  11. mysql表空间不足_MySQL Innodb表空间不足的处理方法 风好大
  12. web前端入门到实战:CSS3两大实用属性,以及网页制作技巧
  13. centos删除文件不释放_Linux运维知识之linux centos下彻底删除文件 解决删除文件文件夹硬盘空间不释放不减少...
  14. Kafka开发--C#生产和消费消息
  15. python 序列化之JSON和pickle详解
  16. 有效解决RaycastTarget勾选过多的烦恼
  17. 在x86笔记本电脑上运行树莓派操作系统
  18. 世界首款前置前驱混动8挡自动变速器山东潍坊问世
  19. Python中杨辉三角的理解(廖雪峰教程例)
  20. Python二级考试试题汇总(史上最全)

热门文章

  1. CRAFT(Character Region Awareness for Text Detection)
  2. 皇子皮肤测试软件,买了皇子的SSG皮肤,说一下特效和手感,顺便说下皇子各个皮肤排名。...
  3. redhat指定ntp服务器,redhat 6.3 ntp 服务器
  4. Springboot毕设项目M11463家居网9m26y(java+VUE+Mybatis+Maven+Mysql)
  5. C++ QT开发人机象棋(棋子走法)
  6. google 身份验证器 谷歌服务器,整整10年!谷歌身份验证器终于带来数据转移服务 不用挨个解绑取消啦...
  7. vue-baidu-map 百度地图(定位替换图标,添加标签)
  8. spring boot基于Java的电影院售票与管理系统毕业设计源码011449
  9. RIGOL DS70000系列示波器在USB2.0一致性分析测试方案
  10. 3D数据基础——向量介绍与3D向量类的实现