| 查看: 2154 | 回复: 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枚了 急求! |
» 猜你喜欢
酰胺脱乙酰基
已经有9人回复
有时候真觉得大城市人没有县城人甚至个体户幸福
已经有3人回复
CSC & MSCA 博洛尼亚大学能源材料课题组博士/博士后招生|MSCA经费充足、排名优
已经有5人回复
有70后还继续奋斗在职场上的吗?
已经有6人回复
博士延得我,科研能力直往上蹿
已经有7人回复
退学或坚持读
已经有27人回复
面上基金申报没有其他的参与者成吗
已经有5人回复
遇见不省心的家人很难过
已经有22人回复
» 本主题相关价值贴推荐,对您同样有帮助:
在matlab中拟合曲面的表达式
已经有29人回复
matlab拟合拟均相动力学参数
已经有6人回复
需要用matlab拟合数据的外行人急需帮助
已经有10人回复
matlab非线性参数拟合问题
已经有7人回复
求助Matlab lsqcurve函数曲线拟合
已经有3人回复
【求助】使用MATLAB拟合出按照公式的系数
已经有19人回复
如何用MATLAB拟合指数函数
已经有3人回复
【原创】多项式和非多项式曲线拟合的MATLAB实现视频教程
已经有10人回复
【求助】如何使得matlab拟合的曲线强制经过一个点
已经有8人回复
» 抢金币啦!回帖就可以得到:
湖南大学材料院陶益杰老师招收2026年秋季入学博士生一名及联合培养硕士学生一名
+1/194
电力全国重点实验室双一流A类长江学者团队招2026年全日制博士1-2名/博士后
+2/52
山东科技大学招聘化学化工博士博士后
+1/26
江西理工大学 稀土学院 稀土功能材料方向 招收2026届博士研究生、硕士研究生
+1/26
中科院深圳先进院-免疫治疗方向-招收1名博士生(26年9月入学)
+1/10
意大利华人老师University of Padova-全额奖学金博士
+1/10
哈工大 张乃庆课题组招收博士快响计划(名额充足),通过后随时入学
+1/10
江汉大学轩亮教授课题组招博士研究生/博士后
+1/10
太原理工大学集成电路学院院长团队招收2026年博士研究生
+1/7
中国科学院深圳先进技术研究院——招聘博士后
+3/7
江汉大学轩亮教授课题组招博士研究生/博士后
+1/7
国家“双一流”建设高校-南京林业大学-国家级青年人才团队招聘 2026级博士研究生
+1/5
澳科大招收2026年秋季入学生物材料方向全奖博士研究生(3月5日截止)
+1/5
【博士招生】哈工大(深圳)智能学部机器人与先进制造学院 陆文杰老师课题组
+1/4
广东省智能院与澳门大学/澳门理工联培博士招生
+1/4
【博士后/科研助理招聘-北京理工大学-集成电路与电子学院-国家杰青团队】
+1/2
德国Karlsruhe Institute of Technology招收电化学储能及联合培养CSC博士等
+1/2
山东第一医科大学第一附属医院招聘事业编制科研岗
+1/2
哈工大(深圳)罗文坚教授课题组诚招2026级博士生
+1/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,