2022 年高教社杯全国大学生数学建模竞赛题目--C 题 古代玻璃制品的成分分析与鉴别--第一问代码

 C  题 古代玻璃制品的成分分析与鉴别


      丝绸之路是古代中西方文化交流的通道,其中玻璃是早期贸易往来的宝贵物证。早期的玻璃在西亚和埃及地区常被制作成珠形饰品传入我国,我国古代玻璃吸收其技术后在本土就地取材制作,因此与外来的玻璃制品外观相似,但化学成分却不相同。

     玻璃的主要原料是石英砂,主要化学成分是二氧化硅(SiO 2 )。由于纯石英砂的熔点较高,为了降低熔化温度,在炼制时需要添加助熔剂。古代常用的助熔剂有草木灰、天然泡碱、硝石和铅矿石等,并添加石灰石作为稳定剂,石灰石煅烧以后转化为氧化钙(CaO)。添加的助熔剂不同,其主要化学成分也不同。例如,铅钡玻璃在烧制过程中加入铅矿石作为助熔剂,其氧化铅(PbO)、氧化钡(BaO)的含量较高,通常被认为是我国自己发明的玻璃品种,楚文化的玻璃就是以铅钡玻璃为主。钾玻璃是以含钾量高的物质如草木灰作为助熔剂烧制而成的,主要流行于我国岭南以及东南亚和印度等区域。
       古代玻璃极易受埋藏环境的影响而风化。在风化过程中,内部元素与环境元素进行大量交换,导致其成分比例发生变化,从而影响对其类别的正确判断。如图 1 的文物标记为表面无风化,表面能明显看出文物的颜色、纹饰,但不排除局部有较浅的风化;图 2 的文物标记为表面风化,表面大面积灰黄色区域为风化层,是明显风化区域,紫色部分是一般风化表面。在部分风化的文物中,其表面也有未风化的区域。

2022 年高教社杯全国大学生数学建模竞赛题目--C 题 古代玻璃制品的成分分析与鉴别--第一问代码_第1张图片       2022 年高教社杯全国大学生数学建模竞赛题目--C 题 古代玻璃制品的成分分析与鉴别--第一问代码_第2张图片 

                 图 1 未风化的蜻蜓眼玻璃珠样品          图 2 风化的玻璃棋子样品
       现有一批我国古代玻璃制品的相关数据,考古工作者依据这些文物样品的化学成分和其他检测手段已将其分为高钾玻璃和铅钡玻璃两种类型。附件表单 1 给出了这些文物的分类信息,附件表单 2 给出了相应的主要成分所占比例(空白处表示未检测到该成分)。这些数据的特点是成分性,即各成分比例的累加和应为 100%,但因检测手段等原因可能导致其成分比例的累加和非 100%的情况。本题中将成分比例累加和介于 85%~105%之间的数据视为有效数据。

问题1

        对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析;结合玻璃的类型分析文物样品表面有无风化化学成分含量的统计规律,并根据风化点检测数据,预测其风化前的化学成分含量。

数据 

表1: GKF

7 92.63 0 0 1.07 0 1.98 0.17 3.24 0 0 0.61 0 0 0 99.7
27 92.72 0 0 0.94 0.54 2.51 0.2 1.54 0 0 0.36 0 0 0 98.81
9 95.02 0 0.59 0.62 0 1.32 0.32 1.55 0 0 0.35 0 0 0 99.77
22 92.35 0 0.74 1.66 0.64 3.5 0.35 0.55 0 0 0.21 0 0 0 100
12 94.29 0 1.01 0.72 0 1.46 0.29 1.65 0 0 0.15 0 0 0 99.57
10 96.77 0 0.92 0.21 0 0.81 0.26 0.84 0 0 0 0 0 0 99.81

表2:GKN 

14 62.47 3.38 12.28 8.23 0.66 9.23 0.5 0.47 1.62 0 0.16 0 0 0 99
15 61.87 3.21 7.44 0 1.02 3.15 1.04 1.29 0.19 0 0.26 0 0 0 79.47
13 59.01 2.86 12.53 8.7 0 6.16 2.88 4.73 0 0 1.27 0 0 0 98.14
17 60.71 2.12 5.71 0 0.85 0 1.04 1.09 0.19 0 0.18 0 0 0 71.89
16 65.18 2.1 14.52 8.27 0.52 6.18 0.42 1.07 0.11 0 0 0.04 0 0 98.41
6 59.81 0 7.68 5.41 1.73 10.05 6.04 2.18 0.35 0.97 4.5 0.12 0 0 98.84
6 67.65 0 7.37 0 1.98 11.15 2.39 2.51 0.2 1.38 4.18 0.11 0 0 98.92
18 79.46 0 9.42 0 1.53 3.05 0 0 0 0 1.36 0.07 2.36 0 97.25
1 69.33 0 9.99 6.32 0.87 3.93 1.74 3.87 0 0 1.17 0 0 0.39 97.61
21 76.68 0 0 4.71 1.22 6.19 2.37 3.28 1 1.97 1.1 0 0 0 98.52
5 61.58 0 10.95 7.35 1.77 7.5 2.62 3.27 0 0 0.94 0.06 0 0.47 96.51
4 65.88 0 9.67 7.12 1.56 6.44 2.06 2.18 0 0 0.79 0 0 0.36 96.06
3 61.71 0 12.37 5.87 1.11 5.5 2.16 5.09 1.41 2.86 0.7 0.1 0 0 98.88
3 87.05 0 5.19 2.01 0 4.06 0 0.78 0.25 0 0.66 0 0 0 100

附:表中只有部分数据,全部的数据表在文末百度云链接中。 

MATLAB程序源代码 

% CSDN账号:MATLAB码农
clc
clear
close all

for t=1:4
    if t==1
           A=xlsread('C:\Users\Administrator\Desktop\CC\GKN.xlsx');
    end
    if t==2
           A=xlsread('C:\Users\Administrator\Desktop\CC\GKF.xlsx');
    end
    if t==3
           A=xlsread('C:\Users\Administrator\Desktop\CC\KBN.xlsx');
    end
    if t==4
           A=xlsread('C:\Users\Administrator\Desktop\CC\KBF.xlsx');
    end
    
    
    [n,m] = size(A);
    
    idx = [2,4,5,7,9,12]
    for k=1:length(idx)
        for i = 1:n
            x(i)=A(i,idx(k));
        end
        
        picPos = k + (t-1)*6;
        subplot(4,6,picPos);
       
        
        h = histogram(x,5)
        if t ==2 || t == 4
            h.FaceColor = [0.1 0.1 0.5];
            h.EdgeColor = 'r';
        end
        hold on
        
        [counts,centers] = hist(x,5);
        x2 = centers(1)*0.5:((centers(end)-centers(1)))/1000:centers(end)*1.5;
        
        [mu,sigma]=normfit(x);%用正态分布拟合出平均值和标准差
        delta = centers(2)-centers(1);
        y2 = pdf('Normal', x2, mu,sigma)*10;%求在x2处的pdf值
        
        axis([centers(1)-delta,centers(end)+delta,0,max(counts)+0.5]);%限定x坐标范围
        
        hh = plot(x2,y2)
        set(hh,'LineWidth',5);
        
        if picPos==4
            title('不同玻璃类型风化前后不同化学成分频率分布直方图')
        end
        if t==4
           if k==1
           xlabel('SiO2'); 
           end
           if k==2
           xlabel('K2O'); 
           end
           if k==3
           xlabel('CaO'); 
           end
           if k==4
           xlabel('Al2O3'); 
           end
           
           if k==5
           xlabel('CuO'); 
           end
           if k==6
           xlabel('P2O5'); 
           end
        end
        
        if k==1
           if t==1 
           ylabel('高钾类未风化');
           end
           if t==2
           ylabel('高钾类风化');
           end
           if t==3
           ylabel('铅钡类未风化');
           end
           if t==4 
           ylabel('铅钡类风化');
           end
           
   
        end
    end
end

MATLAB程序运行结果 

 2022 年高教社杯全国大学生数学建模竞赛题目--C 题 古代玻璃制品的成分分析与鉴别--第一问代码_第3张图片

数据附件: 

链接:https://pan.baidu.com/s/1u_c2r8YFPq8pdKE3POJPsQ?pwd=wh08 
提取码:wh08

你可能感兴趣的:(matlab,数学建模,2022年高教社C题,古代玻璃制品的成分分析与鉴别)