已知函数关系式,用matlab进行数据拟合?

有一组数据x,y我知道x,y的函数关系式为ln(y-a)=b*lnx+c。我该怎么做获取a、b、c的值,并且知道这时的拟合精度,并且这个精度可以自己设定么?谢谢啦。... 有一组数据x,y我知道x,y的函数关系式为ln(y-a)=b*lnx+c。我该怎么做获取a、b、c的值,并且知道这时的拟合精度,并且这个精度可以自己设定么?谢谢啦。 展开
 我来答
PeriShare
2019-12-04 · 分享PD理论最新研究成果和进展
PeriShare
采纳数:2408 获赞数:36827

向TA提问 私信TA
展开全部

所谓拟合精度无非是循环的时候退出的条件,而你的问题可以转化成:

clc; clear

% 比如 x->xy(:,1); y->xy(:,2)

xy = [

    1,  1.015608713353;

    2,  20.462100415518;

    3,  94.4267300097118;

    4,  130.896501799540;

    5,  169.7239268832727;

    6,  310.773635794259;

    7,  680.660210398064;

    8,  1202.16423450355;

    9,  1529.61068657942;

    10, 1539.78928190371

    ];

abc = 1*rand(3,1); % a->abc(1); b->abc(2); c->abc(3)

myfun = @(abc,xy) log(xy(:,2)-abc(1)) - abc(2)*log(xy(:,1))-abc(3);

opt.TolX = 1e-1;

abc = nlinfit(xy, zeros(size(xy,1),1), myfun, abc);

plot(xy(:,1),xy(:,2),'r*')

hold on

% x = 1:0.1:10;

ezplot(@(x,y)myfun(abc,[x,y]),[1 10 0 2000])

title('曲线拟合');legend('样本点','拟合曲线')

来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式