【负荷预测、电价预测】基于神经网络的负荷预测和价格预测(Matlab代码实现)

news2024/9/24 7:13:58

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

1 概述

2 基于神经网络的负荷预测(Matlab实现)

2.1 部分代码

2.2 结果 

2.3 回归树模型的进一步改进 

3 基于神经网络的价格预测(Matlab代码实现) 

4 Matlab代码及数据


1 概述

本文用MATLAB建立一个短期电力负荷(或价格)预测系统。两个非线性回归模型(神经网络和袋式回归树)被校准,以预测给定温度预测、假日信息和历史负荷的每小时前日负荷。这些模型在数据上进行训练,并在2008年的样本外数据上进行测试。这些模型被证明能够产生高度准确的日前预测,平均误差在1-2%左右。能够通过MATLAB部署的DLL调用训练好的负荷预测模型。

准确的负荷预测对于公用事业的短期运营和长期规划至关重要。负荷预测会影响许多决策,包括在给定时期内承诺哪些发电机,并广泛影响批发电力市场价格。负荷和价格预测算法通常在简化形式的电价混合模型中也很突出,这是用于模拟市场和模拟能源衍生品的一些最准确的模型。市场参与者在许多交易和风险管理应用程序中也广泛使用电价预测。负荷预测会影响许多决策,包括在给定时期内承诺哪些发电机,并广泛影响批发电力市场价格。负荷预测算法通常在电价混合模型中也很突出,这是电力市场建模最准确的一类方法。市场参与者在许多交易和风险管理应用程序中广泛使用电价预测。传统上,公用事业和营销人员使用商业软件包来执行负荷预测。这些方法的主要缺点是它们是一个黑匣子,不提供如何计算负载预测的透明度。它们通常也只提供实用程序所需功能的 80-90%。在许多情况下,不可能通过现成的产品满足所有要求,例如考虑到区域负载、不同的天气模式等。


2 基于神经网络的负荷预测(Matlab实现)

2.1 部分代码

%% 利用神经网络进行电力负荷预测
% 这个例子展示了用MATLAB建立和验证一个短期的
% 本例演示了用MATLAB建立和验证短期电力负荷预测模型。这些模型考虑到了

load Data\DBLoadData.mat
addpath ..\Util

%% 从Excel电子表格中导入假期列表

[num, text] = xlsread('..\Data\Holidays.xls'); 
holidays = text(2:end,1);


%% 生成预测矩阵
% 函数*genPredictors*生成了作为模型输入的预测变量。
% 的输入。对于短期预测,这些变量包括
% * 干球温度
% * 露点
% *一天中的小时
% * 一周中的一天
% *表明是否为假日/周末的标志
% * 前一天的平均负荷
% * 前一天同一小时的负荷
% * 前一周同一小时和同一天的负荷
% 如果目标是中期或长期的负荷预测,只需输入
% 如果目标是中期或长期的负荷预测,只有一天中的小时,一周中的一天,一年中的时间和节假日可以被使用
% 确定性地使用。天气/负荷信息将需要被指定为
% 指定为一个平均数或一个分布
%% 选择预测范围
term = 'short';

[X, dates, labels] = genPredictors(data, term, holidays);

%% 讲数据集分为训练和测试集
% 该数据集被分为两组,一个是包括2004年至2007年数据的_训练_组,
% 另一个是包括2008年数据的_测试_组。
% 训练集包括2004至2007年的数据,测试集包括2008年的数据。
% 训练集用于建立模型(估计其参数)。测试集仅用于预测,以测试模型在样本外数据上的表现。
%++++++ 建立训练集++++++++++
trainInd = data.NumDate < datenum('2008-01-01');
trainX = X(trainInd,:);
trainY = data.SYSLoad(trainInd);

%++++++创建测试集并保存以备不时之需++++++
testInd = data.NumDate >= datenum('2008-01-01');
testX = X(testInd,:);
testY = data.SYSLoad(testInd);
testDates = dates(testInd);

save Data\testSet testDates testX testY
clear X data trainInd testInd term holidays dates ans num text

%% 构建负荷预测模型
% 接下来的几个单元建立了一个神经网络回归模型,
% 用于给定训练数据的日前负荷预测。
% 然后,该模型被用于测试数据以验证其准确性。
%% 初始化和训练网络
% 初始化一个包含 20 个神经元的两层默认网络。使用“平均
% 绝对误差”(MAE)性能指标。然后,用
% 默认的 Levenburg-Marquardt 算法。为了提高效率,预先训练
% 除非特别强制执行重新训练,否则网络会被加载。
reTrain = false;
if reTrain || ~exist('Models\NNModel.mat', 'file')
    net = newfit(trainX', trainY', 20);
    net.performFcn = 'mae';
    net = train(net, trainX', trainY');
    save Models\NNModel.mat net
else
    load Models\NNModel.mat
end
    
%% 采用神经网络模型进行预测
% 一旦建立了模型,对独立的测试集进行预测. 

load Data\testSet
forecastLoad = sim(net, testX')';

%% 比较预测负荷和实际负荷
% 创建一个图表来比较实际负荷和预测负荷以及
% 并计算出预测误差。除了可视化之外,还可以使用平均绝对值等指标来量化
% 预测器的性能,如平均绝对误差(MAE)、平均绝对百分比误差(MAPE)和每日峰值误差(MAPE)等指标。
% 误差(MAE),平均绝对误差(MAPE)和每日峰值预测
% 误差。
err = testY-forecastLoad;
fitPlot(testDates, [testY forecastLoad], err);

errpct = abs(err)./testY*100;

fL = reshape(forecastLoad, 24, length(forecastLoad)/24)';
tY = reshape(testY, 24, length(testY)/24)';
peakerrpct = abs(max(tY,[],2) - max(fL,[],2))./max(tY,[],2) * 100;

MAE = mean(abs(err));
MAPE = mean(errpct(~isinf(errpct)));

fprintf('平均绝对百分比误差 (MAPE): %0.2f%% \n平均绝对误差 (MAE): %0.2f MWh\n每日峰值 MAPE: %0.2f%%\n',...
    MAPE, MAE, mean(peakerrpct))


%% 检查误差的分布情况
% 除了报告标量误差指标(如MAE和MAPE)外,误差分布图和绝对误差也有助于建立
% 误差和绝对误差的分布图可以帮助建立
% 围绕预测者的表现建立直觉
%% 可视化图像
figure;
subplot(3,1,1); hist(err,100); title('误差分布');
subplot(3,1,2); hist(abs(err),100); title('绝对误差分布');
line([MAE MAE], ylim); legend('误差', 'MAE');
subplot(3,1,3); hist(errpct,100); title('绝对百分比误差分布');
line([MAPE MAPE], ylim); legend('误差', 'MAPE');

%% 误差的集体分析
% 为了进一步了解预报器的性能,我们可以
% 为了进一步了解预报员的表现,我们可以按一天中的每一小时、
% 一周中的每一天和一年中的每一个月来直观地显示预报误差百分比。
% 年的月份
[yr, mo, da, hr] = datevec(testDates);

%% 按小时计算
clf;
boxplot(errpct, hr+1);
xlabel('小时'); ylabel('误差百分比的统计');
title('按小时划分的预测误差统计数据');

% 按工作日
figure
boxplot(errpct, weekday(floor(testDates)), 'labels', {'Sun','Mon','Tue','Wed','Thu','Fri','Sat'});
ylabel('误差百分比统计');
title('按工作日划分的预测误差统计明细表');

% 按月份
figure
boxplot(errpct, datestr(testDates,'mmm'));
ylabel('误差百分比统计');
title('按月份划分的预测误差统计细目表');


%% 制作每周图表
%在测试集上每周建立预测负荷与实际负荷的对比。
generateCharts = true;
if generateCharts
    step = 168*2;
    for i = 0:step:length(testDates)-step
        clf;
        fitPlot(testDates(i+1:i+step), [testY(i+1:i+step) forecastLoad(i+1:i+step)], err(i+1:i+step));
        title(sprintf('MAPE: %0.2f%%', mean(errpct(i+1:i+step))));
        snapnow
        
    end
end

%% 利用神经网络进行电力负荷预测
% 这个例子展示了用MATLAB建立和验证一个短期的
% 本例演示了用MATLAB建立和验证短期电力负荷预测模型。这些模型考虑到了
% 考虑到多种信息来源,包括温度和
% 假期等多种信息,以构建一个日前负荷预测器。这个脚本使用
% 神经网络。

%% 导入天气和负荷数据
% 所使用的数据集是一个地区2004 - 2008年的历史小时负荷和温度观测表。
% 天气信息包括干球温度和露点。
load Data\DBLoadData.mat
addpath ..\Util

%% 从Excel电子表格中导入假期列表

[num, text] = xlsread('..\Data\Holidays.xls'); 
holidays = text(2:end,1);


%% 生成预测矩阵
% 函数*genPredictors*生成了作为模型输入的预测变量。
% 的输入。对于短期预测,这些变量包括
% * 干球温度
% * 露点
% *一天中的小时
% * 一周中的一天
% *表明是否为假日/周末的标志
% * 前一天的平均负荷
% * 前一天同一小时的负荷
% * 前一周同一小时和同一天的负荷
% 如果目标是中期或长期的负荷预测,只需输入
% 如果目标是中期或长期的负荷预测,只有一天中的小时,一周中的一天,一年中的时间和节假日可以被使用
% 确定性地使用。天气/负荷信息将需要被指定为
% 指定为一个平均数或一个分布
%% 选择预测范围
term = 'short';

[X, dates, labels] = genPredictors(data, term, holidays);

%% 讲数据集分为训练和测试集
% 该数据集被分为两组,一个是包括2004年至2007年数据的_训练_组,
% 另一个是包括2008年数据的_测试_组。
% 训练集包括2004至2007年的数据,测试集包括2008年的数据。
% 训练集用于建立模型(估计其参数)。测试集仅用于预测,以测试模型在样本外数据上的表现。
%++++++ 建立训练集++++++++++
trainInd = data.NumDate < datenum('2008-01-01');
trainX = X(trainInd,:);
trainY = data.SYSLoad(trainInd);

%++++++创建测试集并保存以备不时之需++++++
testInd = data.NumDate >= datenum('2008-01-01');
testX = X(testInd,:);
testY = data.SYSLoad(testInd);
testDates = dates(testInd);

save Data\testSet testDates testX testY
clear X data trainInd testInd term holidays dates ans num text

%% 构建负荷预测模型
% 接下来的几个单元建立了一个神经网络回归模型,
% 用于给定训练数据的日前负荷预测。
% 然后,该模型被用于测试数据以验证其准确性。
%% 初始化和训练网络
% 初始化一个包含 20 个神经元的两层默认网络。使用“平均
% 绝对误差”(MAE)性能指标。然后,用
% 默认的 Levenburg-Marquardt 算法。为了提高效率,预先训练
% 除非特别强制执行重新训练,否则网络会被加载。
reTrain = false;
if reTrain || ~exist('Models\NNModel.mat', 'file')
    net = newfit(trainX', trainY', 20);
    net.performFcn = 'mae';
    net = train(net, trainX', trainY');
    save Models\NNModel.mat net
else
    load Models\NNModel.mat
end
    
%% 采用神经网络模型进行预测
% 一旦建立了模型,对独立的测试集进行预测. 

load Data\testSet
forecastLoad = sim(net, testX')';

%% 比较预测负荷和实际负荷
% 创建一个图表来比较实际负荷和预测负荷以及
% 并计算出预测误差。除了可视化之外,还可以使用平均绝对值等指标来量化
% 预测器的性能,如平均绝对误差(MAE)、平均绝对百分比误差(MAPE)和每日峰值误差(MAPE)等指标。
% 误差(MAE),平均绝对误差(MAPE)和每日峰值预测
% 误差。
err = testY-forecastLoad;
fitPlot(testDates, [testY forecastLoad], err);

errpct = abs(err)./testY*100;

fL = reshape(forecastLoad, 24, length(forecastLoad)/24)';
tY = reshape(testY, 24, length(testY)/24)';
peakerrpct = abs(max(tY,[],2) - max(fL,[],2))./max(tY,[],2) * 100;

MAE = mean(abs(err));
MAPE = mean(errpct(~isinf(errpct)));

fprintf('平均绝对百分比误差 (MAPE): %0.2f%% \n平均绝对误差 (MAE): %0.2f MWh\n每日峰值 MAPE: %0.2f%%\n',...
    MAPE, MAE, mean(peakerrpct))


%% 检查误差的分布情况
% 除了报告标量误差指标(如MAE和MAPE)外,误差分布图和绝对误差也有助于建立
% 误差和绝对误差的分布图可以帮助建立
% 围绕预测者的表现建立直觉
%% 可视化图像
figure;
subplot(3,1,1); hist(err,100); title('误差分布');
subplot(3,1,2); hist(abs(err),100); title('绝对误差分布');
line([MAE MAE], ylim); legend('误差', 'MAE');
subplot(3,1,3); hist(errpct,100); title('绝对百分比误差分布');
line([MAPE MAPE], ylim); legend('误差', 'MAPE');

%% 误差的集体分析
% 为了进一步了解预报器的性能,我们可以
% 为了进一步了解预报员的表现,我们可以按一天中的每一小时、
% 一周中的每一天和一年中的每一个月来直观地显示预报误差百分比。
% 年的月份
[yr, mo, da, hr] = datevec(testDates);

%% 按小时计算
clf;
boxplot(errpct, hr+1);
xlabel('小时'); ylabel('误差百分比的统计');
title('按小时划分的预测误差统计数据');

% 按工作日
figure
boxplot(errpct, weekday(floor(testDates)), 'labels', {'Sun','Mon','Tue','Wed','Thu','Fri','Sat'});
ylabel('误差百分比统计');
title('按工作日划分的预测误差统计明细表');

% 按月份
figure
boxplot(errpct, datestr(testDates,'mmm'));
ylabel('误差百分比统计');
title('按月份划分的预测误差统计细目表');


%% 制作每周图表
%在测试集上每周建立预测负荷与实际负荷的对比。
generateCharts = true;
if generateCharts
    step = 168*2;
    for i = 0:step:length(testDates)-step
        clf;
        fitPlot(testDates(i+1:i+step), [testY(i+1:i+step) forecastLoad(i+1:i+step)], err(i+1:i+step));
        title(sprintf('MAPE: %0.2f%%', mean(errpct(i+1:i+step))));
        snapnow
        
    end
end
 

%% 利用神经网络进行电力负荷预测
% 这个例子展示了用MATLAB建立和验证一个短期的
% 本例演示了用MATLAB建立和验证短期电力负荷预测模型。这些模型考虑到了
% 考虑到多种信息来源,包括温度和
% 假期等多种信息,以构建一个日前负荷预测器。这个脚本使用
% 神经网络。

%% 导入天气和负荷数据
% 所使用的数据集是一个地区2004 - 2008年的历史小时负荷和温度观测表。
% 天气信息包括干球温度和露点。
load Data\DBLoadData.mat
addpath ..\Util

%% 从Excel电子表格中导入假期列表

[num, text] = xlsread('..\Data\Holidays.xls'); 
holidays = text(2:end,1);


%% 生成预测矩阵
% 函数*genPredictors*生成了作为模型输入的预测变量。
% 的输入。对于短期预测,这些变量包括
% * 干球温度
% * 露点
% *一天中的小时
% * 一周中的一天
% *表明是否为假日/周末的标志
% * 前一天的平均负荷
% * 前一天同一小时的负荷
% * 前一周同一小时和同一天的负荷
% 如果目标是中期或长期的负荷预测,只需输入
% 如果目标是中期或长期的负荷预测,只有一天中的小时,一周中的一天,一年中的时间和节假日可以被使用
% 确定性地使用。天气/负荷信息将需要被指定为
% 指定为一个平均数或一个分布
%% 选择预测范围
term = 'short';

[X, dates, labels] = genPredictors(data, term, holidays);

%% 讲数据集分为训练和测试集
% 该数据集被分为两组,一个是包括2004年至2007年数据的_训练_组,
% 另一个是包括2008年数据的_测试_组。
% 训练集包括2004至2007年的数据,测试集包括2008年的数据。
% 训练集用于建立模型(估计其参数)。测试集仅用于预测,以测试模型在样本外数据上的表现。
%++++++ 建立训练集++++++++++
trainInd = data.NumDate < datenum('2008-01-01');
trainX = X(trainInd,:);
trainY = data.SYSLoad(trainInd);

%++++++创建测试集并保存以备不时之需++++++
testInd = data.NumDate >= datenum('2008-01-01');
testX = X(testInd,:);
testY = data.SYSLoad(testInd);
testDates = dates(testInd);

save Data\testSet testDates testX testY
clear X data trainInd testInd term holidays dates ans num text

%% 构建负荷预测模型
% 接下来的几个单元建立了一个神经网络回归模型,
% 用于给定训练数据的日前负荷预测。
% 然后,该模型被用于测试数据以验证其准确性。
%% 初始化和训练网络
% 初始化一个包含 20 个神经元的两层默认网络。使用“平均
% 绝对误差”(MAE)性能指标。然后,用
% 默认的 Levenburg-Marquardt 算法。为了提高效率,预先训练
% 除非特别强制执行重新训练,否则网络会被加载。
reTrain = false;
if reTrain || ~exist('Models\NNModel.mat', 'file')
    net = newfit(trainX', trainY', 20);
    net.performFcn = 'mae';
    net = train(net, trainX', trainY');
    save Models\NNModel.mat net
else
    load Models\NNModel.mat
end
    
%% 采用神经网络模型进行预测
% 一旦建立了模型,对独立的测试集进行预测. 

load Data\testSet
forecastLoad = sim(net, testX')';

%% 比较预测负荷和实际负荷
% 创建一个图表来比较实际负荷和预测负荷以及
% 并计算出预测误差。除了可视化之外,还可以使用平均绝对值等指标来量化
% 预测器的性能,如平均绝对误差(MAE)、平均绝对百分比误差(MAPE)和每日峰值误差(MAPE)等指标。
% 误差(MAE),平均绝对误差(MAPE)和每日峰值预测
% 误差。
err = testY-forecastLoad;
fitPlot(testDates, [testY forecastLoad], err);

errpct = abs(err)./testY*100;

fL = reshape(forecastLoad, 24, length(forecastLoad)/24)';
tY = reshape(testY, 24, length(testY)/24)';
peakerrpct = abs(max(tY,[],2) - max(fL,[],2))./max(tY,[],2) * 100;

MAE = mean(abs(err));
MAPE = mean(errpct(~isinf(errpct)));

fprintf('平均绝对百分比误差 (MAPE): %0.2f%% \n平均绝对误差 (MAE): %0.2f MWh\n每日峰值 MAPE: %0.2f%%\n',...
    MAPE, MAE, mean(peakerrpct))


%% 检查误差的分布情况
% 除了报告标量误差指标(如MAE和MAPE)外,误差分布图和绝对误差也有助于建立
% 误差和绝对误差的分布图可以帮助建立
% 围绕预测者的表现建立直觉
%% 可视化图像
figure;
subplot(3,1,1); hist(err,100); title('误差分布');
subplot(3,1,2); hist(abs(err),100); title('绝对误差分布');
line([MAE MAE], ylim); legend('误差', 'MAE');
subplot(3,1,3); hist(errpct,100); title('绝对百分比误差分布');
line([MAPE MAPE], ylim); legend('误差', 'MAPE');

%% 误差的集体分析
% 为了进一步了解预报器的性能,我们可以
% 为了进一步了解预报员的表现,我们可以按一天中的每一小时、
% 一周中的每一天和一年中的每一个月来直观地显示预报误差百分比。
% 年的月份
[yr, mo, da, hr] = datevec(testDates);

%% 按小时计算
clf;
boxplot(errpct, hr+1);
xlabel('小时'); ylabel('误差百分比的统计');
title('按小时划分的预测误差统计数据');

% 按工作日
figure
boxplot(errpct, weekday(floor(testDates)), 'labels', {'Sun','Mon','Tue','Wed','Thu','Fri','Sat'});
ylabel('误差百分比统计');
title('按工作日划分的预测误差统计明细表');

% 按月份
figure
boxplot(errpct, datestr(testDates,'mmm'));
ylabel('误差百分比统计');
title('按月份划分的预测误差统计细目表');


%% 制作每周图表
%在测试集上每周建立预测负荷与实际负荷的对比。
generateCharts = true;
if generateCharts
    step = 168*2;
    for i = 0:step:length(testDates)-step
        clf;
        fitPlot(testDates(i+1:i+step), [testY(i+1:i+step) forecastLoad(i+1:i+step)], err(i+1:i+step));
        title(sprintf('MAPE: %0.2f%%', mean(errpct(i+1:i+step))));
        snapnow
        
    end
end
 

 

2.2 结果 

  

 

 

2.3 回归树模型的进一步改进 

 

3 基于神经网络的价格预测(Matlab代码实现) 

 

 

 

4 Matlab代码及数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Webpack DevServerExpress 中间件

前言 webpack-dev-server 底层是 express webpack-dev-middleware。 express是基础。 webpack-dev-middleware是中间件&#xff0c;以监听模式启动 webpack&#xff0c;将编译后的文件输出到内存&#xff08;使用fs-memory&#xff09;&#xff0c;沟通webpack的HRM&#xf…

机器学习之特征提取

Question Orientied:来自论文的一个学习点 Feature extraction 定义&#xff1a; 特征提取是指使用计算机提取图像中属于特征性的信息的方法及过程。 简言之 提取图像关键信息。 特征提取出来的结果叫特征向量。 进入主题之前 普及几个常识&#xff1a; 像素的英文名称:Pixe…

Flutter 完全手册

小册介绍 Flutter 作为一个跨平台的框架&#xff0c;其开发技术栈融合了 Native 和前端的技术&#xff0c;不仅涉及到了 Native&#xff08;Android、iOS &#xff09;的开发知识&#xff0c;又吸取了很多前端&#xff08;例如 React&#xff09;的技术理念和框架&#xff0c;并…

甘露糖-聚乙二醇-CY3 Cy3-PEG-mannose

甘露糖-聚乙二醇-CY3 Cy3-PEG-mannose 中文名称&#xff1a;甘露糖-荧光染料CY3 英文名称&#xff1a;mannose-Cyanine3 别称&#xff1a;CY3标记甘露糖&#xff0c;CY3-甘露糖 溶解性&#xff1a;溶于大部分有机溶剂&#xff0c;如&#xff1a;DCM、DMF、DMSO、THF等等。在…

业务数据分析-Excel数据透视表(四)

目录 1、什么是数据透视表 2、如何操作 3、数据透视表的优势 4、适用什么场景 5、使用前注意事项 1、什么是数据透视表 先来举个例子 看下面这段对话 下午5点30 boss&#xff1a;把这张表给我整理成如下格式&#xff0c;就是根据平台给我汇总一下销量和收入&#xff0c…

机械工程基础笔记整理

第一章 绪论 第一节 课程的特点 1. 综合性 本课结合了工程力学&#xff0c;机械工程材料&#xff0c;常用机构&#xff0c;支撑零部件&#xff0c;机械传动&#xff0c;液压传动&#xff0c;气压传动的相关知识。 2. 基础性 无论从事机械制造&#xff0c;还是使用研究机械&…

OpenCV图像处理——(实战)答题卡识别试卷

总目录 图像处理总目录←点击这里 二十、答题卡识别试卷 20.1、预处理 灰度图 输出灰度图高斯滤波去噪 gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) blurred cv2.GaussianBlur(gray, (5, 5), 0)边缘检测 edged cv2.Canny(blurred, 75, 200)20.2、轮廓检测 找到原…

快速构建一个简单的对话+问答AI (上)

文章目录前言part0 资源准备基本功能语料停用词问答闲聊语料获取part01句的表达表达one-hot编码词嵌入大致原理实现简单版复杂版如何训练转换后的形状part02 循环神经网络RNNRNN投影图RNN是三维立体的LSTM&GRUpart03意图识别分词FastText分类FastText网络结构优化点构造Fas…

http请求走私漏洞原理,利用,检测,防护

目录 什么是请求走私 漏洞成因与常见类型 Keep-Alive&Pipeline CL&TE 常见走私类型 1.CL不为0 2.CL CL 3.CL TE 4.TE CL 5.TE TE 走私攻击应用实例&#xff08;漏洞利用&#xff09; 使用CL TE走私获取其他用户的请求、Cookie 2.泄露请求头重写请求实现未…

UE4贴图自适应屏幕大小

游戏开发中&#xff0c;不同屏幕下的分辨率不同&#xff0c;模型/物品被拉伸之后贴图也会随之拉伸。 如果需要在不同屏幕下面实现贴图真实大小不变&#xff08;以下简称为自适应&#xff09;&#xff0c;需要对UV进行缩放处理之后再取得对应贴图的颜色。 本文提供一种能够实现不…

为什么国外程序员的创造力比中国程序员强?

1川口耕介是个日本程序员&#xff0c;他曾在Sun公司从事Java、XML和Solaris相关的开发。2004年&#xff0c;他用Java写了叫做一个Hudson的开源工具&#xff0c;专门做持续集成&#xff08;CI&#xff09;。Hudson安装、配置、使用都非常方便&#xff0c;并且支持用插件的形式扩…

有求必应 | 听说这个管线排布,横竖都行?

大家好&#xff0c;今天还是被 yi 情反复拿捏的建模助手。 拿捏归拿捏&#xff0c;企微客服还是很认真得在给大家答疑解惑记bug&#xff0c;刚好有求知若渴的盆友问到管线排布这个角度&#xff0c;是否能有小数点&#xff0c;比如1.2&#xff0c;或者0.8。 对待此类问题&#x…

无线传感器网络:排队论(Queueing Theory)模型

文章目录The arrival ProcessQueueing SystemThe M/M/1 queueThe M/M/1/N queueReferences排队理论已被用于评估通信网络的性能很多年了。早在1917年&#xff0c;丹麦数学家 Erlang 就将该理论用于电话交换机的设计&#xff0c;并开创了现在著名的 Erlang-B 和 Erlang-C 公式&a…

DevData Talks | 知乎艾辉:从工具建设到运营,千人团队研发提效最佳实践

在千人级别的组织层级提升研发效能&#xff0c;是一种什么体验&#xff1f;可以确定的是&#xff0c;千人级组织的效能提升&#xff0c;并不是百人级团队的等比放大。 在数十人乃至小百人的团队&#xff0c;统一规范研发工具与流程的门槛相对较低&#xff0c;参与方也比较简单…

07 索引

1.索引 概述 1. 简介 索引是一种帮助数据库高效获取数据的数据结构&#xff1b;通过索引可以快速获取到符合条件的数据的内存地址&#xff0c;避免全表扫描 2. 索引的优缺点 优点&#xff1a; 可以快速地检索数据&#xff0c;降低数据IO成本通过索引可以对数据进行排序&…

jenkins 共用宿主机中的docker自动化部署

目录 第一节 jenkins 共用宿主机中的docker自动化部署 1.docker命令安装启动jenkins 2.查询jenkins内是否可以执行宿主机中的docker 第二节.jenkins 配置自动化部署 1.界面配置 1.配置mave 2.配置gitee 第三节 创建springboot多模块项目 1.相关配置 1.pom 2.编写docke…

【面试题】作用域和闭包

1. 作用域 作用域是指变量的合法使用范围。 例如下图中&#xff0c;函数fn3内定义的变量a3&#xff0c;无法在函数fn3以外的区域使用。 作用域分为全局作用域&#xff0c;函数作用域&#xff0c;块级作用域&#xff08;ES6新增&#xff09; 全局作用域&#xff1a;变量没有受…

HTML+CSS+JS个人网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

MYSQL索引数据结构----B+树

索引数据结构的考量 我们在考虑数据结构的时候&#xff0c;应该首先要知道数据存放在哪里&#xff1f; 而MYSQL的数据是持久化的&#xff0c;所以其数据&#xff08;数据记录索引&#xff09;应该是保存在磁盘里面的。因此当我们要查询某条数据记录时&#xff0c;就会先从磁盘…

[附源码]计算机毕业设计JAVA某城市参军和退役军人信息管理系统

[附源码]计算机毕业设计JAVA某城市参军和退役军人信息管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff…