當前位置:首頁 » 編程軟體 » 數模編程題

數模編程題

發布時間: 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 瀏覽:821
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1086
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:792
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:957
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:848
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1201
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:421
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:300
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:977
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:944