2023年第四届“华数杯”数学建模思路 - 复盘:光照强度计算的优化模型

文章目录

  • [0 赛题思路](#0 赛题思路)
    • [1 问题要求](#1 问题要求)
    • [2 假设约定](#2 假设约定)
    • [3 符号约定](#3 符号约定)
    • [4 建立模型](#4 建立模型)
    • [5 模型求解](#5 模型求解)
    • [6 实现代码](#6 实现代码)

0 赛题思路

(赛题出来以后第一时间在CSDN分享)

https://blog.csdn.net/dc_sinor?type=blog

1 问题要求

现在已知一个教室长为15米,宽为12米,在距离地面高2.5米的位置均

匀的安放4个光源(分别为1、2、3、4),各个光源的光照强度均为一个单位,如下图

要求:

  • (1)如何计算教室内任意一点的光照强度?(光源对目标点的光照强度与该光源到目标点距离的平方成反比,与该光源的强度成正比).
  • (2)画出距离地面1米处各个点的光照强度与位置(横纵坐标)之间的函数关系曲面图,试同时给出一个近似的函数关系式.
  • (3)假设离地面1米高正是学生桌面的高度,如何设计这四个点光源的位置,才能使学生对光照的平均满意度达到最高?
  • (4)若将题目中的点光源换成线光源,以上(2)、(3)问的结果又如何?

(对于(1)、(2)问,假设横向(纵向)墙壁与光源、光源与光源、光源与墙壁之间的距离是相等的.)

2 假设约定

  • 1 光不会通过窗、门等外涉,也不考虑光在空气中的消耗,即光照强度和不变;
  • 2 室内不受外界光源影响;
  • 3 教室高度为2.5米;
  • 4 不考虑光的反射;
  • 5 线光源发光是均匀的.

3 符号约定

4 建立模型


5 模型求解


6 实现代码

matlab 实现代码

建议最好用python去实现,图会好看一些,而且国内当前趋势会逐渐淘汰matlab,目前有些学校已经无法使用matlab了

bash 复制代码
clear
clc
max=0;min=4;
for i=0:0.1:3
    for j=0.1:0.1:4
        s=0;
        x1=8+i,y1=5-j
        x2=8+i,y2=10+j
        x3=4-i,y3=10+j
        x4=4-i,y4=5-j     
        for x=0:0.1:12
            for y=0:0.1:15
                for z=0:0.1:2.5
                    if x1~=x & y1~=y & x2~=x & y2~=y & x3~=x & y3~=y & x4~=x & y4~=y 
                      s=s+1./((x1-x).^2+(y1-y).^2+(2.5-z).^2)+1./((x2-x).^2+(y2-y).^2+(2.5-z).^2)+1./((x3-x).^2+(y3-y).^2+(2.5-z).^2)+1./((x4-x).^2+(y4-y).^2+(2.5-z).^2);
                    end
                end
            end
        end
        k=4./s;l=0;z=1;
        for x=0:0.1:12
            for y=0:0.1:15
           l=l+k.*(1./((x1-x).^2+(y1-y).^2+(2.5-z).^2)+1/((x2-x).^2+(y2-y).^2+(2.5-z).^2)+1./((x3-x).^2+(y3-y).^2+(2.5-z).^2)+1./((x4-x).^2+(y4-y).^2+(2.5-z).^2));
            end
        end
        if l>max
            max=l;
            x11=x1;y11=y1;x12=x2;y12=y2;x13=x3;y13=y3;x14=x4;y14=y4;
        end
        p=l./(120.*150);Q=0;
        for x=0:0.1:12
            for y=0:0.1:15
             Q=Q+(k.*(1./((x1-x).^2+(y1-y).^2+(2.5-z).^2)+1./((x2-x).^2+(y2-y).^2+(2.5-z).^2)+1./((x3-x).^2+(y3-y).^2+(2.5-z).^2)+1./((x4-x).^2+(y4-y).^2+(2.5-z).^2))-p).^2.^(1./2);
            end
        end
        if min>Q
           min=Q;
           x21=x1;y21=y1;x22=x2;y22=y2;x23=x3;y23=y3;x24=x4;y24=y4;
       end
   end
end
disp(['最大值','x11=',num2str(x11),'  ','y11=',num2str(y11),'  ','x12=',num2str(x12),'  ','y12=',num2str(y12),'  ','x13=',num2str(x13),'  ','y13=',num2str(y13),'  ','x14=',num2str(x14),'  ','y14=',num2str(y14)])
disp(['最平均','x21=',num2str(x21),'  ','y21=',num2str(y21),'  ','x22=',num2str(x22),'  ','y22=',num2str(y22),'  ','x23=',num2str(x23),'  ','y23=',num2str(y23),'  ','x24=',num2str(x24),'  ','y24=',num2str(y24)])
附录二:
clear
clc
max=0;min=4;li=4;
for i=0:0.1:3
    for j=0.1:0.1:4
        s=0;
        x1=8+i,y1=5-j
        x2=8+i,y2=10+j
        x3=4-i,y3=10+j
        x4=4-i,y4=5-j     
        for x=0:0.1:12
            for y=0:0.1:15
                for z=0:0.1:2.5
                    if x1~=x & y1~=y & x2~=x & y2~=y & x3~=x & y3~=y & x4~=x & y4~=y 
                  s=s+1./((x1-x).^2+(y1-y).^2+(2.5-z).^2)+1./((x2-x).^2+(y2-y).^2+(2.5-z).^2)+1./((x3-x).^2+(y3-y).^2+(2.5-z).^2)+1./((x4-x).^2+(y4-y).^2+(2.5-z).^2);
                    end
                end
            end
        end
        k=4./s;l=0;z=1;e=0
        for x=0:0.1:12
            for y=0:0.1:15
                l=l+k.*(1./((x1-x).^2+(y1-y).^2+(2.5-z).^2)+1/((x2-x).^2+(y2-y).^2+(2.5-z).^2)+1./((x3-x).^2+(y3-y).^2+(2.5-z).^2)+1./((x4-x).^2+(y4-y).^2+(2.5-z).^2));
                r=k.*(1./((x1-x).^2+(y1-y).^2+(2.5-z).^2)+1/((x2-x).^2+(y2-y).^2+(2.5-z).^2)+1./((x3-x).^2+(y3-y).^2+(2.5-z).^2)+1./((x4-x).^2+(y4-y).^2+(2.5-z).^2));
                e=e+(r-6*10^(-32))^2;
            end
        end
       S=(l-0.1278)^2+e
       if S<li
           li=S
           x11=x1,y11=y1,  x12=x2,y12=y2,  x13=x3,y13=y3,  x14=x4,y14=y4,
       en4
   en4
en4
disp(['x11=',num2str(x11),'  ','y11=',num2str(y11),'  ','x12=',num2str(x12),'  ','y12=',num2str(y12),'  ','x13=',num2str(x13),'  ','y13=',num2str(y13),'  ','x14=',num2str(x14),'  ','y14=',num2str(y14)])
li
相关推荐
Ven%21 分钟前
【AI大模型算法工程师面试题解析与技术思考】
人工智能·python·算法
天勤量化大唯粉22 分钟前
枢轴点反转策略在铜期货中的量化应用指南(附天勤量化代码)
ide·python·算法·机器学习·github·开源软件·程序员创富
爱学习的小仙女!37 分钟前
算法效率的度量 时间复杂度 空间复杂度
数据结构·算法
AndrewHZ40 分钟前
【复杂网络分析】什么是图神经网络?
人工智能·深度学习·神经网络·算法·图神经网络·复杂网络
Swizard1 小时前
拒绝“狗熊掰棒子”!用 EWC (Elastic Weight Consolidation) 彻底终结 AI 的灾难性遗忘
python·算法·ai·训练
fab 在逃TDPIE2 小时前
Sentaurus TCAD 仿真教程(十)
算法
天赐学c语言2 小时前
12.19 - 买卖股票的最佳时机 && const的作用
c++·算法·leecode
菜鸟233号2 小时前
力扣78 子集 java实现
java·数据结构·算法·leetcode
yesyesyoucan2 小时前
在线魔方解谜站:从零入门到精通的智能魔方学习平台
学习·算法
Han.miracle2 小时前
数据结构与算法--008四数之和 与经典子数组 / 子串问题解析
数据结构·算法