收集的问题:

如何用matlab来拟合幂律分布,怎样将拟合值和实际值进行对比,放在一个图中,又如何检验实际数据是否符合拟合函数。

如果不符合,如何来直接判断实际数据服从什么样的函数分布呢

在MATLAB里,对数据进行拟合,在双对数坐标下,看数据是否符合幂律分布,求出幂指数,并绘出图形。-In MATLAB, the pairs of data fitting, in double logarithmic coordinates to see whether the data meet the power-law distribution, find the power index, and draw the graph.以傅雷书信为例:(平移237个单位时间)

“>>”后是输入内容,行开头不含“>>”的是MATLAB运行的结果,“/”后是注释部分

>> x=[ ];  /输入修正的书信间隔时间

>> y=[ ];  /输入累积概率

>> loglog(x,y,'ko')  /画出双对数下坐标图(k表示黑色,o表示圆圈)

>> hold on  /保留刚才所画图表,以便继续在此图画出拟合直线

>>  a=polyfit(log(x),log(y),1)  /求拟合直线的参数(一次项和常数项)

a =

-1.0700    5.9525

>> b=2.71828^5.9525  /常数项转化

b =

384.7124

>> x=100:100000;  /根据上面所作的图指定x的取值范围

>> y=b*x.^ -1.0700 ;  /根据刚才的计算输入x和y的关系式

>> plot(x,y,'k')  /在双对数坐标下画出拟合直线

上面程序即可得到我们需要的图形,图形的再编辑可以在Figure窗口下的Edit-Figure Properties里修改(颜色、线条粗细、坐标轴命名等)。

但是得注意的是,用这个plotfit函数不太能够用来拟合很复杂的函数,而只是用来拟合线性的、二维之类的,而用它来拟合幂律分布的曲线时,只能考虑先截取一部分的点,然后用这个函数去拟合。

MATLAB软件提供了基本的曲线拟合函数的命令.

多项式函数拟合:P=polyfit(x,y,n)

其中n表示多项式的最高阶数,x,y为将要拟合的数据,它是用数组的方式输入.输出参数P为拟合多项式 P(1)*X^N + P(2)*X^(N-1) +...+ P(N)*X + P(N+1).的系数

多项式在x处的值y可用下面程序计算.

y=polyval(P,x,m)

线性:m=1, 二次:m=2, …

polyfit的输出是一个多项式系数的行向量。为了计算在xi数据点的多项式值,调用MATLAB的函数polyval。

例:

x=0:0.1:1;

y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];

A=polyfit(x,y,2)

Z=polyval(A,x);

Plot(x,y,’r*’,x,z,’b’)

polyfit不能保证你每次都能得到最优解,math的答案是使用数值计算。

个人认为,对于这种非线性的曲线,尽量不要使用ployfit, ployfit多项式抑合适合线性方程!!

用polyfit()函数去拟合这么复杂的曲线不太合适,polyfit()函数对于数据遵循多项式分布是比较好的,一般来说,利用polyfit()函数拟合的阶数不要超过5阶。 如果是不需要得到拟合曲线的函数,只是把这些点利用一些光滑曲线连接,建议使用三次样条函数spline()进行插值即可。

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的不确定度合成

    当测量结果是一个或多个直接测量量的函数时,即有y=f(x1,x2,-,xn)的函数关系,直接测量量的不确定度u(xi)(i=1,2,-,n)以一定规律传递给测量结果,一般用下述公式进行不确定度合成u2 ...

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

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

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

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

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

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

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

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

  10. matlab计算macd_[原创]基于MATLAB的一个简单的交易策略(基于MACD)的Matlab代码-经管之家官网!...

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

最新文章

  1. webpack 项目使用 html-webpack-plugin(3)
  2. 分分钟玩转多进程编程
  3. asp.net程序调用NTFS分区下Oracle客户端
  4. 我的醉驾拘留15日记----第二日凌晨 午夜惊梦
  5. 径向基(RBF)神经网络
  6. Java反序列化json内存溢出_fastJson与一起堆内存溢出'血案'
  7. echarts 关系 两个多个关系_情感归宿:异性聊天时,常用这些结束语的两个人,关系很难清白...
  8. java 6和_java都到6了 有什么不同 哦????
  9. [转]C#操作注册表
  10. SVM 学习心得
  11. VS2017编写C++多文件时,出现LNK2005、LNK1169报错的解决方法
  12. 高等数学(第七版)同济大学 习题2-3 个人解答
  13. java sts安装步骤_如何安装STS
  14. 模拟CMOS集成电路设计基础 第一章 第二章开头
  15. Parallels Desktop的windows虚拟机无法打开iso文件
  16. html5快速制作,html5动画制作(教你如何快速绘制HTML5动画)
  17. MacBook常用快捷键
  18. 移动硬盘文件丢失如何找回丨500G硬盘
  19. Pytorch——pytorch的基本数据类型
  20. zen cart产品页面伪静态后-c-.html,zencart .htaccess伪静态文件规则

热门文章

  1. OI生涯回忆录(Part3:至初三NOIP发成绩)
  2. js实现时间每秒更新
  3. 携程硅谷人才见面会邀请你参加!
  4. 五、交换机 与 发布/订阅模式、路由模式、主题模式
  5. Java基础——匿名内部类详解及举例
  6. 中国人民大学与加拿大女王大学金融硕士宋会芝:只要开始就不晚
  7. r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数
  8. JS获取json子项/数组的个数/长度
  9. Adobe acrobat修改批注名字
  10. 明明努力了却学不好Java_为什么我这么努力,还是得不到自己想要的结果???...