如何使用fittype函数定义自定义方程?

时间:2015-09-27 08:10:09

标签: matlab curve-fitting

如何使用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'});

但它会抛出此错误:

  

表达式a *(x1 ^ b)(x2 ^ c)(x3 ^ d)(x4 ^ e)(x5 ^ f)*(x6 ^ g )不是有效的MATLAB表达式,具有非标量系数,或者无法评估:没有足够的输入到FITTYPE函数。

1 个答案:

答案 0 :(得分:0)

首先,'a *(x1 ^ b)(x2 ^ c)(x3 ^ d)(x4 ^ e)(x5 ^ f) (x6 ^ g)'不是有效的MATLAB表达式。你应该把它改成'a (x1。^ b)。(x2。^ c)。(x3。^ d)。(x4。^ e)。< /em>(x5.^f).*(x6.^g)”。 其次,Matlab无法处理这么多未知参数,一个简短的参数就可以了,就像这样:

ft = fittype(@(a,b,c,x1,x2)a *(x1。^ b)。*(x2。^ c),     '独立',{ 'X1', 'X2'}, '相关',{ 'Y'}, '问题',{ 'B', 'C'});