怎样用MATLAB拟合两个自变量的函数系数和指数?

怎样用MATLAB拟合两个自变量的函数系数和指数?
y=c*x1^a*x2^b y x1 x2已知15组数据,怎样拟合出a b c 的值
yuanwu82418 1年前 已收到2个回答 举报

婷36 幼苗

共回答了16个问题采纳率:100% 举报

很简单啊,你对这个式子两边同时取对数,之后变成了简单的线性拟合,之后就可以用普通拟合方法得到.

1年前

9

CCIC1 幼苗

共回答了7个问题 举报

这个就看做是非线性拟合吧,仿照下面的例子:

function shiyan2

x1 = linspace( 0.5, 10, 15 );
x2 = linspace( 10, 20, 15 );
y = 2.5 * x1.^0.5 .* x2.^0.3; % 假设公式是这样的

% 利用已知数据进行非线性拟合,根据经验给abc一个初始值1, 1, 1,初始值不一定非要很准确
p = lsqcurvefit( @subfun, [ 1, 1, 1 ], [ x1', x2' ], y' );

disp( '拟合参数结果如下:' )
disp( [ 'a = ', num2str( p( 1 ) ), ', b = ', num2str( p( 2 ) ), ...
', c = ', num2str( p( 3 ) ) ] );


function ydata = subfun( p, xdata )
ydata = p( 1 ) * xdata( :, 1 ).^p( 2 ) .* xdata( :, 2 ).^p( 3 );

1年前

2
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.027 s. - webmaster@yulucn.com