7.轨迹预测,数据拟合,又要3天学matlab

上一篇讲到可以做拟合试试,这一篇就学习一些关于数据拟合的方法

数据拟合当然要用matlab,用了半天装好了,好吧我又要用3天学matlab(ps:我会的编程语言在简历上有,简历在 vrpanda.top)

先把之前的数据重新画出来。

接下来找怎么做拟合

有这么一个函数   y1=polyfit(x,y,3)   y1是x的n次项的系数,然后。。。

警告: 多项式未正确设置条件。请添加具有不同 X 值的点,减少多项式的阶数,或者尝试按照 HELP POLYFIT 中所述进行居中和缩放。 

查了一些资料,怀疑这种数据是不是无法拟合,但是毕竟轨迹曲线相对股票曲线还是有一些规律的

下面就是一天的路线的拟合结果,其实是三阶拟合,放大看是有毛刺的,应该用二阶更合适。反正效果极差就是了,代码在后面



clear;
clc;
fprintf hello\n
%UTC = sortrows(UTC,1);
load('matlab170412.mat');
UTC=datenum(UTC);
y1=polyfit(UTC,LONGITUDE_DFM,3);
a=min(UTC);
b=max(UTC);
x1=linspace(a,b,1000);
z=polyval(y1,x1);

plot(x1,z);
hold on
scatter(UTC,LONGITUDE_DFM,'filled','c');
hold on
plot(UTC,LONGITUDE_DFM);

有点崩溃,我先静静

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
动力学数据拟合Matlab代码可以分为以下几步: 1. 准备数据 准备实验数据,包括时间、浓度等数据,并将其保存为.mat文件。 2. 定义模型 定义动力学模型,并将其保存为函数文件。 3. 设置初始参数 根据模型的参数设置初始参数值。 4. 进行拟合 使用Matlab拟合函数,如lsqcurvefit或fmincon等进行拟合。 5. 绘制结果 绘制拟合结果,并进行分析。 以下是一个简单的动力学数据拟合Matlab代码示例: ```matlab % 准备数据 load('data.mat'); % 定义模型 function y = model(params, t) % params为模型参数 % t为时间序列 k1 = params(1); k2 = params(2); y0 = params(3); y(1) = y0; for i = 2:length(t) y(i) = y(i-1) + k1*y(i-1)*t(i-1) - k2*y(i-1)*t(i-1); end end % 设置初始参数 params0 = [0.1, 0.05, 0.1]; % 进行拟合 params_fit = lsqcurvefit(@model, params0, t, y); % 绘制结果 t_fit = linspace(0, max(t), 100); y_fit = model(params_fit, t_fit); plot(t, y, 'o', t_fit, y_fit, '-') xlabel('时间') ylabel('浓度') legend('实验数据', '拟合结果') ``` 其中,data.mat为实验浓度数据,t为时间序列,y为对应的浓度数据。model函数为动力学模型,params为模型参数,t为时间序列。params0为初始参数值。lsqcurvefit为拟合函数,@model表示使用model函数作为模型进行拟合。params_fit为拟合结果,t_fit为拟合时间序列,y_fit为对应的浓度数据。最后使用plot函数绘制实验数据拟合结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值