如何用matlab拟合二元函数,matlab二元函数拟合怎么设计函数。 – 源码巴士 | 您所在的位置:网站首页 › matlab拟合参数方程 › 如何用matlab拟合二元函数,matlab二元函数拟合怎么设计函数。 – 源码巴士 |
matlab二元函数拟合怎么设计函数。 mip版 关注:169 答案:2 悬赏:20 解决时间 2021-01-24 19:12 已解决 2021-01-24 01:01 下面是数据,要求拟合一个二元函数,自变量为a,b。请问在非线性拟合之前怎么设计函数,使其拟合误差最小。很急,请大家帮帮忙。 a\b6.187.58.710.812.9 0.350.6070.53030.54810.51580.581 0.40.7420.56580.5510.63760.8415 0.450.75340.62850.72580.69680.8522 0.50.82830.72790.97580.77510.836 0.550.86710.73751.04350.80350.8611 0.60.91550.8841.18380.82881.0792 0.650.93250.94831.22781.03171.2311 0.71.02011.01561.36061.16871.6888 0.751.02311.16061.58291.22261.484 我要拟合的是二元函数,也就是说两个变量的,其中x是a,y是b。那么最后得出的就是z=f(x,y)的形式的二元函数,但要拟合之前要先构造一个函数,然后才能通过拟合得到公式的相关参数,从而得到一个比较好的公式。 就是在构造这个参数的时候总构造不好,拟合出来的误差比较大。请教高手这个初始构造的非线性函数怎么构造???数据就是上面的那些数据。急。。。请多帮忙。谢谢 最佳答案 2021-01-24 02:02 非性线拟合一般是根据数据产生的特点来的(就是说数据产生符合什么分布函数) 对你这样的应用,我个人感觉使用线性拟合简单易行: 如下给定数据的拟合曲线: x=[0.5,1.0,1.5,2.0,2.5,3.0]; y=[1.75,2.45,3.81,4.80,7.00,8.60]; p=polyfit(x,y,2) plot(x,y) 计算结果为: p =0.5614 0.8287 1.1560 即所得多项式为y=0.5614x^2+0.08287x+1.15560 ------------------------------------- 如果你要非线性拟合,那么可以: x=[1.1389 1.0622 0.9822 0.934 0.9251 0.9158]; y=[0.03 1 5.03 15.05 19.97 30.3]; myfunc=inline('-beta(1)*log(x+beta(2))-beta(3)','beta','x'); %非线性函数 beta=nlinfit(x,y,myfunc,[0 0 0]); %通过这个非线性函数进行拟合 k=beta(1),a=beta(2),b=beta(3) %测试这个方程 xx=min(x):max(x); yy=-k*log(x+a)-b; plot(x,y,'o',x,yy,'r') ------------------------------------------------------------------------------------ 以上x,y数据可以任意,就是你所提问的a,b。 全部回答 1楼 2021-01-24 02:49 设拟合的2元2次方程为 f(x,y)=b1*x²+b2*x*y+b3*y²+b4*x+b5*y+b6 用matlab的regress()函数拟合,也可以用自定义函数拟合。regress()函数命令格式为 [b,bint,r,rint,stats] = regress(y,x) b——参数估计值,拟合函数系数 bint——b的置信区间 r——残差向量,测试值与拟合值的差值 rint——r的置信区间 stats——检验统计量,置信度、f统计量,p值 y——因变量观察值 x——自变量观察值 根据提供的数据,通过拟合得 b1 =0 b2 =-1734024.851 b3 =-31661318.71 b4 =3785724.073 b5 =9670754.012 b6 =-512586.098 我要举报 如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持! 点此我要举报以上信息! 推荐资讯 大家都在看 |
CopyRight 2018-2019 实验室设备网 版权所有 |