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

2021全国大学生数学建模B题 乙醇偶合制备 C4 烯烃2021高教社杯全国大学生数学建模B题乙醇偶合制备C4烯烃C4烯烃广泛应用于化工产品及医药的生产,乙醇是生产制备C4烯烃的原料。在制备过程中,催化剂组合(即:Co负载量、Co/SiO2和HAP装料比、乙醇浓度的组合)与温度对C4烯烃的选择性和C4烯烃收率将产生影响(名词解释见附录)。因此通过对催化剂组合设计,探索乙醇催化偶合制备C4烯烃的工艺条件具有非常重要的意义和价值。某化工实验室针对不同催化剂在不同温度下做了一系列实验,结果如附件1和附件2所示。请通过数

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()

在这里插入图片描述

问题一

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烯烃的选择性与温度之间的多项式拟合曲线。

今天的文章2021全国大学生数学建模B题 乙醇偶合制备 C4 烯烃分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/32588.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注