| 查看: 2190 | 回复: 8 | |||
[交流]
【求助】急求关于matlab做非线性拟合的函数
|
|||
|
我这里有三十组X1、X2与Y值,想拟合出它们之间的二元非线性回归方程,不知道如何下手,望知道的童鞋指点。 X1=[367 357 348 338 333360 351 343 335 329 363 355 344 337 330 358 351 343 334 327 358 352 340 332 326 362 356 344 337 332] X2=[600 630 650 680 710 625 645 678 712 720 640 635 688 679 727 642 664 693 67 5 740 630 648 689 710 742 620 643 667 701 710] Y=[10.60 17.01 25.40 38.52 46.99 14.47 21.77 31.30 41.89 52.05 12.65 19.49 30. 28 40.32 51.33 16.11 22.22 32.02 44.25 57.64 15.68 21.09 34.85 47.01 59.45 13. 37 17.39 30.03 39.29 47.97] 如果用matlaB回归的话,希望可以转告程序! 不胜感激,多谢!我一共就32枚金币,但是系统提示送不了30枚,所以就送25枚了 急求! |
» 猜你喜欢
308求调剂
已经有4人回复
NSFC申报书里申请人简历中代表性论著还需要在申报书最后的附件里面再上传一遍吗
已经有14人回复
材料与化工一志愿南昌大学327求调剂推荐
已经有6人回复
化学调剂0703
已经有7人回复
327求调剂
已经有11人回复
调剂
已经有8人回复
梁成伟老师课题组欢迎你的加入
已经有7人回复
伙伴们,祝我生日快乐吧
已经有24人回复
中科院材料273求调剂
已经有3人回复
材料工程专硕274一志愿211求调剂
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
在matlab中拟合曲面的表达式
已经有29人回复
matlab拟合拟均相动力学参数
已经有6人回复
需要用matlab拟合数据的外行人急需帮助
已经有10人回复
matlab非线性参数拟合问题
已经有7人回复
求助Matlab lsqcurve函数曲线拟合
已经有3人回复
【求助】使用MATLAB拟合出按照公式的系数
已经有19人回复
如何用MATLAB拟合指数函数
已经有3人回复
【原创】多项式和非多项式曲线拟合的MATLAB实现视频教程
已经有10人回复
【求助】如何使得matlab拟合的曲线强制经过一个点
已经有8人回复
» 抢金币啦!回帖就可以得到:
物理学 调剂
+1/84
重庆医科大学神经科学中心/病生与生理系诚邀海内外优秀博士加盟博士后队伍(长期)
+1/84
物理学 调剂
+1/82
生殖医学与子代健康全国重点实验室遗传学课题组招收研究生(长期有效)
+1/34
纺织科学与工程、材料化工方向招收研究生
+1/30
西安建筑科技大学,樊重庆课题组招收调剂研究生1名。
+2/28
江西理工大学稀土学院/国家稀土功能材料创新中心招收博士研究生和调剂硕士研究生
+1/17
2026年西南科技大学功能涂层课题组简介
+1/14
青岛科技大学0860 调剂招生
+1/13
重庆大学诚招2026年生物材料方向博士生
+1/8
英国埃克塞特大学 & 法国巴黎萨克雷大学联合培养博士
+1/8
上海科技大学物质学院招收有机化学方向2026级工程博士
+1/8
课题组招收环境及相关专业调剂硕士研究生(欢迎优秀学生加入)
+1/8
复旦大学集成电路学院程增光课题组急聘科研助理
+1/6
重庆大学诚招2026年生物材料方向博士生
+1/4
重庆交通大学山区桥梁及隧道工程国家重点实验室——Smart Concrete Lab招生
+1/2
南方科技大学基础免疫与微生物学系招聘科研助理1-2名,从事微生物与免疫学方向研究
+1/2
澳洲维多利亚大学计算机类全额奖学金博士招生 (邮箱+微信可联系)
+1/2
339求调剂
+1/1
澳大利亚科学院院士Prof.Gordon Wallace, University of Wollongong 全奖博士机会
+1/1
2楼2011-01-04 13:03:28
3楼2011-01-04 13:12:18
★ ★
lanlan0822(金币+5): 2011-01-05 09:01:31
xiegangmai(金币+2):辛苦了,谢谢应助! 2011-01-07 22:07:27
lanlan0822(金币+5): 2011-01-05 09:01:31
xiegangmai(金币+2):辛苦了,谢谢应助! 2011-01-07 22:07:27
|
楼主给你个例子,你自己琢磨琢磨吧。我觉得最好的学习方式就是按照一个例子自己摸索试验。 例程:方程为F=K*X+C*Y+Z*(1-exp(-B*y^2))-F0 F,X,Y,F0,都是已知的列向量,拟合参数K,C,Z,B 解:在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function F=zhidao_31(a,x) %其中K,C,Z,B分别用a(1),a(2),a(3),a(4)代替 %X,Y,F0分别用x(:,1),x(:,2),x(:,3)代替 F=a(1)*x(:,1)+a(2)*x(:,2)+a(3)*(1-exp(-a(4)*x(:,2).^2))-x(:,3); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 以下是测试:在Matlab下面输入: %先由已经的x,y,F0和已知的k,c,z,b来产生F,然后通过x,y,F0,F %验证一下:能否得到我们刚才所选用的参数k,c,z,b %下面以随机数为例 x=rand(100,1); y=rand(100,1); F0=rand(100,1); k=1; c=1.5; z=2.5; b=3.5; X=[x,y,F0]; F=zhidao_31([k,c,z,b],X); [A,res]=lsqcurvefit('zhidao_31',ones(1,4),X,F); A 得到的结果: A = 1.0033 1.4446 2.5520 3.4853 跟k,c,z,b的值大致一样。 ------------------------------------------ 例题中的问题: 设好x,y,F0,F后,在Matlab下输入: [A,res]=lsqcurvefit('zhidao_31',ones(1,4),[x,y,F0],F); %注意x,y大小写。 A 就可以了。 |
5楼2011-01-04 13:46:08
6楼2011-01-04 15:29:37
7楼2011-01-04 15:30:35
★
小木虫: 金币+0.5, 给个红包,谢谢回帖
小木虫: 金币+0.5, 给个红包,谢谢回帖
|
y=p0+p1*x1+p2*x2;p1 p0 = 352.718330203856 p1 = -1.03742355830517 p2 = 0.0544705855433249 相关系数(R): 0.988109884761729 y=p0+p1*x1+p2*x2+p3*x1^2+p4*x2^2+p5*x1*x2; p0 = 5409.56927884948 p1 = -22.0861948342262 p2 = -4.06582793544753 p3 = 0.024111003125518 p4 = 0.00140539387129161 p5 = 0.0063262492366287 相关系数(R): 0.999477545777094 |
8楼2013-11-01 20:38:21
★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
1592203609: 金币+1, 谢谢回帖 2013-11-02 12:18:48
小木虫: 金币+0.5, 给个红包,谢谢回帖
1592203609: 金币+1, 谢谢回帖 2013-11-02 12:18:48
|
假设你预期的二元二次方程为 y = b1 + b2*X1 + b3*X2 + b4*X1*X2 + b5*X1^2 + b6*X2^2 程序如下 X1=[367 357 348 338 333360 351 343 335 329 363 355 344 337 330 358 351 343 334 327 358 352 340 332 326 362 356 344 337 332 357]; X2=[600 630 650 680 710 625 645 678 712 720 640 635 688 679 727 642 664 693 675 740 630 648 689 710 742 620 643 667 701 710]; Y=[10.60 17.01 25.40 38.52 46.99 14.47 21.77 31.30 41.89 52.05 12.65 19.49 30.28 40.32 51.33 16.11 22.22 32.02 44.25 57.64 15.68 21.09 34.85 47.01 59.45 13.37 17.39 30.03 39.29 47.97]; modelfun = @(b,x)b(1)+b(2)*x(1, +b(3)*x(2, +b(4)*x(1, .*x(2, +b(5)*x(1, .^2+b(6)*x(2, .^2;beta0 = [1 2 3 4 5 6]; mdl = nlinfit([X1;X2],Y,modelfun,beta0) 如果效果不好,可以考虑加权函数或启用robust. |
9楼2013-11-02 05:09:24
简单回复
zyxme4楼
2011-01-04 13:20
回复
robert2020(金币-2):为了他人的方便,请勿在求助帖中纯表无意义回复! 2011-01-11 10:34:40














回复此楼

+b(3)*x(2,