2015-09-27 197 views
0

如何使用fittype函數來定義下面的自定義方程?如何使用fittype函數來定義自定義方程?

y = a(x1^b)(x2^c)(x3^d)(x4^e)(x5^f)(x6^g). 

我嘗試以下的代碼:

ft = fittype('a*(x1^b)*(x2^c)*(x3^d)*(x4^e)*(x5^f)*(x6^g)',... 
'independent',{'x1','x2','x3','x4','x5','x6'},... 
'dependent',{'y'},... 
'coefficients',{'a','b','c','d','e','f','g'}); 

但它引發此錯誤:

Expression a*(x1^b)(x2^c)(x3^d)(x4^e)(x5^f)*(x6^g) is not a valid MATLAB expression, has non-scalar coefficients, or cannot be evaluated: Not enough inputs to FITTYPE function.

+0

你的代碼不應該給出錯誤。你顯示的錯誤告訴我們你的表達式是無效的,因爲'*'沒有被多次包含,但它包含在你的示例代碼中。 –

回答

0

首先,「A *(X1^B)(×2^C) (x3^d)(x4^e)(x5^f)(x6^g)''不是有效的MATLAB表達式。您應該將其更改爲'(x1。^ b)。 (x2。^ c)。(x3。^ d)。 (x4。^ e)。(x5。^ f)。*(x6。^ g)'。其次,Matlab不能處理如此多的未知參數,一個短的就可以,像這樣:

ft = fittype(@(a,b,c,x1,x2)a *(x1。^ b)。* (x2。^ c), 'independent',{'x1','x2'},'dependent',{'y'},'problem',{'b','c'});