数学建模总结
在大学暑期培训"数学建模"10天了,在这10天里我学到了MATLAB,Lingo软件的使用。其中Lingo主要用于运筹学,往细里说吧,主要用于有约数的方程的计算。老师说,lingo是MBA人士必会的一个软件,我觉得很有幸能学到这个东西。在这最后的两天里,老师主要教了图论中的"迪杰斯特,福洛依德,最小生成树",这是解决问题的重要方法,也是ACM,运筹学等领域的重要知识。就其中的一个算法也是要花一个星期学习和运用的。可想而知学的有多么浅了。
现在我与网友们共享我的学习数学建模的知识与步骤。
在第一天里,我学习了MATLAB的语法,并做了几个作业。
对以下问题,编写M文件: (1)用起泡法对10个数由小到大排序. 即将相邻两个数比较,将小的调到前头. (2)有一个4*5矩阵,编程求出其最大值及其所处的位置. (3)编程求 (4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下. 求它在第10次落地时,共经过多少米?第10次反弹有多高? (5)有一函数,写一程序,输入自变量的值,输出函数值. |
第一题,用到了for循环、if语法、关系操作符、逻辑操作符。用法如下:
MATLAB提供三种决策或控制流结构:
for循环、while循环、if-else-end结构.
这些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中,而不是直接加在MATLAB提示符下.
1、for循环:允许一组命令以固定的和预定的次数重复
for x=array
{commands}
end
在for和end语句之间的命令串{commands}按数组(array)中的每一列执行一次. 在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)
2、While循环
与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值.
while expression
commands}
end
只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串{commands}.
3、If-Else-End结构
(1)有一个选择的一般形式是:
if expression
{commands}
end
如果在表达式(expression)里的所有元素为真,就执行if和end语句之间的命令串{commands}.
(2) 有三个或更多的选择的一般形式是:
if (expression1)
{commands1}
else if (expression2)
{commands2}
else if (expression3)
{commands3}
else if ……
…………………………………
else
{commands}
end
end
end
……
x=[1 3 5 9 4 7 6 2 10 8 7]; for m=1:9 %m 的值从1到9 for n=1:10-m if x(n)>x(n+1) t=x(n); x(n)=x(n+1); x(n+1)=t; end end end |
第二题用的到知识点是函数max的使用,即求最大值。在MATLAB中使用help max便可以看到到详细的解释。
Y=rand(4,5)*10; max(max(y)) %説一下';'的用途是不在主界面显示值 '%'是用来注释的 |
第三题,用到的是阶乘函数,连乘函数分别是factorial、prod
s=0; for n=1:1:20 s=s+factorial(n); end s %显示s的值 |
第四题,可以for循环和判断语句if
s=100; n=0; for n=1:1:10 s=s/2; end s |
第五题,用到的是函数sin()函数
x=input('please input x'); y=input('please input y'); f=(x^3)*sin(x*y) |
其中input花了我好几分钟,找了半天原来是有一个文件与我写的input文件
重名问题,后来我把它删了才好了。
好了,今天写到这。
留个资料给网友。
http://pan.baidu.com/share/link?shareid=123099363&uk=405327792