matlab灰色预测代码学习

本文介绍了一个使用Matlab进行一阶线性微分方程求解的过程,并通过具体数值实例展示了如何利用Matlab进行数据处理、拟合及误差分析。此外还涉及了累积求和、矩阵运算等数值计算方法。

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

clc,clear
x0 = [71.01 72.4 72.4 72.1 71.4 72.0 71.6];
n = length(x0);
lamda = x0(1:n-1)./x0(2:n)
range = minmax(lamda)
x1 = cumsum(x0)%输出的数字累加
for i = 2:n
    z(i) = 0.5*(x1(i)+x1(i-1));
end
B = [-z(2:n)',ones(n-1,1)];%ones是形成一个a*b的数组,数组中的数都是1
Y = x0(2:n)';
u = B\Y
x =dsolve('Dx + a*x = b','x(0) = x0');%dsolve得到微分方程解析式
x = subs(x,{'a','b','x0'},{u(1),u(2),x1(1)});
yuce1 = subs(x,'t',[0:n-1]);%将第0,1,....个数替换到t中
digits(6),y = vpa(x)%digits也是精确数值个数
q = vpa(yuce1)
r = diff(q)
yuce = [x0(1), 72.4060   72.2360   72.0670   71.8990   71.7300   71.5620
]
epsilon = x0 - yuce
delta = abs(epsilon./x0)
%rho = 1-(1-0.5*u(1))/(1+0.5u(1))*lamda
% syms f(d);
% f(d)=cos(d);
% vpa(f(1))
% x = [1 2 3 6 5 4 8 9];
% y = [3 5 6 9 4 8 2 6];
% z = x-y《《《《vpa的作用

其中diff(vpa(yuce))不能直接得出答案,是一个未解决的疑问点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值