matlab拟合自定义多元函数,求拟合系数

问题如下,求教... 问题如下,求教 展开
 我来答
PeriShare
2020-12-23 · 分享PD理论最新研究成果和进展
PeriShare
采纳数:2408 获赞数:36827

向TA提问 私信TA
展开全部

利用最小二乘法做拟合


x = [620 724 789 663 690 700 745 628 601 739];

y = [658 749 799 682 706 735 768 641 615 767];

z = [340 400 605 433 450 354 409 590 584 387];

w = [1070469.3811, 716662.5706, 401191.2893, 645279.5126, 543760.2719, 913063.85240, 656069.2929,637048.2656, 708880.29095, 59848.4834];

x1 = y.*z./x;

x2 = y.^2./x;

x3 = y;

q=[x1;x2;x3];

M = q*q';

b = q*w';

ABC = inv(M)*b;

wfit = ABC(1)*x1 + ABC(2)*x2 + ABC(3)*x3;

plot(w,wfit,'r*')

hold on

plot([min([w,wfit]),max([w,wfit])],[min([w,wfit]),max([w,wfit])])

legend('w-wfit','y=x')

xlabel('w');ylabel('wfit')

hold on


结果

ABC =


   1.0e+04 *


    0.1832

    2.8775

   -3.0020


lhmhz
高粉答主

2020-12-24 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17007

向TA提问 私信TA
展开全部
如何用matlab拟合自定义多元函数的系数?该问题可以做:
1、将已知值分别赋值给x,y,z,w。即
x=[。。。]';y=[。。。]';z=[。。。]';w=[。。。]';
2、将自变量x,y,z组合成新的向量X,以便参与计算。即
X=[x,y,z];
2、将因变量w赋值给Y。即
Y=w;
3、自定义数学模型函数(定义时应注意点运算符),即
fun=@(p,X)p(1)*X(:,2).*X(:,3)./X(:,1)+p(2)*X(:,2).^2./X(:,1)+p(3)*X(:,2);
4、确定p的初始值。一般先可以用随机数,如p0=rand(1,3)
5、使用nlinfit函数或lsqcurvefit函数,求解系数p值。即A=p(1),B=p(2),C=p(3)
6、计算拟合值,Y1=fun@(p,X)
7、显示原数据和拟合数据。即
disp('原数据w 拟合数据w1')
[Y Y1]
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式