Polynomial surface fitting failed

조회 수: 6 (최근 30일)
Yan
Yan 2014년 2월 26일
답변: John D'Errico 2014년 2월 26일
I am trying to use the polynomial fitting function to fit my surface X=[30 60 60 60 90] Y=[280 260 280 300 280] Z=[0.0060 0.0053 0.00438 0.0042 0.0034]
I am choosing degree of x to be 1, and degree of y to be 2, Matlab keeps telling me equation is badly conditioned. Remove repeated data points or trying center and scaling. It still gave me the same results when I checked the box of "center and scale".
I have several sets of other data similar to this by the fitting is working. I don't know what should I do now with this set of data.
Thanks!

답변 (1개)

John D'Errico
John D'Errico 2014년 2월 26일
You have 5 (count them, FIVE) data points. At least they are reasonably well scattered.
You are trying to estimate a model with how many terms? WHAT IS YOUR MODEL?
sf = fit([X',Y'],Z','poly12')
Warning: Equation is badly conditioned. Remove repeated data points or try centering and scaling.
> In Warning>Warning.throw at 30
In fit>iLinearFit at 690
In fit>iFit at 396
In fit at 108
Linear model Poly12:
sf(x,y) = p00 + p10*x + p01*y + p11*x*y + p02*y^2
Coefficients:
p00 = 1.507e+14
p10 = -2.512e+12
p01 = -5.384e+11
p11 = 8.973e+09
p02 = -4.48e-05
Your data simply does not justify fitting that model. At best, you have 5 coefficients and 5 data points. The fit would be exact if your data were more conducive to fitting that model, but the data is not sufficient to estimate ALL 5 coefficients uniquely.
Get better data. Or use a simpler model.
(While you COULD use gridfit, as Star Strider suggested) it depends on your goals here. Do you need a model, or do you just want a surface plot?

카테고리

Help CenterFile Exchange에서 Polynomials에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by