当前位置:首页 > 代码 > 正文

数学建模作业附程序源代码(数学建模一定要写代码吗)

admin 发布:2022-12-19 16:55 163


本篇文章给大家谈谈数学建模作业附程序源代码,以及数学建模一定要写代码吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

数学建模各类模型的例题及编程

例:给出美国人口从1790年到1990年间的人口如表1(每10年为一个间隔),请估计出美国2010年的人口。

表1 美国人口统计数据

年 份 1790 1800 1810 1820 1830 1840 1850

人口(×106) 3.9 5.3 7.2 9.6 12.9 17.1 23.2

年 份 1860 1870 1880 1890 1900 1910 1920

人口(×106) 31.4 38.6 50.2 62.9 76.0 92.0 106.5

年 份 1930 1940 1950 1960 1970 1980

人口(×106) 123.2 131.7 150.7 179.3 204.0 226.5

建模方法:

可以发现美国人口的变化规律曲线近似为一条指数函数曲线,因此我们假设美国的人口满足函数关系x=f(t), f(t)=ea+bt,a,b为待定常数,根据最小二乘拟合的原理,a,b是函数 的最小值点。其中xi是ti时刻美国的人口数。利用MATLAB软件中的曲线拟合程序“curvefit”,编制的程序如下:

指数函数的函数M——文件

function f=fun1(a,t)

f=exp(a(1)*t+a(2));

用最小二乘拟合求上述函数中待定常数,以及检验拟合效果的图形绘制程序

t=1790:10:1990;

x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 ...

92 106.5 123.2 131.7 150.7 179.3 204 226.5 251.4];

plot(t,x,'*',t,x);

a0=[0.001,1];

a=curvefit('fun1',a0,t,x)

ti=1790:5:2020;

xi=fun1(a,ti);

hold on

plot(ti,xi);

t1=2010;

x1=fun1(a,t1)

hold off

数学建模中的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;iW.length;i++)

{

/**找到当前机器中最早可用的机器,用m表示机器的代号,x表示机器完成当前工作需要的时间*/

int m=0;

for(int j=1;jN.length;j++)if(N[j]N[m])m=j;

int x=N[m];

//将数组N中每个元素的值减去元素x的值作为其新值;

//将数组R中每个元素的值加上元素x的值为作其新值;

for(int j=0;jN.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;iU.length;i++)total+=U[i];

System.out.println("总时间等于:"+total);

}

数学建模用SPSS分析数据,附录如何写,因为没有源代码啊。。。附录不知道怎么写了

附录可以附数据,实在不行就把你没调通的程序放上也行(不会连这个也没有吧),附录在评卷时是没人看的。

希望可以帮到你,不明白可以追问,如果解决了问题,请点下面的"选为满意回答"按钮,谢谢。

数学建模各种算法MATLAB的编程代码,越详细越好

灰色预测

x=[0.11 0.49 0.50 0.23 0.27 0.02 -0.02 0.26 -0.25 0.08 ...

0.52 0.13 -0.01 0.52 0.57 0.01 0.32 -0.15 0.45 0.07 0.66...

0.58 0.51 0.53 0.49 0.38 0.33 0.29 0.32 0.03 0.39];

format long; %设置计算精度

if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换

x=x';

end

n=length(x); %取输入数据的样本量

z=0;

for i=1:n %计算累加值,并将值赋予矩阵be

z=z+x(i,:);

be(i,:)=z;

end

for i=2:n %对原始数列平行移位

y(i-1,:)=x(i,:);

end

for i=1:n-1 %计算数据矩阵B的第一列数据

c(i,:)=-0.5*(be(i,:)+be(i+1,:));

end

for j=1:n-1 %计算数据矩阵B的第二列数据

e(j,:)=1;

end

for i=1:n-1 %构造数据矩阵B

B(i,1)=c(i,:);

B(i,2)=e(i,:);

end

alpha=inv(B'*B)*B'*y; %计算参数 矩阵

for i=1:n+1 %计算数据估计值的累加数列,如改为n+1为n+m可预测后m-1个值

ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,:);

end

var(1,:)=ago(1,:)

for i=1:n %如改n为n+m-1,可预测后m-1个值

var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值

end

for i=1:n

error(i,:)=var(i,:)-x(i,:); %计算残差

end

c=std(error)/std(x) %调用统计工具箱的标准差函数计算后验差的比值c

美国数学建模竞赛论文用不用附程序代码

论文正文可以附录代码的但是不能单独递交代码,论文必须只有一份的,校苑数模上有说明 挺好的

关于数学建模作业附程序源代码和数学建模一定要写代码吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/14275.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载