簡體   English   中英

使用Matlab進行2D擬合?

[英]2D fitting using matlab?

這聽起來像是一個老問題。 我以為我知道代碼,但是運行它並沒有給我期望的值。

我的問題是:

目標函數: f = C / (x ^ p * y ^ q)

(如果您對加工有所了解,則可以說這就是泰勒的刀具壽命方程式)

xy是自變量; f是因變量; Cpq是系數。

我有以下三組([x, y], f)值,請參閱“ exp_result”。

我正在為這三組值尋找最合適的表面。

這是我的代碼:

通過運行它,我得到:

  • C 1.224E4
  • p 2.025
  • q 5.688

因此,我最適合的表面的方程為T = 1.224E4 / (x ^ 2.025 * y ^ 5.688)

但是,至少我發現該方程式更適合三組數據: T = 9.83E7 / (x ^ 3.39 * y ^ 2.63)

通過插入xy ,可以使用該方程式更接近f 有人知道我做錯了嗎?

任何建議表示贊賞。 謝謝!

exp_result = [153.6   0.51  22.47; 192.01  0.61  6.52; 230.42  0.51  5.58];

f_exp = fittype('C / (x ^ p * y ^ q)', 'coefficients', {'C', 'p', 'q'}, 'independent', {'x', 'y'}, 'dependent', {'f'});

f_exp_coef = fit([exp_result(:,1), exp_result(:, 2)], exp_result(:, 3),f_exp);

C的標度與其他兩個參數完全不同,因此更難擬合。

(1)通過給出更接近的初始猜測

或(2)以對數形式重寫函數

log(f)= log(C)-p * log(x)-q * log(y)或f'= c-p * x'-q * y'

使用[log(f)log(x)log(y)],可以獲得c,p,q在相同范圍內的值[1 10],這希望可以使您更適合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM