2023年华数杯数学建模B题不透明制品最优配色方案设计解题全过程文档及程序

2023年华数杯全国大学生数学建模

B题 不透明制品最优配色方案设计

原题再现:

  日常生活中五彩缤纷的不透明有色制品是由着色剂染色而成。因此,不透明制品的配色对其外观美观度和市场竞争力起着重要作用。然而,传统的人工配色存在一定的局限性,如主观性强、效率低下等。因此,研究如何通过计算机方法来实现不透明制品的配色具有重要意义。
  光通过物体传播有吸收、反射和透射三种方式。对于不透明制品来说,大部分光线会被其表面吸收或反射。吸收和反射的光线在经过透明度等校正后按波长分解成不同的颜色成分,形成光谱图。该光谱图通常由400–700nm波段的各色光组成。为简化计算,最终配色后的颜色的反射率以20nm为间隔的光谱数据来表示。对于不透明材料而言,吸收系数K/散射系数S的比值与反射率R之间存在一定关系,具体请参考文献【1】《计算机配色理论及算法的研究》中的K-M光学模型。
  基于光学模型得到的颜色参数,可应用于色差的计算。通常,使用色差(不超过1)来作为配色效果好坏的标准。色差计算方法参考文献【2】《基于CIELAB均匀颜色空间和聚类算法的混纺测色研究》中的CIELAB色彩空间的总色差计算方法。其中颜色参数L*(明度)、a*(红绿色度)和b*(黄蓝色度)计算中出现的三刺激值XYZ的计算方法如下:
在这里插入图片描述
  不透明制品配色问题,就是基于光学模型,设计不透明制品的配色模型。相较于人工配色,节省大量人力、物力和财力,对减少能耗具有重要意义。针对某一不透明制品,已知红、黄、蓝3种着色剂在不同浓度不同波长的K/S值以及基底材料在不同波长下的K/S值,见附件2。其中,浓度=着色剂克重/基材重量。每个着色剂的吸收系数K/散射系数S的比值具有加和性,详见文献【1】《计算机配色理论及算法的研究》中的K-M单常数理论。现有10个目标样(二到三种着色剂混合制成)的R值,见附件3。结果展示请保留4位小数。请建立数学模型解决如下几个问题:
  问题1:请分别计算附件2中三种着色剂在不同波长下K/S与浓度的关系,并将关系式与拟合系数填写在表格中。
在这里插入图片描述
  问题2:请建立不透明制品配色的优化模型。在已知目标样的R值(附件3)的前提下,基于光谱三刺激值加权表(附件1)与着色剂K/S基础数据库(附件2),运用优化模型配出与目标样的色差最为接近的10个不同配方,要求色差小于1。
  问题3:在问题2的基础上,考虑成本控制和批量配色,改进配色模型。对2kg 的基底材料进行配色,求出与目标样(附件3)之间色差最为接近的10个不同配方,要求色差小于1。色母粒单位克重价格见附件4。
  问题4:在实际生产中,配色所需要的着色剂越少越好,基于此,在问题3的基础上,寻找附件3中前5个样本的最优的配色方案,要求每个样本配出5个不同的配方且色差小于1。提供的数据和资料:
  1.附件1(光谱三刺激值加权表)
  2.附件2(不同浓度不同波长的K/S值)
  3.附件3(10个样品的R值)
  4.附件4(染料价格)

整体求解过程概述(摘要)

  日常生活中五彩缤纷的不透明有色制品是由着色剂染色而成。因此,不透明制品的配色对其外观美观度和市场竞争力起着重要作用。由于传统的人工配色存在主观性强、效率低下等局限性。因此,研究如何通过计算机方法来实现不透明制品的配色具有实际意义。
  针对问题一,本文建立了一元线性回归模型。为解决该数据拟合问题,初步对红、黄、蓝三种着色剂在不同波长下K/S值与浓度的相关数据进行曲线拟合,发现近似满足一元线性关系。通过建立K/S值与浓度的一元线性回归模型,采用最小二乘法对该模型的参数进行求解,得出三种着色剂在不同波长下K/S值与浓度的关系式均为一元 一次方程,并且由相关的公式对拟合系数进行求解,得出拟合系数均>0.9,说明采用一元线性回归模型对三种着色剂在不同波长下K/S值与浓度的关系拟合效果良好。
  针对问题二,本文建立了不透明制品配色的单目标优化模型。为了寻找与10种目标样本的色差最为接近的 10 个不同配方,首先通过蒙特卡洛算法随机生成各种着色剂浓度,其次确定色差小于1的配色方案,最后运用不透明制品配色的优化模型筛选出与目标样的色差最为接近的10个不同配方。通过分析结果的得出色差均在0.2左右,大部分配色方案的色差在 0.1 左右,并且在筛选过程中发现只添加红色着色剂4.6486%,即可达到色差为0.8389的效果,说明采用该优化模型选择的配色方案配色效果良好,则该不透明制品配色的单目标优化模型的可行性较强。
  针对问题三,本文建立了考虑成本控制和批量配色的双目标优化模型。本题要求我们对2kg的基底材料制定合适的配色方案。我们基于问题二的单目标配色模型,通过考虑配方着色成本最小,以配方与现有样本的色差小于1以及生产制造过程中批量配色为约束条件,建立多目标优化模型,寻找最优配色方案。分析结果得出 10 个样本的不同配色方案的色差均在0.7以下,且成本均在11.5以下,则该模型满足着色最小的优化目标。最后经过灵敏度分析和稳定性分析,发现着色剂浓度对模型敏感,并且由于样本一的最佳浓度比为9:2:1,在最优解附近对三种着色剂浓度进行扰动,色差值波动较小,证明最优解的稳定性较好,反映了双目标优化模型的稳定性。
  针对问题四,本文建立了考虑着色剂用量的多目标优化模型。本题要求基于问题三,考虑着色剂最少的条件下能够满足配色要求的最优配色方案。根据问题三的考虑成本控制和批量配色的多目标优化模型,增加着色剂最少为目标,建立了考虑着色剂的多目标优化模型,找到l满足着色剂最少的最优配色方案,其中前5个样本的配色方案中着色剂的种类最小值为2,样本1的最优配色方案选用红、黄两种着色剂;样本2、3 的最优配色方案选用红、蓝两种着色剂;样本4、5的最优配色方案选用黄、蓝两种着色剂。对问题三中的模型进行改进后,各样本5个不同的配方与样本的色差均小于1,成本值均小于7。

模型假设:

  假设一:对各个样本进行配色时,基材的厚度满足d—>d+
  假设二:三种着色剂的浓度范围为[0,5%]。
  假设三:问题一中的拟合值与真实值契合。
  假设四:本文所用数据来源真实可靠。

问题分析:

  问题一的分析
  问题一要求找出三种着色剂在不同波长下K/S值与浓度之间的关系。为解决此数据拟合类问题,我们通过对附件2中的数据进行整理,采用曲线拟合的统计方法来分析K/S 值与浓度之间的关系。根据不同着色剂的数据分布情况,建立线性回归模型,采用最小二乘法对模型的参数进行求解,并且通过相关公式求解拟合系数。
  问题二的分析
  问题二要求建立不透明制品配色的优化模型。根据附件所给数据,在已知目标样的 R 值的前提下,基于光谱三刺激值加权表与着色剂 K/S 基础数据库,运用优化模型配出与目标样的色差最为接近的 10 个不同配方,且色差小于 1。结合题目已给色差的计算方法,通过蒙特卡洛算法随机生成各种着色剂浓度,进而确定色差小于1的配色方案,运用不透明制品配色的优化模型选出与目标样的色差最为接近的 10 个不同配方。
  问题三的分析
  问题三要求通过考虑成本控制和批量配色,从而对2kg的基底材料制定合适的配色方案。基于问题二的不透明制品配色的优化模型,以配色方案与目标样的色差最为接近和着色成本最小为目标,配色方案与现有样本的色差小于1以及生产制造过程中批量配色为约束条件,建立考虑成本控制和批量配色的多目标优化模型,找到满足着色成本最小的最优配色方案。
  问题四的分析
  问题四要求我们基于问题三,考虑着色剂最少的条件下能够满足配色要求的最优配色方案。基于问题三的考虑成本控制和批量配色的多目标优化模型,增加着色剂最少为目标,着色剂最少可分为两种情况,即着色剂的种类使用最少和各种着色剂的用量最少,建立考虑着色剂的多目标优化模型,找到满足着色剂最少的最优配色方案。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:

clc;clear; 
%% 数据导入以及矩阵初始化 
R0 = importdata('YangBen.txt'); 
S = importdata('JiaQuan.txt'); 
O = importdata('K.txt'); 
P = importdata('b.txt'); 
JiC = importdata('JiCai.txt'); 
Esave = zeros(10,1); 
Resave = zeros(10,1); 
Yesave = zeros(10,1); 
Busave = zeros(10,1); 
%% 计算各个样本的L,a,b值 
Xyz0 = 0.1 * (R0 * S) * 20; %离散积分计算 
[n,m] = size(Xyz0); 
for i = 1:n if(((Xyz0(i,1)/94.83) > 0.008856)&&((Xyz0(i,2)/100) > 0.008856)&&((Xyz0(i,3)/107.38) > 
0.008856)) L0(i) = 116*((Xyz0(i,2)/100)^(1/3))-16; a0(i) = 500*(((Xyz0(i,1)/94.83)^(1/3))-((Xyz0(i,2)/100)^(1/3))); b0(i) = 200*(((Xyz0(i,2)/100)^(1/3))-((Xyz0(i,3)/107.38)^(1/3))); else L0(i) = 903.3*(Xyz0(i,2)/100); a0(i) = 3893.5*((Xyz0(i,1)/94.83)-(Xyz0(i,2)/100)); b0(i) = 1557.4*((Xyz0(i,2)/100)-(Xyz0(i,3)/107.38)); end 
end 
%% 通过蒙特卡洛模拟进行配方选择 
for q = 1:2000000 %赋予三个着色剂范围内的随机浓度   Re = (5-0.05)*rand()+0.05; Ye = (5-0.05)*rand()+0.05; Bu = (5-0.05)*rand()+0.05; ReP(q) = Re; YeP(q) = Ye; BuP(q) = Bu; %用来观察单个着色剂能否满足条件      %Re = (5-0.05)*rand()+0.05; %Ye = 0; %Bu = 0; % %Re = 0; 
%Ye = (5-0.05)*rand()+0.05; %Bu = 0; % %Re = 0; %Ye = 0 %Bu = (5-0.05)*rand()+0.05; % 得到各个波长下各个颜色的K/S值矩阵 ECKS(:,1) = Re * O(:,1); ECKS(:,2) = Ye * O(:,2); ECKS(:,3) = Bu * O(:,3); ECKS = ECKS+P; % 得到各个波长下的K/S值 KS = (ECKS(:,1)*Re + ECKS(:,2)*Ye + ECKS(:,3)*Bu)/100 + JiC;   % 得到各个波长对应的R值 R = (1+KS)-(KS.*KS+2*KS).^(0.5); % 计算对应的L,a,b值 Xyz = 0.1 * (R' * S) * 20; if(((Xyz(1)/94.83) > 0.008856)&&((Xyz(2)/100) > 0.008856)&&((Xyz(3)/107.38) > 
0.008856)) L = 116*((Xyz(2)/100)^(1/3))-16; a = 500*(((Xyz(1)/94.83)^(1/3))-((Xyz(2)/100)^(1/3))); b = 200*(((Xyz(2)/100)^(1/3))-((Xyz(3)/107.38)^(1/3))); else L = 903.3*(Xyz(2)/100); a = 3893.5*((Xyz(1)/94.83)-(Xyz(2)/100)); b = 1557.4*((Xyz(2)/100)-(Xyz(3)/107.38)); end % 色差计算 for v = 1:10 DeltaL = L - L0(v); DeltaA = a - a0(v); DeltaB = b - b0(v); DeltaE = (DeltaL^2+DeltaA^2+DeltaB^2)^(0.5); %进行条件判断并存储对应数据 if((DeltaE<1)&&(DeltaE>0.001)) Esave(v,end)=DeltaE; Esave(v,end+1)=0; Resave(v,end)=Re; Resave(v,end+1)=0; Yesave(v,end)=Ye; Yesave(v,end+1)=0; Busave(v,end)=Bu; Busave(v,end+1)=0; endend 
end 
%% 绘制浓度散点图 
plot3(ReP,YeP,BuP); 
grid on; 
xlabel('红色着色剂浓度'); 
zlabel('蓝色着色剂浓度'); 
ylabel('黄色着色剂浓度'); 
%% (第二问)对结果进行筛选,找到各个样本色差最小的10个配方 
for L = 1:10 %进行数据预处理 Ef = find(Esave(L,:)==0); [mf,nf] = size(Ef); for g = 1:nf Esave(L,Ef(g))=+inf; end [y,u]=sort(Esave(L,:)); %将色差按升序进行排序 for t = 1:10 %将对应的结果和配方进行存储 Eshow(L,t) = Esave(L,u(t)); Reshow(L,t) = Resave(L,u(t)); Yeshow(L,t) = Yesave(L,u(t)); Bushow(L,t) = Busave(L,u(t)); end 
end 
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

PortSwigger 原型污染

一、什么是原型污染 原型污染是一种 JavaScript 漏洞&#xff0c;它使攻击者能够向全局对象原型添加任意属性&#xff0c;然后这些属性可能被用户定义的对象继承。 二、JavaScript 原型和继承基础 1、原型 JavaScript 中的每个对象都链接到某种类型的另一个对象&#xff0c;称…

威联通-004 安装photoview相册应用Docker镜像

文章目录 前言准备MariaDB 10phpMyAdminphotoview 安装步骤1.安装MariaDB 10和phpMyAdmin2.初始安装MariaDB 103.进入phpMyAdmin添加账户4.手动下载photoview的Docker库注意&#xff1a;安装 phpMyAdmin 报错5.配置photoview6.容器安装成功之后进入photoview注意&#xff1a;这…

ScratchLLMStepByStep:一步一步构建大语言模型教程

前言 在学习大语言模型的时候&#xff0c;总会遇到各种各样的名词&#xff0c;像自注意力、多头、因果、自回归、掩码、残差连接、归一化等等。这些名词会让学习者听的云里雾里&#xff0c;觉得门槛太高而放弃。 本教程将会带你从零开始&#xff0c;一步一步的去构建每一个组…

6.824/6.5840 Lab 1: MapReduce

宁静的夏天 天空中繁星点点 心里头有些思念 思念着你的脸 ——宁夏 完整代码见&#xff1a; https://github.com/SnowLegend-star/6.824 由于这个lab整体难度实在不小&#xff0c;故考虑再三还是决定留下代码仅供参考 6.824的强度早有耳闻&#xff0c;我终于也是到了挑战这座高…

学习threejs,使用CubeCamera相机创建反光效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️CubeCamera 立方体相机 二、…

变点问题的公式推导

背景与关键定义 变点检测问题 变点检测的目标是在给定的观测序列 y 1 , y 2 , … , y T y_1, y_2, \dots, y_T y1​,y2​,…,yT​ 中&#xff0c;找到一个或多个点&#xff08;变点&#xff09;&#xff0c;使得每段子序列&#xff08;即变点划分的区间&#xff09;能被一个较…

解决github网络慢的问题

前言 本文采用替换host的方式来加速github的git请求&#xff0c;主要我自己用来备份的懒人方式&#xff0c;不然每次都要手动修改hosts文件&#xff0c;skrskrskr… 一、获取到可用的ip 先到这个网站查询到低延迟的ip 站长工具&#xff1a;https://ping.chinaz.com/ 第2步&…

vue3【实战】多页签【组件封装】PageTabs (含右键快捷菜单组件封装 Contextmenu -- 关闭其他页签,关闭所有页签)

效果预览 技术方案 vue3 ( vite | TS | vueUse | AutoImport | pinia) Element Plus UnoCSS 技术要点 需开启 pinia 持久化右键菜单组件借助了 Element Plus 的样式 代码实现 src/components/PageTabs.vue <script setup lang"ts"> import { usePageTabsSto…

全面解析 Transformer:改变深度学习格局的神经网络架构

目录 一、什么是 Transformer&#xff1f; 二、Transformer 的结构解析 1. 编码器&#xff08;Encoder&#xff09; 2. 解码器&#xff08;Decoder&#xff09; 3. Transformer 模型结构图 三、核心技术&#xff1a;注意力机制与多头注意力 1. 注意力机制 2. 多头注意力&…

容器运行应用及Docker命令

文章目录 一、使用容器运行Nginx应用1_使用docker run命令运行Nginx应用1 观察下载容器镜像过程2 观察容器运行情况 2_访问容器中运行的Nginx服务1 确认容器IP地址2 容器网络说明3 使用curl命令访问 二、Docker命令1_Docker命令获取帮助方法2_Docker官网提供的命令说明3_docker…

【热门主题】000075 探索嵌入式硬件设计的奥秘

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【热…

数据分析(一): 掌握STDF 掌握金钥匙-码农切入半导体的捷径

中国的半导体行业必然崛起&#xff01;看清这个大势&#xff0c;就会有很多机会。 今天&#xff0c;我们一起来了解一下半导体行业的一朵金花&#xff1a;STDF。 实际上这只是一种文件格式&#xff0c;但是当你熟练掌握解析这种文件的时候&#xff0c;你就已经打开在这个基础…

Latex转word(docx)或者说PDF转word 一个相对靠谱的方式

0. 前言 投文章过程中总会有各种各样的要求&#xff0c;其中提供word格式的手稿往往是令我头疼的一件事。尤其在多公式的文章中&#xff0c;其中公式转换是一个头疼的地方&#xff0c;还有很多图表&#xff0c;格式等等&#xff0c;想想就让人头疼欲裂。实践中摸索出一条相对靠…

AWS创建ec2实例并连接成功

aws创建ec2实例并连接 aws创建ec2并连接 1.ec2创建前准备 首先创建一个VPC隔离云资源并且有公有子网 2.创建EC2实例 1.启动新实例或者创建实例 2.创建实例名 3.选择AMI使用linux(HVM) 4.选择实例类型 5.创建密钥对下载到本地并填入密钥对名称 6.选择自己创建的VPC和公有子网…

“放弃Redis Desktop Manager使用Redis Insight”:日常使用教程(Redis可视化工具)

文章目录 更新Redis Insight连接页面基础解释自动更新key汉化暂时没有找到方法&#xff0c; Redis Desktop Manager在连接上右键在数据库上右键在key上右键1、添加连接2、key过期时间 参考文章 更新 (TωT)&#xff89;~~~ β&#xff59;ё β&#xff59;ё~ 现在在维护另一…

如何用注册机破解Reflexive游戏

相信有许多小朋友&#xff08;像我以前一样&#xff09;已经迫不及待地准备准备对浩瀚的、像三星堆一般的Reflexive游戏合集进行考古挖掘工作了。不巧的是&#xff0c;打开游戏之后发现常常提示要付费才能解锁完整版。 一、下载注册机与破解文件 首先&#xff0c;在我的永硕网…

一万台服务器用saltstack还是ansible?

一万台服务器用saltstack还是ansible? 选择使用 SaltStack 还是 Ansible 来管理一万台服务器&#xff0c;取决于几个关键因素&#xff0c;如性能、扩展性、易用性、配置管理需求和团队的熟悉度。以下是两者的对比分析&#xff0c;帮助你做出决策&#xff1a; SaltStack&…

PDF文件页面转换成图片怎么弄-免费PDF编辑工具分享

>>更多PDF文件处理应用技巧请前往 96缔盟PDF处理器 主页 查阅&#xff01; —————————————————————————————————————— 序言 我之前的文章也有介绍过如何使用96缔盟PDF处理器对PDF文件转换成图片&#xff0c;但是当时是使用DMPDFU…

从 scratch开始构建一个最小化的 Hello World Docker 镜像-docker的镜像源头

在这篇文章中&#xff0c;我们将学习如何从零开始构建一个最小化的 Docker 镜像&#xff0c;基于 scratch 镜像&#xff0c;并在其中运行一个简单的 “Hello World” 程序。 Scratch 是一个空白的基础镜像&#xff0c;适用于构建轻量化、独立的容器。由于 scratch 不包含任何系…

OpenHarmony-4.GPIO驱动

GPIO 1.功能简介 GPIO&#xff08;General-purpose input/output&#xff09;即通用型输入输出。GPIO又俗称为I/O口&#xff0c;I指的是输入(in&#xff09;&#xff0c;O指的是输出&#xff08;out&#xff09;。可以通过软件来控制其输入和输出&#xff0c;即I/O控制。通常&…