Matlab曲线拟合(2)(自用笔记)

一、fittype函数进行自定义拟合

在数学建模的过程中,你会发现仅仅用多项式法进行拟合并不能得到较好的结果,往往需要我们自己得出一个数学模型函数来进行拟合对比。而fittype函数就是专门用来拟合自定义函数。

函数形式:fittype('自定义函数','independent','自变量', 'coefficients', {'系数1','系数2'...})

举例:f = fittype('a./(b+c*(t-45).^2)', 'independent', 't', 'coefficients', {'a', 'b', 'c'});

其中第一项为我们自己定义的函数,第三项为自变量的符号,第五项为系数的一个列表。

函数返回值为你定义的函数模型

二、fit函数进行拟合选项设置

fit函数往往与上方的fittype函数配合在一起使用,它是对拟合选项的设置。

[cfun, 函数输出设置] = fit(x, y, f, '函数输入设置1',输入设置1具体定义,'函数输入设置2',输入设置2具体定义...)

注意:x,y的传入数据必须是列向量形式

函数输出设置我们往往选用rsquare,一般用rsquare即可

函数输入设置可选项较多,这里给出几个常用的选项:

lower:拟合参数的下界限,和参数位置一一对应,如'lower',[580,1.4]表示拟合过程中第一个参数值不小于580,第二个参数值不小于1.4

upper:拟合参数的上界限,和参数位置一一对应,如'upper',[3000,13]表示拟合过程中第一个参数值不大于3000,第二个参数值不大于13

StartPoint:拟合参数初始值,和参数一一对应,如'StartPoint',[250, 520]表示拟合开始的第一个参数值取值为250, 第二个参数值取值为520

注意:当上述参数的范围和拟合初始值都不知道的情况下可全部删去,但这样一来,拟合过程中

的参数初值将由系统随机选取,这有可能会导致拟合结果不可靠。建议在多次试算以确定大致参数范围。

三、拟合图像绘制

xi = [你所需要绘制的x的区间]

yi = cfun(xi)

plot(x,y,'r*',xi,yi,'b-')  %将已知点和你自定义函数的拟合曲线一起绘制出,观察拟合效果。

四、代码举例与图像绘制展示

syms t;  %自变量t单独定义符号
x = [10 20 30 40 50 60 70 80];  %已知温度值
y = [0.1 0.3 0.7 0.94 0.95 0.68 0.34 0.13]; %已知对应温度值下的转换率
f = fittype('a./(b+c*(t-45).^2)', 'independent', 't', 'coefficients', {'a', 'b', 'c'});
[cfun, rsquare] = fit(x',y',f,'StartPoint',[0.001 0.001 0.001]); %注意这里的x,y为列向量
xi = 10:1:80;
yi = cfun(xi);
plot(x,y,'r*',xi,yi,'b-');
xlabel('温度'),ylabel('转换率')
title('温度与转换率关系图')

 

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值