matlab 解决二元二次拟合,4小时内有效答案者加 50

年龄5101625334760体重(千克)18316668707270基础血液流量(分升/分)23335251434046脉搏(次/分)96906065687280用ma... 年龄 5 10 16 25 33 47 60
体重(千克) 18 31 66 68 70 72 70
基础血液流量(分升/分) 23 33 52 51 43 40 46
脉搏(次/分) 96 90 60 65 68 72 80
用matlab 做基础血液流量是体重和年龄的二元函数 ,用表二中的数据来拟合该函数。用二元二次多项式来拟合 说个大概方法也行,
展开
 我来答
dbb627
推荐于2016-12-01 · TA获得超过1.2万个赞
知道大有可为答主
回答量:2127
采纳率:88%
帮助的人:1367万
展开全部
使用回归回归成y=ax1^2+bx1^2+cx1+dx2+ex1*x2+f

y=[23 33 52 51 43 40 46]';
x1=[5 10 16 25 33 47 60]';
x2=[18 31 66 68 70 72 70]';
X=[ones(size(y)) x1.^2 x2.^2 x1 x2 x1.*x2];
[b,bint,r,rint,stats] = regress(y,X);
b,bint,r,rint,stats%%b为对应的参数 b(1)为f,b(2)为a,b(3)为b,b(4)为c,b(4)为d,b(5)为e

b =

14.16063954858540
0.01716893872592
0.02508536698014
4.71438649302305
-0.84792032737350
-0.08960148833191

bint =

1.0e+002 * %bint%为b的95%置信区间

-2.10382223368177 2.38703502465347
-0.00084283937911 0.00118621815363
-0.00394646933209 0.00444817667170
-0.64861833027424 0.74290606013470
-0.32305433102722 0.30609592447975
-0.01094505865341 0.00915302888678

r =

0.03724545917960
-0.06644448785574
-0.67601703114931
2.23548693159668
-2.01680533072312
0.55616729477867
-0.06963283582684

rint =

-0.43600297065399 0.51049388901318
-0.91070175413925 0.77781277842777
-9.26562783407416 7.91359377177553
-26.16906770631366 30.64004156950702
-27.64274677589925 23.60913611445302
-6.51060822024266 7.62294280980001
-0.95440190420693 0.81513623255325

%stats的第三个参数为F检验的P值,p值很小P<0.001,说明拟合模型有效

stats =
0.98459455672427 12.78242422631952 0.20909110587007

还可以使用rstool(X,Y,'quadratic')
themanisjimmy
2015-12-27 · TA获得超过2756个赞
知道小有建树答主
回答量:843
采纳率:89%
帮助的人:225万
展开全部
二元二次拟合自变量有2个,因变量一个,可以使用的有nlinfit和regress,线性时用regress,非线性时用nlinfit。由于是二元二次模型,2个函数都可以用。

以regress为例,
假设因变量存在y向量中,自变量存在x1、x2向量中。因为要使用二元二次模型,首先要构造自变量矩阵:
X=[x1.^2,x2.^2,x1.*x2,x1,x2,ones(size(x1))];%注意,需要有1列全为1
然后就能调用regress了
[b,bint,r,rint,stats] = regress(y,X)
b为回归系数,bint为置信区间。r为残差,rint为残差置信区间。stats为反应回归品质的统计参数。

扩展:
此外,nlinfit与regress都有相应配套函数。与nlinfit配套的有nlintool(互动窗口)、nlinparci(计算拟合系数置信区间)、nlinpredci(计算预测值置信区间)。与regress配套的有rcoplot(画残差图)。
对于进阶matlab使用者还有更多的选择,如拟合工具箱、fit函数等等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
scout1987
2010-06-07 · 超过14用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:49.9万
展开全部
三次多项式应该都可以达到你的要求
clc;clear;
x=[5 10 16 25 33 47 60];
y=[18 31 66 68 70 72 70];
a=polyfit(x,y,3) %这里用三次多项式拟合a就是这些系数
y =vpa(poly2sym(a),10) %输出的你要的函数。
x=0:0.01:100;%后面是画出的图像
y=vectorize(y)
y=eval(y);
plot(x,y,'-');
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
f579010142
2010-06-07 · 超过12用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:34.2万
展开全部
clear
x(:,1)=[5 10 16 25 33 47 60]';
x(:,2)=[18 31 66 68 70 72 70]';
x(:,3)=x(:,1).^2;
x(:,4)=x(:,2).^2;
x(:,5)=x(:,2).*x(:,1);
x(:,6)=ones(length(x(:,1)),1);
y=[23 33 52 51 43 40 46]';
regress(y,x);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
satanxubo11
2010-06-07 · TA获得超过449个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:150万
展开全部
应该是用多项式拟合函数polyfit对已知数据进行指定阶的多项式回归。具体我就忘了,是好久以前学的MATLAB了!不好意思!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式