MATLAB多变量拟合
y=[-1.553-1.06-0.879-1.032-1.081-1.066-0.893-0.928-1.222],X=-1.0000-9.00004.8120-0.82...
y=[-1.553 -1.06 -0.879 -1.032 -1.081 -1.066 -0.893 -0.928 -1.222],
X =
-1.0000 -9.0000 4.8120
-0.8240 -2.6990 4.6680
-0.6990 -2.5230 4.4680
-0.6990 -9.0000 4.6920
-1.0000 -2.6990 4.5830
-0.8240 -2.5230 4.8360
-0.8240 -9.0000 4.6270
-0.6990 -2.6990 4.8700
-1.0000 -2.5230 4.7260
拟合方程为y=a0+a1*x1+a2*x2+a3*x3,其中,a0、a1、a2、a3为参数。
运用regress函数进行拟合,[b,bint,r,rint,stats]=regress (y,X),但是运行出现以下错误,希望指点下,matlab新手。。。
??? Error using ==> or
Matrix dimensions must agree.
Error in ==> regress at 70
wasnan = (isnan(y) | any(isnan(X),2)); 展开
X =
-1.0000 -9.0000 4.8120
-0.8240 -2.6990 4.6680
-0.6990 -2.5230 4.4680
-0.6990 -9.0000 4.6920
-1.0000 -2.6990 4.5830
-0.8240 -2.5230 4.8360
-0.8240 -9.0000 4.6270
-0.6990 -2.6990 4.8700
-1.0000 -2.5230 4.7260
拟合方程为y=a0+a1*x1+a2*x2+a3*x3,其中,a0、a1、a2、a3为参数。
运用regress函数进行拟合,[b,bint,r,rint,stats]=regress (y,X),但是运行出现以下错误,希望指点下,matlab新手。。。
??? Error using ==> or
Matrix dimensions must agree.
Error in ==> regress at 70
wasnan = (isnan(y) | any(isnan(X),2)); 展开
4个回答
展开全部
1、z = p1+p2*x+p3*y+p4*x^2+p5*y^2+p6*x*y;
2、(x: T; y: A);
3、均方差(RMSE):11.9376550129073;
4、残差平方和(SSE):2850.15214414381;
5、相关系数(R): 0.988265860889976;
6、相关系数之平方(R^2): 0.976669411800605;
7、确定系数(DC): 0.976669411800605;
8、卡方系数(Chi-Square): 33.1900439226479;
9、F统计(F-Statistic): 120.014119492823;
10、参数 最佳估算
---------- -------------
p1 181.555680640922
p2 -5.91035861326367
p3 1.29301724149681
p4 0.0447561300634377
p5 -0.000620000000438385
p6 -0.0141568965518873
c50.jpg,
展开全部
你直接用p=polyfit(x,y,3);拟合就好了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序改成如下:
y=[-1.553 -1.06 -0.879 -1.032 -1.081 -1.066 -0.893 -0.928 -1.222]';
x= [ 1 -1.0000 -9.0000 4.8120 ; 1 -0.8240 -2.6990 4.6680 ; 1 -0.6990 -2.5230 4.4680 ; 1 -0.6990 -9.0000 4.6920; 1 -1.0000 -2.6990 4.5830 ; 1 -0.8240 -2.5230 4.8360 ; 1 -0.8240 -9.0000 4.6270 ;1 -0.6990 -2.6990 4.8700 ; 1 -1.0000 -2.5230 4.726];
[b,bint,r,rint,stats]=regress (y,x,0.05)
disp(['y =' num2str(b(4)) '+' num2str(b(3)) 'x1+' num2str(b(2)) 'x2+' num2str(b(1)) 'x3'])%输出
结果
y =-0.53393+0.017069x1+1.1066x2+2.4407x3
y=[-1.553 -1.06 -0.879 -1.032 -1.081 -1.066 -0.893 -0.928 -1.222]';
x= [ 1 -1.0000 -9.0000 4.8120 ; 1 -0.8240 -2.6990 4.6680 ; 1 -0.6990 -2.5230 4.4680 ; 1 -0.6990 -9.0000 4.6920; 1 -1.0000 -2.6990 4.5830 ; 1 -0.8240 -2.5230 4.8360 ; 1 -0.8240 -9.0000 4.6270 ;1 -0.6990 -2.6990 4.8700 ; 1 -1.0000 -2.5230 4.726];
[b,bint,r,rint,stats]=regress (y,x,0.05)
disp(['y =' num2str(b(4)) '+' num2str(b(3)) 'x1+' num2str(b(2)) 'x2+' num2str(b(1)) 'x3'])%输出
结果
y =-0.53393+0.017069x1+1.1066x2+2.4407x3
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询