怎么用MATLAB拟合非线性多元函数?

2024-12-05 19:11:31
推荐回答(2个)
回答1:

用regress函数,线性回归

A=[1658 111 717 153 25319
1797 122 826 184 37829
1850 137 958 206 42232
2205 146 1004 247 56584]

y=A(:,1),x=A(:,2:5)
B= REGRESS(y,x)
a=B(1),b=B(2),c=B(3),d=B(4)

结果:
A =

1658 111 717 153 25319
1797 122 826 184 37829
1850 137 958 206 42232
2205 146 1004 247 56584

y =

1658
1797
1850
2205

x =

111 717 153 25319
122 826 184 37829
137 958 206 42232
146 1004 247 56584

B =

53.3747
-5.4253
-7.3846
0.0297

a =

53.3747

b =

-5.4253

c =

-7.3846

d =

0.0297

检验

Y=x*B

Y =

1.0e+003 *

1.6580
1.7970
1.8500
2.2050

相关系数等于1,线性回归非常成功
这样可以么?

回答2:

程序是A=[0 0 0 0 0 0 45
0 0 0 84 0 0 50
0 0 48 261 0 0 55
0 0 144 434 0 0 60
0 0 355 760 0 0 65
0 91 536 940 0 0 70
0 207 724 1000 0 0 75
111 430 956 910 0 0 80
227 611 1000 750 0 0 85
441 869 930 477 0 0 90
668 1000 753 283 0 0 95
882 955 558 136 47 0 100
1000 689 333 0 120 0 105
970 461 213 0 110 0 110
786 243 111 0 57 0 115
496 40 17 0 0 0 120
296 0 0 0 0 0 125
120 0 0 0 0 0 130
2 0 0 0 0 0 135
0 0 0 0 0 0 140];
y=A(:,7),x=A(:,1:6);

B= REGRESS(y,x)

a=B(1),b=B(2),c=B(3),d=B(4),e=B(5),f=B(6)

得结果
B =

0.2935
-0.1263
0.0126
0.0965
-1.0472
0