• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

2021全国大学生数学建模B题 乙醇偶合制备 C4 烯烃

互联网 diligentman 2小时前 1次浏览

2021高教社杯全国大学生数学建模

B 题 乙醇偶合制备 C4 烯烃

C4 烯烃广泛应用于化工产品及医药的生产,乙醇是生产制备 C4 烯烃的原料。在制备过程中,催化剂组合(即:Co 负载量、Co/SiO2 和 HAP 装料比、乙醇浓度的组合)与温度对 C4 烯烃的选择性和 C4 烯烃收率将产生影响(名词解释见附录)。
因此通过对催化剂组合设计,探索乙醇催化偶合制备 C4 烯烃的工艺条件具有非常重要的意义和价值。
某化工实验室针对不同催化剂在不同温度下做了一系列实验,结果如附件 1 和附件 2 所示。请通过数学建模完成下列问题:
(1) 对附件 1 中每种催化剂组合,分别研究乙醇转化率、C4 烯烃的选择性与温度的关系,并对附件 2 中 350 度时给定的催化剂组合在一次实验不同时间的测试结果进行分析。
(2) 探讨不同催化剂组合及温度对乙醇转化率以及 C4 烯烃选择性大小的影响。
(3) 如何选择催化剂组合与温度,使得在相同实验条件下 C4 烯烃收率尽可能高。若使温度低于 350 度,又如何选择催化剂组合与温度,使得 C4 烯烃收率尽可能高。
(4) 如果允许再增加 5 次实验,应如何设计,并给出详细理由。

问题一程序代码:

from mpl_toolkits import mplot3d
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
m=200; n=300
x=np.linspace(-6, 6, m); y=np.linspace(-8, 8, n);
x2, y2 = np.meshgrid(x, y)
x3=np.reshape(x2,(1,-1)); y3=np.reshape(y2, (1,-1))
xy=np.vstack((x3,y3))
def Pfun(t, m1, m2, s):
    return np.exp(-((t[0]-m1)**2+(t[1]-m2)**2)/(2*s**2))
z=Pfun(xy, 1, 2, 3); zr=z+0.2*np.random.normal(size=z.shape) #噪声数据
popt, pcov=curve_fit(Pfun, xy, zr)   #拟合参数
print("三个参数的拟合值分别为:",popt)
zn=Pfun(xy, *popt)  #计算拟合函数的值
zn2=np.reshape(zn, x2.shape)
plt.rc('font',size=16)
ax=plt.axes(projection='3d') #创建一个三维坐标轴对象
ax.plot_surface(x2, y2, zn2,cmap='gist_rainbow')
plt.savefig("figure7_10.png", dpi=500); plt.show()

2021全国大学生数学建模B题 乙醇偶合制备 C4 烯烃

问题一

1. Language插值法.m

function f = Language(x,y,x0)
%求已知数据点的拉格朗日插值多项式
%已知数据点的x坐标向量: x
%已知数据点的y坐标向量: y
%插值点的x坐标: x0
%求得的拉格朗日插值多项式或在x0处的插值: f
x=[20 70 110 163 197 240 273];%input x data
y=[39.9 38.55 36.72 39.53 38.96 40.32 39.04];%input y data
x0=[130 210 248 250];%input x0 data(可替换为自己的数据)
syms t l5;
if(length(x) == length(y))
    n = length(x);
else
    disp('x和y的维数不相等!');
    return;   %检错
end
p=sym(0);
for (i=1:n)
    l=sym(y(i));
    for(k=1:i-1)
        l=l*(t-x(k))/(x(i)-x(k));
    end;
    for(k=i+1:n)
        l=l*(t-x(k))/(x(i)-x(k));
    end;
    p=p+l;
end
simplify(p);%简化多项式
    f = subs (p,'t',x0); %计算插值点的函数值
    f = vpa(f,6); %将插值多项式的值化成6位精度的小数
end

3. 问题三C++代码1

#include<iostream>
using namespace std;
int main()
{
    double y1=0,y2=0,y3=0,y4=0,y5=0,y=0;
    double t1=0,t2=0,t3=0,t4=0,t5=0;
    for(double i=0; i<=400; i++)
    {
        if(y1<y1+0.001*i*i*i-0.09*i*i+8.193*i)
        {
            t1=i;
            y1=y1-0.09*i*i+8.193*i;
        }
    }
    for(double i=0; i<=200; i++)
    {
        if(y2<y2+0.001*i*i*i-0.266*i*i+24.739*i)
        {
            t2=i;
            y2=y2+0.001*i*i*i-0.266*i*i+24.739*i;
        }
    }
    for(double i=0; i<=2.1; i=i+0.01)
    {
        if(y5<y5-38.431*i*i*i+10.709*i*i+18.357*i)
        {
            t5=i;
            y5=y5-38.431*i*i*i+10.709*i*i+18.357*i;
        }
    }
    cout<<endl;
    cout<<"最佳温度为:"<<t1<<endl;
    cout<<"最佳Co/SiO2的量为:"<<t2<<endl;
    cout<<"最佳乙醇浓度为:"<<t5<<endl;
    y1=0,y2=0,y3=0,y4=0,y5=0;
    t1=0,t2=0,t3=0,t4=0,t5=0;
    double     i1=0,i2=0,i3=0,i4=0,i5=0;

    for(i1=0; i1<=450; i1=i1+1)
    {
        if(y<y+0.093*i1*i1+0.009*i2*i2-111.553*i3*i3+5124.405*i4*i4+180.208*i5*i5-48.413*i1+206.93*i2+1592.04*i3+3214.573*i4-477.773*i5+0.083*i1*i2-1.277*i1*i3-2.629*i1*i4-1.825*i1*i5+1.179*i2*i3-235.113*i2*i4+2.664*i2*i5-1738.344*i3*i4+518.669*i3*i5-332.301*i4*i5)
        {
            t1=i1;
            y=y+0.093*i1*i1+0.009*i2*i2-111.553*i3*i3+5124.405*i4*i4+180.208*i5*i5-48.413*i1+206.93*i2+1592.04*i3+3214.573*i4-477.773*i5+0.083*i1*i2-1.277*i1*i3-2.629*i1*i4-1.825*i1*i5+1.179*i2*i3-235.113*i2*i4+2.664*i2*i5-1738.344*i3*i4+518.669*i3*i5-332.301*i4*i5;
        }
        for(i2=0; i2<=200; i2=i2+10)
        {
            if(y<y+0.093*i1*i1+0.009*i2*i2-111.553*i3*i3+5124.405*i4*i4+180.208*i5*i5-48.413*i1+206.93*i2+1592.04*i3+3214.573*i4-477.773*i5+0.083*i1*i2-1.277*i1*i3-2.629*i1*i4-1.825*i1*i5+1.179*i2*i3-235.113*i2*i4+2.664*i2*i5-1738.344*i3*i4+518.669*i3*i5-332.301*i4*i5)
            {
                t2=i2;
                y=y+0.093*i1*i1+0.009*i2*i2-111.553*i3*i3+5124.405*i4*i4+180.208*i5*i5-48.413*i1+206.93*i2+1592.04*i3+3214.573*i4-477.773*i5+0.083*i1*i2-1.277*i1*i3-2.629*i1*i4-1.825*i1*i5+1.179*i2*i3-235.113*i2*i4+2.664*i2*i5-1738.344*i3*i4+518.669*i3*i5-332.301*i4*i5;
            }
            for(i3=1; i3<=5; i3=i3+1)
            {
                if(y<y+0.093*i1*i1+0.009*i2*i2-111.553*i3*i3+5124.405*i4*i4+180.208*i5*i5-48.413*i1+206.93*i2+1592.04*i3+3214.573*i4-477.773*i5+0.083*i1*i2-1.277*i1*i3-2.629*i1*i4-1.825*i1*i5+1.179*i2*i3-235.113*i2*i4+2.664*i2*i5-1738.344*i3*i4+518.669*i3*i5-332.301*i4*i5)
                {
                    t3=i3;
                    y=y+0.093*i1*i1+0.009*i2*i2-111.553*i3*i3+5124.405*i4*i4+180.208*i5*i5-48.413*i1+206.93*i2+1592.04*i3+3214.573*i4-477.773*i5+0.083*i1*i2-1.277*i1*i3-2.629*i1*i4-1.825*i1*i5+1.179*i2*i3-235.113*i2*i4+2.664*i2*i5-1738.344*i3*i4+518.669*i3*i5-332.301*i4*i5;
                }
                for(i4=0; i4<=2; i4=i4+0.1)
                {
                    if(y<y+0.093*i1*i1+0.009*i2*i2-111.553*i3*i3+5124.405*i4*i4+180.208*i5*i5-48.413*i1+206.93*i2+1592.04*i3+3214.573*i4-477.773*i5+0.083*i1*i2-1.277*i1*i3-2.629*i1*i4-1.825*i1*i5+1.179*i2*i3-235.113*i2*i4+2.664*i2*i5-1738.344*i3*i4+518.669*i3*i5-332.301*i4*i5)
                    {
                        t4=i4;
                        y=y+0.093*i1*i1+0.009*i2*i2-111.553*i3*i3+5124.405*i4*i4+180.208*i5*i5-48.413*i1+206.93*i2+1592.04*i3+3214.573*i4-477.773*i5+0.083*i1*i2-1.277*i1*i3-2.629*i1*i4-1.825*i1*i5+1.179*i2*i3-235.113*i2*i4+2.664*i2*i5-1738.344*i3*i4+518.669*i3*i5-332.301*i4*i5;
                    }
                    for(i5=0; i5<=2.1; i5=i5+0.1)
                    {
                        if(y<y+0.093*i1*i1+0.009*i2*i2-111.553*i3*i3+5124.405*i4*i4+180.208*i5*i5-48.413*i1+206.93*i2+1592.04*i3+3214.573*i4-477.773*i5+0.083*i1*i2-1.277*i1*i3-2.629*i1*i4-1.825*i1*i5+1.179*i2*i3-235.113*i2*i4+2.664*i2*i5-1738.344*i3*i4+518.669*i3*i5-332.301*i4*i5)
                        {
                            t5=i5;
                            y=y+0.093*i1*i1+0.009*i2*i2-111.553*i3*i3+5124.405*i4*i4+180.208*i5*i5-48.413*i1+206.93*i2+1592.04*i3+3214.573*i4-477.773*i5+0.083*i1*i2-1.277*i1*i3-2.629*i1*i4-1.825*i1*i5+1.179*i2*i3-235.113*i2*i4+2.664*i2*i5-1738.344*i3*i4+518.669*i3*i5-332.301*i4*i5;
                        }
                    }
                }
            }
        }
    }
    cout<<"最佳Co的负载量为:"<<t3<<endl;
    cout<<"最佳Co/SiO2和HAP装料比为:"<<t4<<endl;
    return 0;
}

解题关键

根据上述绘制的密度直方图,乙醇转化率、C4烯烃的选择性之间并非成随着一个变量的增长到导致那个另一变量的规律变化,则两者并非线性相关。因此,我们采用非线性最小二乘拟合来得出乙醇转化率、C4烯烃的选择性与温度之间的多项式拟合曲线,如需论文和程序:

print("博主qq:2534659467")


程序员灯塔
转载请注明原文链接:2021全国大学生数学建模B题 乙醇偶合制备 C4 烯烃
喜欢 (0)