| 查看: 2127 | 回复: 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枚了 急求! |
» 猜你喜欢
基金申报
已经有4人回复
计算机、0854电子信息(085401-058412)调剂
已经有4人回复
国自然申请面上模板最新2026版出了吗?
已经有9人回复
溴的反应液脱色
已经有6人回复
纳米粒子粒径的测量
已经有7人回复
常年博士招收(双一流,工科)
已经有4人回复
推荐一本书
已经有10人回复
参与限项
已经有5人回复
有没有人能给点建议
已经有5人回复
假如你的研究生提出不合理要求
已经有12人回复
» 本主题相关价值贴推荐,对您同样有帮助:
在matlab中拟合曲面的表达式
已经有29人回复
matlab拟合拟均相动力学参数
已经有6人回复
需要用matlab拟合数据的外行人急需帮助
已经有10人回复
matlab非线性参数拟合问题
已经有7人回复
求助Matlab lsqcurve函数曲线拟合
已经有3人回复
【求助】使用MATLAB拟合出按照公式的系数
已经有19人回复
如何用MATLAB拟合指数函数
已经有3人回复
【原创】多项式和非多项式曲线拟合的MATLAB实现视频教程
已经有10人回复
【求助】如何使得matlab拟合的曲线强制经过一个点
已经有8人回复
» 抢金币啦!回帖就可以得到:
大龄博士征婚
+1/644
柔性电子全国重点实验室(南邮)诚聘博士后(长期有效)
+2/128
供应EXAKT德国艾卡特3D打印材料分散用三辊研磨机80E PLUS
+1/81
招聘:中国科学院山西煤炭化学研究所
+1/79
双一流南京医科大学招计算机、AI、统计、生物信息等方向26年9月入学博士
+1/76
上海科技大学物质科学与技术学院|王平鸾课题组长期招聘(博后/博硕/科研助理)
+1/71
湖南科技大学资安学院管青军教授2026年招收审核制博士生
+1/64
真诚找对象
+1/57
时间的眼神
+1/56
香港理工大学招收电力系统优化及运筹学博士后
+1/56
江西理工大学 稀土学院(发光材料与器件研究所) 招收2026届 材料类博士研究生 2名
+2/28
求助寒假实习
+1/20
深圳市中西医结合医院博士后招聘【药理学/中药学/天然药物/生物技术】
+1/9
【博士后/科研助理招聘-北京理工大学-集成电路与电子学院-国家杰青团队】
+1/5
天津理工大学材料学院陈民芳课题组诚招2026年秋季入学博士生
+1/5
【博士后/科研助理招聘-北京理工大学-集成电路与电子学院-国家杰青团队】
+1/4
中国科学院大学-杨晗课题组-诚聘-博士后、副研究员
+1/3
南京邮电大学材料科学与工程学院柔性电子研究所2026年招聘公告
+1/3
香港中文大学(深圳)管君课题组博士后招聘-微纳光学方向
+1/3
湖南大学JQ团队段辉高教授课题组招光学、算法博士啦!2026级,2个名额,等你加入!
+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,