当前位置:首页 » 编程软件 » 数模编程题

数模编程题

发布时间: 2022-05-29 11:08:04

Ⅰ 数学建模(Lingo编程问题)

帮你用lingo简单写了个程序,具体语言描述你可以自己写;

设生产无铅高级汽油分别用到4种原料的量为x11,x12,x13,x14
生产无铅普通汽油分别用到4种原料的量为x21,x22,x23,x24

程序如下:
model:
max=0.3*x11+0.5*x12+0.35*x13+0.15*x14+0.2*x21+0.4*x22+0.25*x23+0.05*x24;
!4种原料的购买上限;
x11+x21<4000;
x12+x22<6000;
x13+x23<5000;
x14+x24<5000;
!A,B,C三种成分的含量的约束;
0.3*x11+0.1*x12-0.5*x13>0;
-0.13*x11+0.5*x13+0.1*x14>0;
-0.07*x11+0.1*x13<0;
0.4*x21+0.2*x22-0.4*x23+0.1*x24>0;
-0.08*x21+0.05*x22+0.55*x23+0.15*x24>0;
-0.12*x21-0.05*x22+0.05*x23-0.05*x24<0;
!销售的约束;
x11+x12+x13+x14<6000;
x21+x22+x23+x24<9000;
end

结果如下:
Global optimal solution found.
Objective value: 5050.000
Total solver iterations: 6

Variable Value Reced Cost
X11 4000.000 0.000000
X12 0.000000 0.000000
X13 2000.000 0.000000
X14 0.000000 0.1500000
X21 0.000000 0.000000
X22 6000.000 0.000000
X23 3000.000 0.000000
X24 0.000000 0.1500000

Row Slack or Surplus Dual Price
1 5050.000 1.000000
2 0.000000 0.000000
3 0.000000 0.2000000
4 0.000000 0.5000000E-01
5 5000.000 0.000000
6 200.0000 0.000000
7 480.0000 0.000000
8 80.00000 0.000000
9 0.000000 0.000000
10 1950.000 0.000000
11 150.0000 0.000000
12 0.000000 0.3000000
13 0.000000 0.2000000

Ⅱ 数学建模软件题-matlab

1.Matlab的数据类型有6种,写出四种:int short long double logical char 自己挑吧
2.已知A=[0 2 3;1 3 0]; B=[1 0 3; 1 5 0];写出下列个指令运行结果
A+B ans= [1 2 6; 2 8 0]
A==B ans= [0 0 1;1 0 1]
A./B ans= [0 Inf 1;1 0.6 NaN]
3. 已知A是矩阵,求A的特征指令是eig(A),求A的逆阵指令是inv(A)
4. MATLAB的程序文件和空间变量存储文件的扩展名分别是 .m, .mat。
5.5. 已知A=[1,2,6;4,5,10;7,8,9],B=A(1:2,:),C=A(1:2,3),A(:,2)=[ ],则 B=___=[1,2,6;4,5,10]____, C= _[6;10]______, A=[1,6;4,10;7,9]_____。
6.标点符号__;__可以使命令行不显示运算结果,___%__用来表示该行为注释行。
7.A=rand(2,5); b=size(A);c=length(A); 则b和c的值分别为_[2,5]___和__5___。
8.已知A是矩阵,求A的对角矩阵函数是___diag(A)___,求A的下三角矩阵函数是_tril(A)____。

1.叙述Matlab函数文件的组成。 代码.
2.在Matlab里面如何获取对某个函数使用方法的帮助,请写出3歌方法。
在command window输入help 函数名
在帮助窗口中搜索函数名

三 计算下列程序运行的结果。
1. mysum=0; for m=1:1000
if(mysum>1000)
break;
end
mysum=mysum+m
end
m
m=46
2. A=[1,2,3;4,5,6;7,8,9];

C=[A;[10,11,12]],

D=C(1:3,[2 3])

E=C(1:3,:)

写出C,D,E的结果 C=[1,2,3;4,5,6;7,8,9;10,11,12],
D=[2 3; 5 6; 8 9]
E=[1,2,3;4,5,6;7,8,9]

3. A=[0 2 3 4;1 3 5 0];

B=[1 0 5 3;1 5 0 5]

x=A〉=B
x=[0 1 0 1; 1 0 1 0];
y=A~=B
y=[1 1 1 1;0 1 1 1];
z=and(y==1) 这个看不懂 打错了吧。

写出x,y,z的结果
四 编程计算
1.编写M函数文件,将某班学生某门课的成绩为:60,75,85,96,52,36,86,56,94,84,77,用switch结构统计各分段的人数,并将个人的成绩变为优、良、中、及格和不及格表示,统计人数和成绩变换都用子函数实现。
2.略
3.略
4.用mathematics函数求函数f(x)=(2x+1)/(x^2+5x+5) 的原函数,导函数、[0,1]区间上的积分,并画出函数f(x)在p[0,3]上函数图像。(写出命令及操作结果)

Ⅲ 数学模型中的题目,请高手帮忙!详细的过程及其编程

甲A乙B丙C丁D

Ⅳ 帮忙提供数学建模的编程题目

动态规划

Ⅳ 在线等,数模转换器C语言编程题

这个建议您到相关技术群问比较好,可以自己边动手边向他们学习。

Ⅵ 数学建模中的编程

就拿数学建模来说,建模的过程是要将一个实际的问题简化为一个可以用数据和很简短的语言能表示出来的问题,然后通过数学工具解决这个问题,比如说概率,微积分,等等。当然数学里面还有很多可以解决实际问题的算法,比如说线性规划、拟合、回归等等很多。因为实际问题的数据可能会比较复杂,按照某个算法用人脑一步步求解往往会很麻烦。
因此通过计算机编程可以编出来算法的程序,直接给数据,计算机就可以算出来。说白了就是人来建立模型,然后编程算法用计算机来计算模型中的答案,比如最优解。要想自己编程序需要对这个算法有足够深的认识。事实上很多算法前人都写好了C或C++的源程序,当然用matlab会更省事一些。

数学建模与编程关系:
1、数学建模更像是从现实世界到数学抽象的过程。要经历把现实问题理想化的步骤,其间必须要决定舍弃哪些影响甚微的多余因素,好简化问题;只有简化了问题才能提出模型。
2、编程更像是在抽象空间本身提出问题,解决问题。这么说来,编程问题反而更像“纯粹”的数学问题。因为程序世界本身就是基于0、1建立起来的抽象世界,编程更像是在抽象世界里,解决抽象问题。所以它一般不需要考虑对哪些因素作取舍。
3、在这二者分别发展的情况下,它们各自的触角越伸越广泛,相互的边界也是日渐模糊的。比如图像处理、图像识别等等,虽然是编程问题,但它距离现实已比“一步之遥”还要近了。或者从另一个角度说,像这种问题是数学建模和编程通力合作解决的。

Ⅶ 求助一条简单的数学建模题目并给其答案和相应程序,悬赏150分

好吧给你一道我做的数学建模题比较简单线性规划类型

(1)i)设生产A1产品x1桶,生产A2产品x2桶

目标函数:max72*x1+64*x2

约束条件:12*x1+8x*2≤480;

x1+x2≤50;

0≤3*x1≤100;

x2≥0;x1,x2为整数。

LINGO编程如下:

model:

sets:

row/1..2/:b;

col/1..2/:c,x,l,u;

matrix(row,col):A;

endsets

max=@sum(col:c*x);

@for(col:@gin(x));

@for(row(i):

@sum(col(j):A(i,j)*x(j))<=b(i));

data:

c=72,64;

b=480,50;

A=12,8,

1,1;

l=0,0;

u=100,500;

enddata

end

结果:

得到x1=20,x3=30;每天可赚到3360元原料,时间都没有剩余,加工能力剩余40

由于原料增长1单位,利润增加48元,35<48元故应该作这项投资,购买50桶牛奶,生产A产品20桶,B产品30桶。

ii)由上题lingo结果时间增长1单位,利润增加2元。故付给临时工人的工资最多是每小时2元。

iii)由上题lingo结果x1的系数范围在(64,96)之间,所以x1的系数72增长到90的时候不用改变生产计划。

(2)i)设生产A1产品x1,生产A2产品x2,生产B1产品x3,生产B2产品x4A1加工成B1x5A2加工成B2x6

目标函数:max24*x1+16*x2+44*x3+32*x4-3*x5-3*x6

约束条件:(x1+x5)/3+(x2+x6)/4≤50;

x1+x5≤100;

4*(x1+x5)+2*(x2+x6)+2*x5+2*x6≤480;

x1=0.8*5;x2=0.75*x6;

x1…x6≥0;x1…x6为整数。

LINGO编程如下:

model:

sets:

row/1..3/:b;

col/1..6/:c,x;

matrix(row,col):A;

endsets

max=@sum(col:c*x);

@for(col:@gin(x));

@for(row(i):

@sum(col(j):A(i,j)*x(j))<=b(i));

data:

c=24,16,44,32,-3,-3;

b=600,100,480;

A=4,3,0,0,4,3,

1,0,0,0,1,0,

4,2,0,0,6,4;

enddata

end

结果:

得到max=3460.8x1=8x2=168x3=19.2x5=24其他x为0

生产8桶A1并把所有24kgA1转化成B1生产42桶A2

i)增加一桶牛奶可增加利润3.16*12=37.92增加一小时可增加利润3.26故应该做这项投资。150元可增加5桶牛奶或赚回37.92*5=189.6元150元可增加50小时或赚回3.26*50=163元故应该投资牛奶获得利润最大

ii)根据上题lingo结果B1获利下降10%B2获利上升10%都超出了x3x4的系数范围,故对计划有影响,生产计划应该重新制定。

Ⅷ 帮助解决数学建模(用计算机编程)小题目 重谢

第1题
model:
sets:
m/1..10/:x,B,C;
endsets
data:
B=10 12 15 8 7 9 8 14 16 18;
C=3.6 4 5 2.2 2 3 2.5 4.8 5.8 6.1;
enddata
max=@sum(m(i):C(i)*x(i));
@sum(m(i):B(i)*x(i))<72;
x(1)+x(2)+x(3)<2;
x(4)+x(5)>1;
x(6)+x(7)>1;
x(8)+x(9)+x(10)<2;
@for(m(i):@bin(x(i)));
end

Ⅸ 下面这道题,求数学建模问题的最优解,用matlab怎么编程

用fmincon函数
你看看help
fmincon
主要是建立两个m文件,一个myfun放你的f(x),注意,这里要放-f(x),因为你要求最大值,fmincon是求最小值的
另一个mycon放非线性约束条件,这俩,(x11+x12+x13)y11*1.4+(x22-x12+x23)y22*1.65<=7.5
(x11+x12+x13)(y11*1.4+6.1)+(x22-x12+x23)(y22*1.65+7.35)<=76.5
把线性约束条件写成矩阵A,B
直接调用
X=fmincon(@myfun,X0,A,B,[],[],LB,UB,@mycon)
LB,UB是自变量的上下限
X0为初值,一般需要多尝试几个初值

Ⅹ 2013大学生数学建模B题编程

2013高教社杯全国大学生数学建模竞赛B题
评阅要点[说明]本要点仅供参考,各赛区评阅组应根据对题目的理解及学生的解答,自主地进行评阅。
本题要求对数据提取合适的特征、建立合理有效的碎纸片拼接复原模型。可以考虑的特征有邻边灰度向量的匹配、按行或按列对灰度求和、行距等。关于算法模型,必须有具体的算法过程(如流程图、算法描述、伪代码等)及设计原理。虽然正确的复原结果是唯一的,但不能仅从学生提供的复原效果来评定学生解答的好坏,而应根据所建的数学模型、求解方法和计算结果(如复原率)三方面的内容做出评判。另一方面,评判中还需要考虑人工干预的多少和干预时间节点的合理性。问题1.仅有纵切文本的复原问题由于“仅有纵切”,碎纸片较大,所以信息特征较明显。一种比较直观的建模方法是:按照某种特征定义两条碎片间的(非对称)距离,采用最优Hamilton路或最优Hamilton圈(即TSP)的思想建立优化模型。关于TSP的求解方法有很多,学生在求解过程中需要注意到非对称距离矩阵或者是有向图等特点。还可能有种种优化模型与算法,只要模型合理,复原效果好,都应当认可。本问题相对简单,复原过程可以不需要人工干预,复原率可以接近或达到100%。问题2. 有横、纵切文本的复原问题一种较直观的建模方法是:首先利用文本文件的行信息特征,建立同一行碎片的聚类模型。在得到行聚类结果后,再利用类似于问题1中的方法完成每行碎片的排序工作。最后对排序后的行,再作纵向排序。本问题的解法也是多种多样的,应视模型和方法的合理性、创新性及有效性进行评分。例如,考虑四邻近距离图,碎片逐步增长,也是一种较为自然的想法。问题3.正反两面文本的复原问题这个问题是问题2的继续,基本解决方法与问题2方法相同。但不同的是:这里需要充分利用双面文本的特征信息。该特征信息利用得好,可以提升复原率。 在阅卷过程中,可以考虑学生对问题的扩展。例如,在模型的检验中,如果学生能够自行构造碎片,用以检验与评价本队提出的拼接复原模型的复原效果,可考虑适当加分。阅卷时应有程序,程序的运行结果应和论文给出的结果一致。

clear %释放空间
clc %清屏
%图片数据读取
left_col = [];
right_col = [];
for fp = 0 : 208
str = int2str(fp);
if fp < 10
name = ['0' '0' str '.bmp'];
elseif fp >= 10 & fp < 100
name = ['0' str '.bmp'];
else
name = [str '.bmp'];
end
a = imread(name);
[m,n] = size(a);
left_col = [left_col a(:,1)];
right_col = [right_col a(:,n)];
end
%读取完毕
left_col = double(left_col);%类型转换
right_col = double(right_col);
% 找纸片最左边(left_col)像素全为255(空白)的所有列
row = 1;
for bi=1:209;
number=length(find(left_col(:,bi)==255));
if number == 180
S(row,1)=bi;%保存第一列像素为空(灰度值:255)的放在数组S第一列
row = row + 1;
end
end
S = [S(:,1) zeros(row-1,18)];%矩阵初始化
O = [ones(row-1,19)]; %初始化一个单位矩阵
sign = 1;
w = 0;
for r=1:row-1;%行
for p=1:18;%列p+1
num = 10000000000;%使num足够大
for j=1:209;
count = 0;
count = length(find(S==j));%除去重复
if count ~= 0
continue;
else
blank = length(find(right_col(:,S(r,p)) == 255));%如果碎纸片右边界全为255(即空白),则跳出,终止此行后面拼接
if blank == 180
sign = 0;
break;%跳出本循环,进入p循环
else
ri=right_col(:,S(r,p));%计算左右拼接精确度
le=left_col(:,j);
c=ri-le;
c = c.^2;
error=sum(c(:));
end
if num >= error %找出差值最小的,精确度最高
num = error;
w = j;
end
end
end
if sign == 0
sign = 1;
break; %跳出p循环,进入r循环
else
S(r,p+1)=w; %二维数组储存每个碎纸片拼接位置
end
end
end
S = S - O; %数据整理,图片从000.bmp开始,数组下标从1开始

//////////////////////////////////////////////////////////////////////////
第三题碎纸片特征分类代码:
clear %释放空间
clc %清屏
%图片数据读取
char namea = (209,7);
char nameb = (209,7);
for fpa = 0 : 208
str = int2str(fpa);
if fpa < 10
fpa = fpa + 1;
namea(fpa,:) = ['0' '0' str 'a.bmp'];
elseif fpa >= 10 & fpa < 100
fpa = fpa + 1;
namea(fpa,:) = ['0' str 'a.bmp'];
else
fpa = fpa + 1;
namea(fpa,:) = [str 'a.bmp'];
end
end
for afp = 1:209
a= imread(namea(afp,:));
fdataa(:,:,afp) = a;
end
%%%读取反面b的数据
for fpb = 0 : 208
str = int2str(fpb);
if fpb < 10
fpb = fpb + 1;
nameb(fpb,:) = ['0' '0' str 'b.bmp'];
elseif fpb >= 10 & fpb < 100
fpb = fpb + 1;
nameb(fpb,:) = ['0' str 'b.bmp'];
else
fpb = fpb + 1;
nameb(fpb,:) = [str 'b.bmp'];
end
end
for bfp = 1:209
b= imread(nameb(bfp,:));
fdatab(:,:,bfp) = b;
end
%读取完毕
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
qfdataa = ~fdataa; %取反
qfdatab = ~fdatab; %取反
for lj = 1:209 %行累加求和
Ldataa(:,lj) = sum(qfdataa(:,:,lj),2); %正面(a)累加求和
Ldatab(:,lj) = sum(qfdatab(:,:,lj),2); %反面(b)累加求和
end
Ldataa(Ldataa>0)=1; %正面归一化
Ldatab(Ldatab>0)=1; %反面归一化
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 数据分类 横向 正面(a)分类
for flta = 1:209;
for pflta = 1:209
numa = 0;
for flha = 1:180;
if Ldataa(flha,flta) == Ldataa(flha,pflta)
numa = numa + 1;
end
end
tsavea(flta,pflta) = numa; %保存每两张图片之间的匹配度
end
end
% 数据分类 横向 反面(b)分类
for fltb = 1:209;
for pfltb = 1:209
numb = 0;
for flhb = 1:180;
if Ldatab(flhb,fltb) == Ldatab(flhb,pfltb)
numb = numb + 1;
end
end
tsaveb(fltb,pfltb) = numb; %保存每两张图片之间的匹配度
end
end
%%%%%%%%%%%%%%%%%%%%%%%
%总匹配度
%tsave = (tsavea + tsaveb)/2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 找纸片最左边(left_col)像素全为255(空白)的所有列
% fdataa = double(fdataa);
% fdatab = double(fdatab);
row = 1;
for bi=1:209;
number=length(find(fdataa(:,1,bi)~=0 & fdatab(:,72,bi)~=0));
if number == 180
S(row,1)=bi;%保存第一列像素为空(灰度值:255)的放在数组S第一列
row = row + 1;
end
end
S = [S(:,1) zeros(row-1,18)];%矩阵初始化
O = [ones(row-1,19)]; %初始化一个单位矩阵
%%%%%%%%%%%%%%%%%%

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:645
制作脚本网站 发布:2025-10-20 08:17:34 浏览:936
python中的init方法 发布:2025-10-20 08:17:33 浏览:632
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:821
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:731
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1066
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:299
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:160
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:852
python股票数据获取 发布:2025-10-20 07:39:44 浏览:763