用MATLAB拟合函数,关系式y=a/(b+x^(-c)),求参数a b c的值

作者&投稿:枞软 (若有异议请与网页底部的电邮联系)
用MATLAB拟合函数,关系式y=a/(b+x^(-c)),求参数a b c的值~

clc;clear allXY=[3.1,25;6.06,100;7.99,225;9.52,400;10.81,625;11.93,900;12.93,1225;13.84,1600;14.65,2025;15.41,2500;16.14,3025;16.82,3600;17.47,4225;18.08,4900;18.65,5625;19.22,6400;19.75,7225;20.25,8100,;20.73,9025;21.18,10000];x=XY(:,1);y=XY(:,2);plot(x,y)f=@(a,x) a(1)./(a(2)+x.^(-a(3))); %拟合形式,数组a即代表[a,b,c]a0=[1,0.02,-5]; % 假设初始值r=lsqcurvefit(f,a0,x,y);hold onplot(x,r(1)./(r(2)+x.^(-r(3))),'r--')legend('拟合前','拟合后')disp(r)
计算出:
a、b、c=
0.2082 -0.0000 3.3837

[x,I]=sort(x);y=y(I);%由于你的数字是杂乱的,我排列一下f=@(a,x)a(1).*x.^(a(2))+a(3); %拟合形式,数组a即代表[a,b,c]a0=[1,0.02,-5]; % 假设初始值r=lsqcurvefit(f,a0,x,y);%非线性拟合%拟合结果保存在r=[a,b,c]plot(x,y)hold onplot(x,r(1)*x.^r(2)+r(3),'r--')legend('拟合前','拟合后')disp(r)
希望帮到你,满意还请采纳哟!!

XY=[25,3.1;100,6.06;225,7.99;400,9.52;625,10.81;900,11.93;1225,12.93;1600,13.84;2025,14.65;2500,15.41;3025,16.14;3600,16.82;4225,17.47;4900,18.08;5625,18.65;6400,19.22;7225,19.75;8100,20.25;9025,20.73;10000,21.18];
y=XY(:,1);
x=XY(:,2);
plot(x,y)
f=@(a,x) a(1)./(a(2)+x.^(-a(3))); %拟合形式,数组a即代表[a,b,c]
a0=[0,8,1];  % 假设初始值
r=lsqcurvefit(f,a0,x,y);
hold on
plot(x,r(1)./(r(2)+x.^(-r(3))),'r--')
legend('拟合前','拟合后')
disp(r)

我有2013a的matlab,https://yunpan.cn/cLaNjSaDh7Y4p  访问密码 c27f



1
2
3
4
5
6
7
8
9
10
11

[x,I]=sort(x);y=y(I);%由于你的数字是杂乱的,我排列一下
f=@(a,x)a(1).*x.^(a(2))+a(3); %拟合形式,数组a即代表[a,b,c]
a0=[1,0.02,-5]; % 假设初始值
r=lsqcurvefit(f,a0,x,y);
%非线性拟合
%拟合结果保存在r=[a,b,c]
plot(x,y)
hold on
plot(x,r(1)*x.^r(2)+r(3),'r--')
legend('拟合前','拟合后')
disp(r)

>> XY=[25,3.1;100,6.06;225,7.99;400,9.52;625,10.81;900,11.93;1225,12.93;1600,13.84;2025,14.65;2500,15.41;3025,16.14;3600,16.82;4225,17.47;4900,18.08;5625,18.65;6400,19.22;7225,19.75;8100,20.25;9025,20.73;10000,21.18];
>> x=XY(:,1);
>> y=XY(:,1);
>> syms t;
f=fittype('a/(b+t^(-c))','independent','t','coefficients',{'a','b','c'});
cfun=fit(x,y,f)
结果:

cfun =

General model:
cfun(t) = a/(b+t^(-c))
Coefficients (with 95% confidence bounds):
a = 1 (1, 1)
b = -2.647e-014 (-9.633e-014, 4.339e-014)
c = 1 (1, 1)

这里括号里的值是置信区间


如何使用matlab进行拟合、求导、求定积分
如何使用matlab进行拟合、求导、求定积分?1、拟合 根据X、Y1、Y2三个向量,做出其散点图,判断散点图的曲线趋势,自定义拟合函数,使用lsqcurvefit拟合函数,求出其拟合系数,得到 A函数:y1=fa(x)B函数:y2=fb(x)2、求导 使用diff函数,分别对A函数和B函数求导 Dy1=diff(fa,1)Dy2=diff(fb...

matlab对数函数拟合(matlab对数函数)
探索MATLAB中的神奇对数拟合:解开背后的奥秘<\/ 在数据科学和工程领域,MATLAB的对数函数扮演着至关重要的角色,但对于新手来说,它可能还显得有些神秘。今天,我们将深入解析如何在MATLAB中优雅地进行对数函数拟合,一起揭开这个强大的工具的面纱。遇到负数的挑战<\/ 首先,我们要知道的是,MATLAB中的对数...

matlab指数函数拟合
详细解释:1. 选择合适的指数模型 指数函数的一般形式为 y = a * exp,其中a和b是需要确定的参数。在实际拟合过程中,可能需要根据数据的特点选择合适的指数模型。有时候需要对数据进行转换以适应模型的形状。2. 使用MATLAB的fit函数进行拟合 MATLAB提供了强大的拟合工具箱,其中的`fit`函数可以用于拟合...

matlab指数函数拟合
拟合函数表达式y=a*exp(b+cx)式中a=0.06154920769, b=-3.18125203, c=7.822374803 拟合度0.9725(相关系数)

如何用matlab数据拟合函数?
Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0。1、在命令行输入数据:》x=[110.3323 148.7328 178.064 202....

matlab拟合函数?
首先,把给出的向量方程,改写为 a1*X+a2*Y+a3=-(X²+Y²)Z(x,y)=-(x²+y²)=a1*x+a2*y+a3 然后,我们用regress最小二乘法回归函数来拟合a1、a2、a3的系数 x=[。。。] %数据 y=[。。。] %数据 Z=-(x²+y²);X=[x y ones(n,1)]...

matlab拟合曲线并输出公式是什么?
要是多项式拟合的就用p是拟合的结果 f=poly2sym(p)f=3*x^5+5*x^4+x^2+12 要是用lsqcurvefit,就在用subs把结果带入函数就好了。在拟合工具箱里面选择需要拟合的目标函数形式,输出就是那个目标函数的待定参数。例如,如果选择和3次多项式ax^3+bx^2+cx+d,则输出a,b,c,d这4个参数。

matlab中polyfit与polyval的功能?
调用方法:polyfit(x,y,n)。用多项式求过已知点的表达式,其中x为源数据点对应的横坐标,可为行向量、矩阵,y为源数据点对应的纵坐标,可为行向量、矩阵,n为你要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况而定。matlab polyfit 做出来的值从左到右表示从高次到低...

用MATLAB拟和经验公式Y=AX^(1\/2)+BX.A,B为要求的参数。 X=(2,4,6...
x = [2;4;6;7]y = [2;6;4;8]X = [sqrt(x) x]a= X\\y A = a(1,1)B = a(2,1)xx = [1:0.1:9];yy = A*sqrt(xx)+B*xx;plot(xx,yy)hold on;scatter(x,y,'r','filled')

下面这组数据用matlab该怎么拟合?怎样获得拟合函数? 急求,谢啦!_百度...
一般采用多项式拟合,即形如:其中,a0,...,an就是拟合系数,求出拟合系数,那么拟合函数就知道了。代码:x=10:0.5:20.5;y=[0.02 0.08 0.02 0.05 0.04 0.04 0.08 0.05 0.07 0.07 0.08 0.14 0.14 0.15 0.18 0.22 0.60 0.74 0.84 0.85 0.95 0.96 ];n = 3...

泸县18312189769: 在matlab中怎样自定义拟合对数函数(y=a*log(b*x)) -
欧维止咳:[答案] 在command window里输入数据与命令: x=[];%数据放进中括号里面. y=[]; cftool 这样就打开了自定义拟合窗口了.如下图: 画圈的地方是,你要设置的.

泸县18312189769: 怎么用matlab 计算两个矩阵的函数关系 Y=f(X),已知两个矩阵 X 和 Y -
欧维止咳:[答案] 好像是没有办法求的.若硬要去求,答案也不会有唯一性. 如果X是个三阶的矩阵,Y是个四阶的,那更谈不上了.

泸县18312189769: 如何用matlab拟合出两组数据之间的关系 -
欧维止咳: Matlab是一个很强大的数据处理软件,是人们进行数据分析的得力助手.一般我们做社会调研或科学研究时,会得到很多实验数据.当需要研究两个变量之间的关系时,经常要用到曲线拟合.曲线拟合不仅能给出拟合后的关系式,还能用图形直...

泸县18312189769: 请问怎样用matlab 拟合函数y=1/2(sinx+cosx). -
欧维止咳: 打开matlab拟合工具箱,选中需要拟合的数据x,y在拟合公式选择框中选择自定义公式,在弹出的对话框中输入自己预定义公式,点击确定开始拟合.

泸县18312189769: 如何利用Matlab拟合出函数关系曲线,并求出函数关系式,需要用幂函数关系 -
欧维止咳: 直接使用CFTOOL工具箱 命令行输入cftool即可,然后选择拟合类型 x=[6.69:0.02:7.53]; y=[4.2,3.7,3.3,2.95,2.63,2.33,2.11,1.87,1.65,1.47,1.32,1.17,1.04,0.925,0.82,0.735,0.653,0.582,0.52,0.462,0.412,0.366,0.325,0.289,0.258,0.23,0.205,0.182,0....

泸县18312189769: matlab拟合函数,表达式为y=a*(x^b)+c. -
欧维止咳: [x,I]=sort(x);y=y(I);%由于你的数字是杂乱的,我排列一下 f=@(a,x)a(1).*x.^(a(2))+a(3); %拟合形式,数组a即代表[a,b,c] a0=[1,0.02,-5]; % 假设初始值 r=lsqcurvefit(f,a0,x,y); %非线性拟合 %拟合结果保存在r=[a,b,c] plot(x,y) hold on plot(x,r(1)*x.^r(2)+r(3),'r--') legend('拟合前','拟合后') disp(r)希望帮到你,满意还请采纳哟!!

泸县18312189769: 怎样用matlab进行数据拟合求出函数关系式 -
欧维止咳: x = [2,4,6.5,8,9,9.5,10,11,12.5,15]; y = [125.18,195.8,265.21,332.56,322.93,372.63,363.29,374.56,430.18,459.29]; p = polyfit(x,y,3); xx = min(x):.1:max(x); yy = polyval(p,xx); plot(x,y,'*'); hold on; plot(xx,yy,'r'); legend('原始数据','3阶拟合曲线',2); hold off; r = vpa(poly2sym(p),2); title(char(r));

泸县18312189769: matlab怎么拟合一个给定的函数 -
欧维止咳: 直接用cftool工具箱,选择自定义函数,然后输入要拟合的函数形式即可.

泸县18312189769: matlab对函数参数进行拟合 -
欧维止咳: 可以用lsqcurvefit()函数或nlinfit()函数拟合.例如:x=[...] y=[...] f=@(c,x)(1+c*log10(1950000))*(134410*(x.^10)-318250*(x.^9)+118590*(x.^8)+382850*(x.^7)-603050*(x.^6)+420570*(x.^5)-168430*(x.^4)+40790*(x.^3)-5850*(x.^2)+460*x) c=lsqcurvefit(f,1,x,y)

泸县18312189769: matlab怎么画拟合曲线啊,急!!
欧维止咳: 在输入栏分别输入x=[...............],y=[.........................] matlab的开始菜单start-&gt;toolboxes-&gt;cirve fitting-&gt;cirve fitting tool, 然后点data选择x和y数据,对应你自己的数据就行了, 然后点cirve fitting tool界面的fitting按钮,里面好几个可以拟合的函数.可以自动生成曲线,得到系数,分析误差.有问题可以继续追问

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网