① 数学建模需要编程,用计算机求模型的解,怎么编程从哪里开始学
template <class T,class GETKEY>
T *Serial_Partitioned(T *pData, UINT uDataLen,UINT uRadix,
UINT uKeyIndex, GETKEY GetKeyFunc,
UINT *puBoxDataCount, T *pOutData,
DATA_ARRAY_TEMP<T> *pArray)
{l
② 数学建模不会编程怎么办
数学建模不会编程的主要步骤:
第一、模型准备首先要了解问题的实际背景,明确建模目的,搜集必需的各种信息,尽量弄清对象的特征。
第四、模型求解可以采用解方程、画图形、证明定理、逻辑运算、数值运算等各种传统的和近代的数学方法,特别是计算机技术。一道实际问题的解决往往需要纷繁的计算,许多时候还得将系统运行情况用计算机模拟出来,因此编程和熟悉数学软件包能力便举足轻重。
第五、模型分析对模型解答进行数学上的分析。"横看成岭侧成峰,远近高低各不?能否对模型结果作出细致精当的分析,决定了你的模型能否达到更高的档次。
③ 数学建模中的编程
就拿数学建模来说,建模的过程是要将一个实际的问题简化为一个可以用数据和很简短的语言能表示出来的问题,然后通过数学工具解决这个问题,比如说概率,微积分,等等。当然数学里面还有很多可以解决实际问题的算法,比如说线性规划、拟合、回归等等很多。因为实际问题的数据可能会比较复杂,按照某个算法用人脑一步步求解往往会很麻烦。
因此通过计算机编程可以编出来算法的程序,直接给数据,计算机就可以算出来。说白了就是人来建立模型,然后编程算法用计算机来计算模型中的答案,比如最优解。要想自己编程序需要对这个算法有足够深的认识。事实上很多算法前人都写好了C或C++的源程序,当然用matlab会更省事一些。
数学建模与编程关系:
1、数学建模更像是从现实世界到数学抽象的过程。要经历把现实问题理想化的步骤,其间必须要决定舍弃哪些影响甚微的多余因素,好简化问题;只有简化了问题才能提出模型。
2、编程更像是在抽象空间本身提出问题,解决问题。这么说来,编程问题反而更像“纯粹”的数学问题。因为程序世界本身就是基于0、1建立起来的抽象世界,编程更像是在抽象世界里,解决抽象问题。所以它一般不需要考虑对哪些因素作取舍。
3、在这二者分别发展的情况下,它们各自的触角越伸越广泛,相互的边界也是日渐模糊的。比如图像处理、图像识别等等,虽然是编程问题,但它距离现实已比“一步之遥”还要近了。或者从另一个角度说,像这种问题是数学建模和编程通力合作解决的。
④ 数学建模用什么编程python行吗
如果是编辑公式的话,python中直接可以进行计算,如
计算c=a+b,在python代码中可以表示为:
a=1
b=2
c=a+b
print(c)
输出结果是:3
如果你要进行其他计算的话,可以使用math模块
这个是安装Python环境后自带的一个模块,可以直接调用
更多python math模块的调用可以参考如下网页
网页链接
⑤ 数学建模需要掌握哪些编程语言和技术
数学建模应当掌握的十类算法及所需编程语言:
1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)。
2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具)。
3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、 Lingo软件实现)。
4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备)。
5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中)。
6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用)。
7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具)。
8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的)。
9、数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用)。
10、图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用Matlab进行处理)。
⑥ 数学建模中的C语言编程
这个问题的前提条件不明确,本人试着给出一种方法的描述,该回答基于下述假设:
1、n个工件是同时到达的;
2、任意工件可以任意机器上加工;
3、已知工件的加工时间;
基本思想:
采用短工作优先算法,从而使总加工时间最少。
该算法的详细说明可以参考任何一本《操作系统原理》
解法步骤:
1、将工件按加工时间排序,需要时间最少的排在最前;
2、设置一个M大小的数组U,表示各机器已用时间;
3、设置一个M大小的数组N,表示各机器加工当前工件还需要的时间;
4、设置一个M大小的数组R,表示各机器已运行的时间;
4、将数组U、R、N的各元素都置为0;
5、对工件数据中每个元素执行下述操作:
从数组N中找到值最小的元素x;
将数组N中每个元素的值减去元素x的值作为其新值;
将数组R中每个元素的值加上元素x的值为作其新值;
将元素x值设置为工件要求的加工时间;
修改数组U中的值:U[x]+=R[x]+N[x];
6、将数组U中各元素的值求和,得到的即为最短的总时间
祝你好运!
-------------------------------------------------------
程序用JAVA语言编写,并省略了排序操作,并假定机器数为3
public static void main(String[] arg)throws Exception
{
int[] W=new int[]{1,2,3,55,56,77,77,88,99,100};//工件需要的工作时间
int[] U=new int[]{0,0,0};//各机器加工的工件已用的总时间,含等待时间
int[] R=new int[]{0,0,0};//各机器已运行的时间
int[] N=new int[]{0,0,0};//各机器加工完当前工作需要的时间
for(int i=0;i<W.length;i++)
{
/**找到当前机器中最早可用的机器,用m表示机器的代号,x表示机器完成当前工作需要的时间*/
int m=0;
for(int j=1;j<N.length;j++)if(N[j]<N[m])m=j;
int x=N[m];
//将数组N中每个元素的值减去元素x的值作为其新值;
//将数组R中每个元素的值加上元素x的值为作其新值;
for(int j=0;j<N.length;j++)
{
N[j]-=x;
R[j]+=x;
}
//将元素x(即机器m)值设置为工件要求的加工时间;
N[m]=W[i];
U[m]+=(R[m]+N[m]);
}
int total=0;
for(int i=0;i<U.length;i++)total+=U[i];
System.out.println("总时间等于:"+total);
}
⑦ 数学建模用c语言代码该怎么打
如果时间只剩下一个星期的话,我推荐不要拘泥于刷题之类的长期学习过程了,对于题主没有任何数学建模的经验的这种情况,主要是以下几点建议:
找来一些数学建模的入门书籍,但是不要从头开始看,直接看书里面的那些比较经典的例题,看完题目也没必要花太多时间思考,毕竟就快要比赛了,直接看答案,然后分析答案的套路,尽量理解思路。多看几道题,你就大概清楚数学建模的方法了。
学过C语言编程,那么可以参考这些例题,用自己的程序重写一篇,找一找感觉。比赛的时候往往都可以直接照搬这些思路,模拟出一些很相似的建模过程。比如说有一道例题,它设了这些变量x、y、z,然后按照题目的要求耦合这些变量的关系,比如:z=x+y,那么到比赛的时候,你就可以考虑考虑这种思路,一个一个设置好变量,然后把题目的要求都用数学语言表达出来,再用C语言编程。(当然这是一个简单的例子,具体肯定复杂很多)。例题看得多了,各种各样的套路也知道得多了,加之你用C语言亲手写过,那么到了比赛的时候也有一点信心了。
遇到头绪不清楚的,就套。怎么个套法?把看过的例题里的方法一个一个套上去,看能不能顺利建模。套出来了,万事大吉,没套出来,尽量把变量列清楚,数学关系理清一点,然后写程序的时候把已经弄清楚的关系都写出来,这样即使没有完成建模,但是还是会有一定的分数。
不知道题主的比赛具体要求是怎样,有些比赛要求要代码实现,有些比赛要求只是数学上的分析,但是总之,你就算是乱扯,只要能够圆回来,让自己的道理说得通,让评分人觉得有点道理,那你就拿到一定的分数了。2019年“臭名昭著”的一件事,MCM美国大学生数学建模竞赛有一组的题目是“权利的游戏”,大概就是说让你分析一条龙的各种行为、特征啥的,反正就是让你用饮食、栖息地啥的数学地解释一下,建个模。特等奖,画了条超级牛X炫酷的龙在论文里面,然后简单分析几下(当然这里的简单是相对其它优秀的参赛作品说的,客观来说肯定也是很复杂的),拿了特奖。
下面给你看看这条龙:
所以,你懂的,只要会扯淡,你就是数模赛场上最靓的那个仔。(狗头....
⑧ 大学生数学建模容易吗是否要用C语言来编程序,要是需要那如何编
大学生数学建模不是很容易,需要有较强的数学功底
以及编写程序的能力
用C语言建模的话,一般要具体问题具体分析,举个例子:求二元一次方程的根
一般是用MATLAB,数学专用建模工具