Finding a propriate function to fit "U" curve

15 ビュー (過去 30 日間)
Shilin Shi
Shilin Shi 2022 年 3 月 9 日
回答済み: Bruno Luong 2022 年 8 月 12 日
I am trying to fit this data, but the CFT doesn't support a function that can fit my data(The curve of which is similar to the curve of Paschen's Law). Thanks a lot!
x=[0.17 0.33 0.83 1.67 2.5 3.33 5];
y=[6.62466 5.58235 4.63169 5.08213 5.4159 5.81769 6.77988];
  1 件のコメント
KSSV
KSSV 2022 年 3 月 9 日
How about using polyfit ?

サインインしてコメントする。

回答 (3 件)

Sam Chak
Sam Chak 2022 年 3 月 9 日
I'm not an expert in High Voltage Engineering. Please clarify if the following rational logarithmic function describes the Paschen's law (as shown in wikipedia):
.
The local minimum point can be obtained by solving , that is
.
The singular point can be found by solving the denominator
.
There are only 7 data points. If is assumed to be the local minimum, the closest I can get using fsolve is
function F = paschen(x)
F(1) = x(1)*0.17/(log(x(2)*0.17) - log(log(1 + 1/x(3)))) - 6.62466;
F(2) = x(1)*0.83/(log(x(2)*0.83) - log(log(1 + 1/x(3)))) - 4.63169;
F(3) = x(1)*2.5/(log(x(2)*2.5) - log(log(1 + 1/x(3)))) - 5.4159;
F(4) = x(1)*5/(log(x(2)*5) - log(log(1 + 1/x(3)))) - 6.77988;
F(5) = (x(1)*(-1 + log(x(2)*0.83) - log(log(1 + 1/x(3)))))/(log(x(2)*0.83) - log(log(1 + 1/x(3))))^2;
F(6) = (1/x(2))*log((x(3) + 1)/x(3)) - 0.01;
Interpolations can be made to generate more points. However, it is preferable if you can provide more data points from your experiments. You probably need assistance from the MATLAB Data Scientists here.
  1 件のコメント
Bjoern Mulder
Bjoern Mulder 2022 年 8 月 12 日
Thank you for your post - I was also looking into the Paschen Law and your input helped!
I think I found an error while going through your solution
Instead of it should be .
And then to give the point where .
All was missing is an exp(1).
Have a great day!

サインインしてコメントする。


Walter Roberson
Walter Roberson 2022 年 3 月 9 日
polyfit degree 4 is not bad
  2 件のコメント
Sam Chak
Sam Chak 2022 年 3 月 9 日
編集済み: Sam Chak 2022 年 3 月 9 日
I think @Shilin Shi is trying to fit the data using the Paschen's Rational Logarithmic Function. Perhaps you can provide some insights on this matter.
Alex Sha
Alex Sha 2022 年 8 月 12 日
If don't mind the type of function, one like below is good enough:
y = p1*x^p2+p3*exp(x*p4)+p5*x+p6
Sum Squared Error (SSE): 0.00904817231315977
Root of Mean Square Error (RMSE): 0.0359526917592704
Correlation Coef. (R): 0.998760578765123
R-Square: 0.997522693695244
Parameter Best Estimate
--------- -------------
p1 -344.434477549634
p2 0.970653631107029
p3 -61.0490424042631
p4 -0.452522236917936
p5 316.980679039058
p6 70.9562319738469
if using polyfit degree 4 as suggesting by Walter Roberson, the result will be:
y = b0+b1*x+b2*x^2+b3*x^3+b4*x^4
Sum Squared Error (SSE): 0.142268105538466
Root of Mean Square Error (RMSE): 0.142562319975945
Correlation Coef. (R): 0.980330710558373
R-Square: 0.961048302063885
Parameter Best Estimate
--------- -------------
b0 7.45157976927911
b1 -6.56400689174901
b2 4.88283965405082
b3 -1.32215012121595
b4 0.120562079736417
if using polyfit degree 5:
y = b0+b1*x+b2*x^2+b3*x^3+b4*x^4+b5*x^5
Sum Squared Error (SSE): 0.00749681365182146
Root of Mean Square Error (RMSE): 0.0327257296149626
Correlation Coef. (R): 0.998973193543668
R-Square: 0.997947441418835
Parameter Best Estimate
--------- -------------
b0 8.10062144754325
b1 -10.6880037795643
b2 11.4448441863131
b3 -5.2716887492359
b4 1.10497426429342
b5 -0.0850079361618652

サインインしてコメントする。


Bruno Luong
Bruno Luong 2022 年 8 月 12 日
This is the best I come up with using BSFK FEX
x=[0.17 0.33 0.83 1.67 2.5 3.33 5];
y=[6.62466 5.58235 4.63169 5.08213 5.4159 5.81769 6.77988];
pp=BSFK(x,y,3,4);
xi=linspace(min(x),max(x));
yi=ppval(pp,xi);
plot(x,y,'or',xi,yi,'b')

カテゴリ

Help Center および File ExchangeCurve Fitting Toolbox についてさらに検索

タグ

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by