教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

matlab多元非线性回归(4)

来源:网络收集 时间:2026-09-25
导读: d=beta(4); e=beta(5); f=beta(6);%系数向量中的一个元素代表一个待定系数 x1=x(:,1);%自变量矩阵每一列代表一个自变量 x2=x(:,2); x3=x(:,3); f=a+b.*x1+c.*x2+d.*(x3.^2)+e.*(x1.^2)+f.*sin(x2); 但计算出现了问

d=beta(4); e=beta(5);

f=beta(6);%系数向量中的一个元素代表一个待定系数 x1=x(:,1);%自变量矩阵每一列代表一个自变量 x2=x(:,2); x3=x(:,3);

f=a+b.*x1+c.*x2+d.*(x3.^2)+e.*(x1.^2)+f.*sin(x2); 但计算出现了问题

例2

混凝土的抗压强度随养护时间的延长而增加,现将一批混凝土作成12个试块,记录了养护日期(日)及抗压强度y(kg/cm2)的数据: 养护时间:x =[2 3 4 5 7 9 12 14 17 21 28 56 ] 抗压强度:y =[35+r 42+r 47+r 53+r 59+r 65+r 68+r 73+r 76+r 82+r 86+r 99+r ] 建立非线性回归模型,对得到的模型和系数进行检验。 注明:此题中的+r代表加上一个[-0.5,0.5]之间的随机数 模型为:y=a+k1*exp(m*x)+k2*exp(-m*x); ------有四个待定系数 Matlab程序:

x=[2 3 4 5 7 9 12 14 17 21 28 56]; r=rand(1,12)-0.5;

y1=[35 42 47 53 59 65 68 73 76 82 86 99]; y=y1+r ;

myfunc=inline('beta(1)+beta(2)*exp(beta(4)*x)+beta(3)*exp(-beta(4)*x)','beta','x'); ----- beta=nlinfit(x,y,myfunc,[0.5 0.5 0.5 0.5]); ---初值为0.2也可以,如为1则不行,则试着换系数初值----此处为一元,x’,y’行/列向量都可以

a=beta(1),k1=beta(2),k2=beta(3),m=beta(4)%test the model xx=min(x):max(x); -----2:56 yy=a+k1*exp(m*xx)+k2*exp(-m*xx); plot(x,y,'o',xx,yy,'r') 结果: a = 87.5244 k1 = 0.0269

k2 = -63.4591 m = 0.1083 图形:

此题不能用regress求解,因为有些式子中含有两个待定系数

例3

出钢时所用的盛钢水的钢包,由于钢水对耐火材料的侵蚀,容积不断增大.我们希望知道使用次数与增大的容积之间的关系.对一钢包作试验,测得的数据列于下表:

使用次数 2 3 4 5 6 7 8 9

对将要拟合的非线性模型y= aeb/x,(如再加y= c*sin(x)+aeb/x) 建立m-文件volum.m如下: function yhat=volum(beta,x)

增大容积 6.42 8.20 9.58 9.50 9.70 10.00 9.93 9.99 使用次数 10 11 12 13 14 15 16 增大容积 10.49 10.59 10.60 10.80 10.60 10.90 10.76

yhat=beta(1)*exp(beta(2)./x);或 function f=zhang1(beta,x) a=beta(1); b=beta(2); f=a*exp(b./x);--- 2、输入数据: >> x=2:16;

>> y=[6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76]; >> beta0=[8 2]';----初值[1,1]也可以 3、求回归系数:

>> [beta,r ,J]=nlinfit(x',y','volum',beta0); ?ta0初值为列/行向量都可以,还是为列吧。 >> beta beta = 11.6037 -1.0641

即得回归模型为:y?11.6036e

4、预测及作图:

>> [YY,delta]=nlpredci('volum',x',beta,r ,J) >>plot(x,y,'k+',x,YY,'r')

或>> plot(x,y,'ro') >> hold on >> xx=2:0.05:16;

>> yy=beta(1)*exp(beta(2)./xx); >> plot(xx,yy,'g')

又或>> plot(x,y,'ro') >> hold on >> xx=2:0.05:16;

>> yy=volum(beta,xx);--------通过调用用户自编的函数

1.10641?x

>> plot(xx,yy,'g')

1110.5109.598.587.576.56246810121416

>> [beta,r ,J]=nlinfit(x',y','volum',[1,1]); %下面换了多个初值,结果都是一样的。 >> beta

beta =11.6037 -1.0641

>> [beta,r ,J]=nlinfit(x',y','volum',[1,5]); >> beta

beta = 11.6037 -1.064

>> [beta,r ,J]=nlinfit(x',y','volum',[10,5]); beta =11.6037 -1.0641

>> [beta,r ,J]=nlinfit(x',y','volum',[10,50]); beta =11.6037 -1.0641

以下用来lsqcurvefit求解,结果是一样的。 >> [beta,a,b,exitflag]=lsqcurvefit('volum',[8,2],x',y') Optimization terminated: relative function value changing by less than OPTIONS.TolFun. beta = 11.6037 -1.0641 exitflag = 3

>> [beta,a,b,exitflag]=lsqcurvefit('volum',[1,1],x',y') %换不同的初值,结果是一样的。 beta = 11.6037 -1.0641 exitflag = 3

>> [beta,a,b,exitflag]=lsqcurvefit('volum',[10,1],x',y') beta = 11.6037 -1.0641 exitflag = 3

>> [beta,a,b,exitflag]=lsqcurvefit('volum',[10,5],x',y') beta = 11.6037 -1.0641 exitflag = 3

>> [beta,a,b,exitflag]=lsqcurvefit('volum',[10,50],x',y') beta = 11.6037 -1.0641 exitflag = 3

例4

财政收入预测问题:财政收入与国民收入、工业总产值、农业总产值、总人口、就业人口、固定资产投资等因素有关。下表列出了1952-1981年的原始数据,试构造预测模型。财政收入预测问题:财政收入与国民收入、工业总产值、农业总产值、总人口、就业人口、固定资产投资等因素有关。下表列出了1952-1981年的原始数据,试构造预测模型。

年份 国民收入(亿元) 工业总产值(亿元) 农业总产值(亿元) 总人口(万人) 就业人口(万人) 固定资产投资(亿元) 财政收入(亿元) 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970

598 586 707 737 825 837 1028 1114 1079 757 677 779 943 1152 1322 1249 1187 1372 1638 349 455 520 558 715 798 1235 1681 1870 1156 964 1046 1250 1581 1911 1647 1565 2101 2747 461 475 491 529 556 575 598 509 444 434 461 514 584 632 687 697 680 688 767 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 67295 69172 70499 72538 74542 76368 78534 80671 82992 20729 21364 21832 22328 23018 23711 26600 26173 25880 25590 25110 26640 27736 28670 29805 30814 31915 33225 34432 44 89 97 98 150 139 256 338 380 138 66 85 129 175 212 156 127 207 312 184 216 248 254 268 286 357 444 506 271 230 266 323 393 466 352 303 447 564

…… 此处隐藏:1979字,全部文档内容请下载后查看。喜欢就下载吧 ……
matlab多元非线性回归(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/604141.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)