matlab---数据拟合

本文深入探讨了指数曲线拟合和多项式拟合两种数学模型的应用,通过具体实例展示了如何使用MATLAB进行参数估计和绘图,旨在为读者提供在实际问题解决中的实践指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指数曲线拟合

function [a, resnorm] = fit
  t = 0: 60: 1800;
  f = [100 96.1111 92.7778 89.4444 86.6667 84.4444 82.2222 80 77.7778 76.1111 ...
      74.4444 72.7778 71.1111 69.4444 68.3333 67.2222 66.1111 65 63.8889 ...
      62.7778 61.6667 60.5556 59.4444 58.3333 57.2222 56.1111 55 53.8889 ...
      52.7778 51.6667 51.1111];
  grid;
  fun = inline('a(1) * exp(-1 * a(2) * t) + 40', 'a', 't');
  a0 = zeros(1, 31);
  [a, resnorm] = lsqcurvefit(fun, a0, t, f);
  plot(t, f, '*');
  hold on;
  g = a(1) * exp(-1 * a(2) * t) + 40;
  plot(t, g, 'r-');
  xlabel('t');
  ylabel('f1');
  title('f1(t)');
end

这里写图片描述

function [a, resnorm ] = fitN

x = [11 15 20 21 22 23 25 26 27]; 
t = [0.053 0.36 2.3 5.1 10.9 16.8 87.5 132.3 188.6];

fun = inline('a(1) * a(2).^x + a(3)', 'a', 'x');
a0 = [1 1 1];
[a, resnorm] = lsqcurvefit(fun, a0, x, t);
plot(x, t, '*');
hold on;
g = a(1) * a(2).^x + a(3);
plot(x, g, 'r-');

xlabel('x');
ylabel('t');
title('时间');

end

这里写图片描述
多项式拟合

function [a, c ] = fitN
x = [5 11 15 19 20 21 22 23 24 25 26 27];
t = [0.0036 0.053 0.36 1.3 2.3 5.1 10.9 16.8 36.1 87.5 132.3 188.6];
syms c;
for i = 1:18
    y2 = polyfit(x, t, i);
    Y = polyval(y2, x);    %计算拟合函数在x处的值。
    if sum((Y-t).^2)<0.1
        c = i;            %c为求得的多项式最高阶数, 误差平方和精度范围为0.1
        break;
    end
end

plot(x, t, '*');
hold on;
a = polyfit(x, t, c);     %得到系数,按次数从高到低排列
y = polyval(a, x);

%y = poly2sym(a, x);      %在主窗口输入,系数数组转换为多项式
%vpa(y)                   %在主窗口输入,分数转换为小数
%y = 0.000001*x.^11 - 0.0002*x.^10 + 0.02*x.^9 - 1.1*x.^8 + 41.55*x.^7 - 1039.46*x.^6 + 18254.16*x.^5 - 224494.33*x.^4 + 1888238.89*x.^3 - 10294775.069*x.^2 + 32510012.84*x - 44542021.91;  %得到的多项式,从主窗口中粘贴而来

plot(x, y, 'r-');
xlabel('x');
ylabel('t');
title('时间');

end

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值