我有一些x y 的点 怎么用matlab进行幂率分布的拟合 形成 y= a*x^b的形式 并画图 求教

x=[2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 28 30 32 36 37 39 40 49 52 62 65 73 76 108]
y=[0.002 0.222 0.241 0.148 0.087 0.062 0.058 0.038 0.026 0.020 0.013 0.011 0.009 0.006 0.008 0.002 0.006 0.004 0.003 0.004 0.003 0.002 0.001 0.005 0.002 0.001 0.001 0.002 0.003 0.002 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001]

 y= a*x^b 两边取自然对数得到 lny = b*lnx + lna,所以可以用坐标变换后的线性拟合

>> x=[2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 28 30 32 36 37 39 40 49 52 62 65 73 76 108];
>> y=[0.002 0.222 0.241 0.148 0.087 0.062 0.058 0.038 0.026 0.020 0.013 0.011 0.009 0.006 0.008 0.002 0.006 0.004 0.003 0.004 0.003 0.002 0.001 0.005 0.002 0.001 0.001 0.002 0.003 0.002 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001];
>> X = log(x);
>> Y = log(y);
>> p = polyfit(X,Y,1)

p =
 -1.4842e+000 -8.6051e-001

>> a = exp(p(2))

a =
  4.2294e-001

>> b = p(1)

b =
 -1.4842e+000

>> plot(x,y,'o')
>> hold on 
>> plot(x,a*x.^b,'r')

温馨提示:内容为网友见解,仅供参考
无其他回答

我有一些x y 的点 怎么用matlab进行幂率分布的拟合 形成 y= a*x^b...
y= a*x^b 两边取自然对数得到 lny = b*lnx + lna,所以可以用坐标变换后的线性拟合 >> x=[2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 28 30 32 36 37 39 40 49 52 62 65 73 76 108];>> y=[0.002 0.222 0.241 0.148 0.087 0.06...

用MATLAB对y=a*x^b模型函数的拟合
figure(1)plot(x,yy,'b',x,Y,'r')直接运行,betafit就是,a和b的值 分别为 77.0556 -0.9244

有2组数据,求用matlab拟合成幂函数y=ax^b曲线,需附图和知道a、b值。多...
第一组数据:第二组数据:

如何利用MATLAB对数据进行曲线拟合
数类型y=a*x*x + b*x,设置参数a、b的上下限,然后点击OK。

如何使用matlab拟合指数分布函数
首先:想办法读出样本点,x=(),y=() (在7.0里用小括号就可以了,不同版本可以自行改一下)之后可参见如下方法,我也是转载ilove.MATLAB论坛上的方法 用过很好用 转载:“在Matlab 6.5以上的环境下,在左下方有一个"Start"按钮,如同Windows的开始菜单,点开它,在目录"Toolboxes"下有一个"...

用Mathematica如何求y=ax^b形式的拟合曲线方程。
用FindFit[]函数 data={{x1,y1},{x2,y2},{x3,y3},{x4,y4}};FindFit[data,a x^b,{a,b},x]

怎么用MATLAB把一系列的点连成一条曲线啊
常用的拟合有多项式拟合POLYFIT 插值有INTERP1,SPLINE,LAGR1等。。。详细看HELP就行。。最简单的是POLYFIT,用法是输入POLYFIT(X,Y,N),其中X和Y 分别表示点的横纵坐标,N表示拟合的次数(通常是2或3)。。比如:用POLYFIT(X,Y,2),得到了结果是a和b和c,那就说明该曲线的公式是:y=aX2+bX+...

用MATLAB只知道一些(x,y,z)坐标,怎样绘制出三维曲面图?
知道一组x、y、z坐标,怎样用MATLAB绘制出三维曲面图。实现方法的步骤:1、根据一组x、y、z的数值,拟合出z=f(x,y)函数关系;2、对x、y在某区间内划分n等分,如x=linspace(0,100,50),y=linspace(-20,20,50),这里n等分为51;3、用[X,Y] = meshgrid(x,y)命令,建立X—Y平面上的...

知道x,y的一系列数据,用matlab求拟合方程的参数。
您好,你可以用nlinfit()函数拟合,精度比较高。2、用matlab的拟合工具箱cftool也是非常方便,而且不用编程。你只要将y=d*(b-exp(-x\/c))*exp(-2*a*log(b*exp(x\/c)-1))输入自定义函数(General Equations)命令框内,就可以得到其拟合系数。用lsqcurvefit()函数和nlinfit()函数进行拟合...

我有散点的xy坐标,求问怎么用MATLAB做一个椭圆把它们圈住,求拟合代码...
用的x、y的散点坐标,去拟合椭圆的参数,即长半轴a、短半轴b,中心坐标(h,k)。要拟合这些参数,可以按下列步骤来实现:首先,我们先要自定义椭圆的一般式函数,即 func=inline('(X(:,1)-a(1)).^2\/a(2).^2+(X(:,2)-a(3)).^2\/a(4).^2-1','a'...

相似回答