如何用matlab将离散数据拟合成方程,在线等!!! 15

x=[8356.248122.877182.7758061.3357982.738498.91727998.15987405.71728680.82897820.7242... x=[8356.24 8122.87 7182.775 8061.335 7982.73 8498.9172 7998.1598 7405.7172 8680.8289 7820.7242]
y=[221.9 351.8 52.96 239.17 62 246.07 3.88 568.04 205.2 388.21]
以上离散数据拟合成方程,并做出图来,谢谢大神!!在线等
展开
 我来答
李修灵
推荐于2017-05-17 · TA获得超过287个赞
知道小有建树答主
回答量:87
采纳率:100%
帮助的人:73.8万
展开全部

同意1楼的回答,用cftool. 但是不知道函数形式的情况下确实不好拟合。

有几类cftool中没有,但科研也常用的函数拟合你可以试试, 比如pade近似, 广义回归网络, 主成分分解等.

给你一个贝叶斯正则化训练的BP前馈网络试试看

返回值funObj就是拟合出来的方程

%-----------分割线-----------------

function funObj = netFit(x, y)

maxID=1; % 这里取1. 所以每次运行结果都有所不同,取大点结果基本就不变了.

                % Matlab手册建议训练很多网络求平均,比如maxID=100. 可并行加速

                % 具体参考doc train --> useParallel, useGPU. 自动的. 

net = feedforwardnet(15); % 这个值随便取的,其实有讲究...

net.trainFcn = 'trainbr'; 

net.divideParam.trainRatio = 0.7;

net.divideParam.valRatio = 0.3;

net.divideParam.testRatio = 0;

net = configure(net, x, y);

net.trainParam.showWindow = 0;


h = waitbar(0,'Training with Bayesian Regularization 0%');

netCollect = cell(maxID,1);

for netID=1:maxID

net = init(net);

net = train(net, x, y);

waitbar(netID/maxID,h ,...

 sprintf('Training with Bayesian Regularization %4.1f%%',netID/maxID*100));

netCollect{netID} = net;

end

delete(h);


funObj = @(x)evalNet(netCollect, x);

xfit = linspace(min(x), max(x), 100);

yfit = funObj(xfit);

figure(10);plot(xfit, yfit, 'r-', x, y, 'ok');

legend('Fitted Line','Data')

 xlabel('X','FontSize',14);ylabel('Y','FontSize',14);title('maxID=100')

end


function y = evalNet(netCollect, x)

NNet = length(netCollect);

y = zeros(size(x));

for netId=1:NNet

    net = netCollect{netId};

    y = y+net(x);

end

y = y/NNet;

end


风儿Lamp沙儿
2015-10-19 · TA获得超过7831个赞
知道大有可为答主
回答量:1787
采纳率:63%
帮助的人:511万
展开全部
用数据拟合工具箱 cftool
追问
我用过了都不符合
追答
不是不符合,是数据太离散了,误差太大了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lhmhz
高粉答主

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

向TA提问 私信TA
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式