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

news2024/12/26 20:40:54

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; 
        end
         end 
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.coloradmin.cn/o/2253014.html

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

相关文章

C语言实验 循环结构2

时间:2024.12.3 一、实验 7-1 求符合给定条件的整数集 #include<stdio.h> int main(){int a,b,s,g; scanf("%d",&a);int h=0; for(int i=a;i<=a+3;i++){for(int j=a;j<=a+3;j++){for(int k=a;k<=a+3;k++){if((i!=j)&&(i!=k)&&…

Android10 设备死机的问题分析和解决

最近客户反馈一个问题&#xff0c;设备偶现死机。最后解决&#xff0c;在此记录。 目录 一死机的现象 二死机的类型 三 死机问题分析 1 死机现象的梳理 2 死机日志 1&#xff09;日志分析一 2 日志分析二&#xff08;正确方案&#xff09; 一死机的现象 设备死机&#x…

koa中间件

文章目录 1. koa中间件简介2. 中间件类型1. 应用级中间件2. 路由级中间件3. 错误处理中间件4. 第三方中间件 3.中间件执行流程 1. koa中间件简介 在Koa中&#xff0c;中间件呈现为一个异步函数&#xff0c;该函数支持 async/await 语法&#xff0c;它接收两个参数&#xff1a;…

python学opencv|读取视频(一)灰度视频制作和保存

【1】引言 上一次课学习了用opencv读取图像&#xff0c;掌握了三个函数&#xff1a;cv.imread()、cv.imshow()、cv.imwrite() 相关链接如下&#xff1a; python学opencv|读取图像-CSDN博客 这次课我们继续&#xff0c;来学习用opencv读取视频。 【2】学习资源 首先是官网…

BioDeepAV:一个多模态基准数据集,包含超过1600个深度伪造视频,用于评估深度伪造检测器在面对未知生成器时的性能。

2024-11-29, 由罗马尼亚布加勒斯特大学创建BioDeepAV数据集&#xff0c;它专门设计来评估最先进的深度伪造检测器在面对未见过的深度伪造生成器时的泛化能力&#xff0c;这对于提高检测器的鲁棒性和适应性具有重要意义。 数据集地址&#xff1a;biodeep 一、研究背景&#xff1…

Apache Airflow 快速入门教程

Apache Airflow已经成为Python生态系统中管道编排的事实上的库。与类似的解决方案相反&#xff0c;由于它的简单性和可扩展性&#xff0c;它已经获得了普及。在本文中&#xff0c;我将尝试概述它的主要概念&#xff0c;并让您清楚地了解何时以及如何使用它。 Airflow应用场景 …

【OpenAI库】从0到1深入理解Python调用OpenAI库的完整教程:从入门到实际运用

文章目录 Moss前沿AI一、初识OpenAI API1.1 获取API-Key&#xff08;两种方案&#xff09;1.2 安装OpenAI库 二、Python调用OpenAI API的基础设置2.1 设置API密钥和Base URL2.2 参数详解 三、构建一个简单的聊天应用3.1 创建聊天请求3.2 参数详解3.3 处理响应 四、完整代码示例…

42 基于单片机的智能浇花系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;采样DHT11温湿度传感器检测温湿度&#xff0c;通过LCD1602显示 4*4按键矩阵可以设置温度湿度阈值&#xff0c;温度大于阈值则开启水泵&#xff0c;湿度大于阈值则开启风扇…

typecho 添加主题备份及恢复功能

typecho 换主题很简单&#xff0c;但是确有一个比较麻烦的事情&#xff0c;就是主题配置在切换主题的同时也就被删除了。于是&#xff0c;今天我下决心要弄一个备份恢复的功能出来。网上查了很久&#xff0c;都没有找到适合的&#xff08;不过还是有参考价值的&#xff09;。最…

docker部署RustDesk自建服务器

客户端&#xff1a; Releases rustdesk/rustdesk GitHub 服务端&#xff1a; 项目官方地址&#xff1a;GitHub - rustdesk/rustdesk-server: RustDesk Server Program 1、拉取RustDesk库 docker pull rustdesk/rustdesk-server:latest 阿里云库&#xff1a; docker pu…

从零开始了解推荐系统(算法构建、召回、粗排、精排、重排、冷启动、衡量标准)

算法构建 推荐算法流程 实际上是一种信息处理逻辑&#xff0c;当获取了用户与内容的信息之后&#xff0c;按照一定的逻辑处理信息后&#xff0c;产生推荐结果。热度排行榜就是最简单的一种推荐方法&#xff0c;依赖的逻辑是当一个内容被大多数用户喜欢&#xff0c;那么大概率…

【第 1 章 初识 C 语言】1.8 使用 C 语言的 7 个步骤

目录 1.8 使用 C 语言的 7 个步骤 1.8.1 第 1 步&#xff1a;定义程序的目标 1.8.2 第 2 步&#xff1a;设计程序 1.8.3 第 3 步&#xff1a;编写代码 1.8.4 第 4 步&#xff1a;编译 1.8.5 第 5 步&#xff1a;运行程序 1.8.6 第 6 步&#xff1a;测试和调试程序 1.8.…

基于Matlab卡尔曼滤波的GPS/INS集成导航系统研究与实现

随着智能交通和无人驾驶技术的迅猛发展&#xff0c;精确可靠的导航系统已成为提升车辆定位精度与安全性的重要技术。全球定位系统&#xff08;GPS&#xff09;和惯性导航系统&#xff08;INS&#xff09;在导航应用中各具优势&#xff1a;GPS提供全球定位信息&#xff0c;而INS…

C++知识整理day3类与对象(下)——赋值运算符重载、取地址重载、列表初始化、友元、匿名对象、static

文章目录 1.赋值运算符重载1.1 运算符重载1.2 赋值运算符重载 2.取地址重载2.1 const成员函数2.2 取地址运算符重载 3.类与对象的补充3.1 再探构造函数---初始化列表3.2 类型转换3.3 static成员3.4 友元3.5 内部类3.6 匿名对象3.7 对象拷贝时的编译器优化 1.赋值运算符重载 赋…

深入解析级联操作与SQL完整性约束异常的解决方法

目录 前言1. 外键约束与级联操作概述1.1 什么是外键约束1.2 级联操作的实际应用场景 2. 错误分析&#xff1a;SQLIntegrityConstraintViolationException2.1 错误场景描述2.2 触发错误的根本原因 3. 解决方法及优化建议3.1 数据库级别的解决方案3.2 应用层的解决方案 4. 友好提…

dns实验3:主从同步-完全区域传输

服务器192.168.234.111&#xff08;主服务器&#xff09;&#xff0c;打开配置文件&#xff1a; 打开配置文件&#xff1a; 关闭防火墙&#xff0c;改宽松模式&#xff1a; 重启服务&#xff1a; 服务器192.168.234.112&#xff08;从服务器&#xff09;&#xff0c;打开配置文…

LeetCode刷题 -- 分治快排

目录 颜色分类题目解析算法原理代码 排序数组题目解析算法原理代码 数组中第K个最大元素题目解析算法原理代码 LCR 159. 库存管理 III题目解析算法原理代码 颜色分类 题目链接 题目解析 数组分为三块 算法原理 1.如果nums[i] 0&#xff0c;left, i下标对应元素交换&#xff0c…

【论文笔记】Leveraging the Power of MLLMs for Gloss-Free Sign Language Translation

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: Leveraging the Power of …

TsingtaoAI具身智能高校实训方案通过华为昇腾技术认证

日前&#xff0c;TsingtaoAI推出的“具身智能高校实训解决方案-从AI大模型机器人到通用具身智能”基于华为技术有限公司AI框架昇思MindSpore&#xff0c;完成并通过昇腾相互兼容性技术认证。 TsingtaoAI&华为昇腾联合解决方案 本项目“具身智能高校实训解决方案”以实现高…

如何抓取亚马逊页面动态加载的内容:Python爬虫实践指南

引言 在现代电商领域&#xff0c;数据的重要性不言而喻。亚马逊作为全球领先的电商平台&#xff0c;其页面上动态加载的内容包含了丰富的商品信息。然而&#xff0c;传统的爬虫技术往往难以应对JavaScript动态加载的内容。本文将详细介绍如何使用Python结合Selenium工具来抓取…