请用MATLAB拟合三元三次多项式F(x,y,z)=a0+a1*x+a2*x^2+a3*x^3+a4*y+a5*y^2+a6*y^3+a7*z+a8*z^2+a9*z^3

2024年11月27日 15:27
有2个网友回答
网友(1):

我拟合了一下,好像有问题。。你自己看着办吧。
建一个m文件:
function f=logisfun(a,x)
f=a(10)+a(1).*x(:,1)+a(2).*x(:,1).^2+a(3).*x(:,1).^3+a(4).*x(:,2)+a(5).*x(:,2).^2+a(6).*x(:,2).^3+a(7).*x(:,3)+a(8).*x(:,3).^2+a(9).*x(:,3).^3;
另一个m文件:
x=[45.0000 45.0000 2.8100
40.0000 35.0000 3.3100
30.0000 45.0000 3.5000
25.0000 35.0000 5.0200
25.0000 25.0000 7.0500
25.0000 45.0000 8.4300
25.0000 25.0000 9.7700
18.0000 25.0000 6.7400
18.0000 45.0000 9.8800
10.0000 35.0000 4.5300];
Y=[7.4375 5.6563 3.2500 2.6875 2.4688 2.2188 2.0313 2.5313 1.9375 3.2188]';
a0=zeros(1,10);
[a,R,J]=nlinfit(x,Y,'logisfun',a0)
得到答案:
a =

0.0459 -0.0065 0.0002 0.0971 0.0001 -0.0000 -3.2566 0.4763 -0.0229 8.1256

R =

-0.0253
0.0482
0.0015
-0.0289
0.0201
-0.0240
-0.0454
0.0254
0.0479
-0.0193

J =

1.0e+004 *

0.0045 0.2025 9.1125 0.0045 0.2025 9.1125 0.0003 0.0008 0.0022 0.0001
0.0040 0.1600 6.4000 0.0035 0.1225 4.2875 0.0003 0.0011 0.0036 0.0001
0.0030 0.0900 2.7000 0.0045 0.2025 9.1125 0.0004 0.0012 0.0043 0.0001
0.0025 0.0625 1.5625 0.0035 0.1225 4.2875 0.0005 0.0025 0.0127 0.0001
0.0025 0.0625 1.5625 0.0025 0.0625 1.5625 0.0007 0.0050 0.0350 0.0001
0.0025 0.0625 1.5625 0.0045 0.2025 9.1125 0.0008 0.0071 0.0599 0.0001
0.0025 0.0625 1.5625 0.0025 0.0625 1.5625 0.0010 0.0095 0.0933 0.0001
0.0018 0.0324 0.5832 0.0025 0.0625 1.5625 0.0007 0.0045 0.0306 0.0001
0.0018 0.0324 0.5832 0.0045 0.2025 9.1125 0.0010 0.0098 0.0964 0.0001
0.0010 0.0100 0.1000 0.0035 0.1225 4.2875 0.0005 0.0021 0.0093 0.0001
好像有问题,我也不知道了

网友(2):

你的问题看来是没有办法处理了,X有11个,Y、Z、F有10个,不知道你的X用那几个数呢??