matlab 指数函数拟合,最小二乘法拟合指数函数(Matlab编程),着急,请指点!...

^^myfun。baimfunction y = myfun(beta,x)A=....B=....C=....m=beta(1);n=beta(2);y=A*(B^m)*(C*x^n)窗口du下执行zhi以dao下命令版beta0=rand(1,权2)[beta,r,J]=nlinfit(x,y,@myfun,beta0);,呵呵bai,还du需要转换zhi一次啊dao。及回y1=exp(z1)clear all x=[1971:1990];y=[8.5229 8.7177 8.9221 9.0859 9.2420 9.3717 9.4974 9.6259 9.7542 9.8705 10.0072 10.1654 10.3008 10.4357 10.5851 10.7507 10.9300 11.1026 11.2704 11.4333]; fun=inline('exp(a(1)*t+a(2))','a','t')a=nlinfit(x,y,fun,[0.01 -20])xx=1970:1990;yy=exp(a(1)*xx+a(2));plot(x,y,'o',xx,yy)z=log(y);p=polyfit(x,z,1)z1=polyval(p,x); y1=exp(z1);figureplot(x,y,'*',x,y1)结果:答a = 0.014631 -26.68p = 0.01468 -26.777追问我的方程指数不是exp的哇,matlab有自带的拟合程序的www.mh456.com防采集。

%方法一y=[50 40 30 20 10 ]; t=[55 63 73 100 121];yp=log(y);p = polyfit(t,yp,1);b=-p(1)a=exp(p(2))yf=a*exp(-b*t);yf-yplot(t,y,'r+',t,yf,'b-')legend('原始点','拟合线')%方法二62616964757a686964616fe78988e69d8331333335313839 %% Fit: 'exp1'.[xData, yData] = prepareCurveData( t, y );% Set up fittype and options.ft = fittype( 'exp1' );opts = fitoptions( ft );opts.StartPoint = [145.2 -0.3];% Fit model to data.[fitresult, gof] = fit( xData, yData, ft, opts );% Plot fit with data.figure( 'Name', 'untitled fit 1' );h = plot( fitresult, xData, yData );legend( h, 'y vs. t', 'exp1', 'Location', 'NorthEast' );% Label axesxlabel( 't' );ylabel( 'y' );fitresultgof%方法三 y=[50 40 30 20 10 ]'; yp=log(y); t=[55 63 73 100 121]'; tl=ones(size(t)); t1=[tl t]; p=t1\yp;b=-p(2)a=exp(p(1))yf=a*exp(-b*t);yf-yplot(t,y,'r+',t,yf,'b-')legend('原始点','拟合线')%方法四regress追问你好,能把那个曲线的未知系数求出来吗?程序,再次感谢追答你拟合的目的就是求出a和b,每个程序都能求出来的。b = 0.0229a = 172.2620

参考代码 % 生成测试数据 a0=1;a1=2;a2=3; x1=rand(10,10); x2=rand(10,10); Y=a0+a1*x1+a2*x2; % 加入随机噪声 Y=Y+0.1*randn(size(y)); % 拟合函数形式 f=@(k,x)k(1)+k(2)*x(:,1)+k(3)*x(:,2); x = [x1(:) x2(:)]; k=lsqcurvefit(f,[1 1 1 1],

u=3182767880,44636111&fm=214&gp=0.jpg

clc;clear all;y=[50 40 30 20 10 ]; x=[55 63 73 100 121];a=[145.2345667367 -0.02061401470466 ];%设置初值来,源很关2113键。f=@5261(a,x)a(1)*exp(-a(2)*x);nlinfit(x,y,f,a)%可以利用toolbox里面的拟4102合函数来确定初值:(先在窗口输入1653x,y值)command window输入cftool,然后再data里面选x,y数值。create data set。Fitting里面选择new fit, type of fit 里面选择exponential,单击apply。在result里面就可以看到a,b的值。(还有不同的组合)然后你点击File,Generate M-file.打开你生成的M-File,里面有st_就是matlab设置的初值。希望可以帮到你。

最小二乘法拟合程序如下: x=1:8; y=[2,3,6,7,5,3,2]; p=polyfit(x,y,2); y1=polyval(p,x); plot(x,y1);

u=2436650345,1397558843&fm=214&gp=0.jpg

内容来自www.mh456.com请勿采集。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值