1樓:粉粉求粉
本來就是個程式語言,當然是要寫程式的啊- -
2樓:愛在期待幸福
每太看懂你的問題,matlab是數學建模中最常用的軟體,每一個建模人必備的,他是在內c的基礎上的程式設計軟容件,基於矩陣運算,數值計算和作圖上很強大。而且,現在幾乎用於所有的工程領域,使用範圍很廣,很好的計算軟體。。。。
3樓:匿名使用者
這個軟體我我接觸過,是要編寫成程式的
4樓:梅杏璩浚
我的理解,matlab只是工具,他可不會建模哦,模型是自己把把一些問題用嚴謹的數學符號表示出來。
如何用matlab建立數學模型及求解。哪位高手給個模版。
5樓:我行我素
求最大正值要變為求最小負值,可這樣:
f=[-2,-3];a=[4,2;1,1];b=[20;6];lb=zeros(2,1);ub=[inf;12];[x,fval]=linprog(f,a,b,,,lb,ub)
執行結果是:
optimization terminated.
x =0.0000
6.0000
fval =
-18.0000
則,優化結果是:x1=0,x2=6時最大利潤是18.
6樓:匿名使用者
使用linprog函式。matlab中有詳細的關於linprog的引數、用法的說明,可以檢視。
簡單來說,linprog的一個常用標準形式是x = linprog(f,a,b,aeq,beq,lb,ub),它用來求解最小化問題 min f(x), s.t. ax ≤ b aeq*x = beq lb ≤ x ≤ ub.
所以針對你的問題,相當於minz'=-2x1+3x2,**是x=linprog(-[2;3],[0,1;4,2;1,1],[12;20;6],,,[0;0],)。執行得到結果x=[0;6],即x1=0,x2=6
7樓:匿名使用者
你好,首先我要說你選擇matlab這一強大軟體是明智的,它的功能十分全面,其優化工具箱解決你的問題十分方便線性規劃的求解程式名為linprog,呼叫格式為[x,fval,exitflag,output,lambda] = linprog(c,a,b,aeq,beq,lb,ub,x0,options)其中,x:最優解;val:最優解處的函式值;exitflag:
程式結束時的狀態指示(>0: 收斂,0: 函式呼叫次數或迭代次數達到最大值(該值在options中指定) <0:
不收斂); output:包含以下資料的結構變數(iterations 實際迭代次數, cgiterations 實際pcg迭代次數(大規模計算用),algorithm 實際使用的演算法);lambda:包含以下資料的結構變數(ineqlin 不等式約束的lagrange乘子, eqlin 等式約束的lagrange乘子, upper 上界約束的lagrange乘子, lower 下界約束的lagrange乘子);c:
目標函式矩陣;a/aeq:不等式/等式限制條件係數矩陣;b/beq:不等式/等式限制條件常數項矩陣;lb:
自變數定義域下限;ub:自變數定義域上限;x0:初始解(預設時程式自動取x0=0)options:
包含演算法控制引數的結構 實際應用是並沒有這麼複雜,很多引數預設就可以了,用你的例題演示就是:(在命令視窗輸入)f=[-2;-3];a=[0,1;4,2;1,1];b=[12;20;6];lb=zeros(3,1);[x,fval]=linprog(f,a,b,,,lb)計算出x=[0;6],即x1=0,x2=6fval=-18解釋一下linprog函式只能求最小值,所以將目標函式係數全變為相反數,最終得到的結果應為fval的相反數希望以上內容對你學習matlab能有一定幫助,以後可以多看看幫助檔案,裡面講解很詳細。
8樓:浙江新東方等你
如何利用matlab軟體建立多元迴歸數學模型的方法有:
1、多元迴歸數學模型是線性的,可以用regress()函式求得。例如
f(x1,x2,x3)=a1+a2*x1+a3*x2+a4*x3 %多元線性迴歸函式
求解方法:
x1=[。。。];x2=[。。。];x3=[。。。];
x=[ones(n,1) x1 x2 x3];
y=[。。。];
a = regress(y,x); %ai為多元線性迴歸函式的擬合係數
2、多元迴歸數學模型是非線性的,可以用lsqcurvefit()或nlinfit()函式求得。例如
f(x1,x2,x3)=a1+a2*exp(x1)+a3*exp(x2)+a4*exp(x3) %多元非線性迴歸函式
求解方法:
x1=[。。。];x2=[。。。];x3=[。。。];y=[。。。];
x=[x1 x2 x3];
func=@(a,x)a(1)+a(2)*exp(x:1)+a(3)*exp(x:2)+a(4)*exp(x:3);%自定義函式
x0=[1 1 1]; %初值(根據問題來定)
a=lsqcurvefit(func,x0,x,y) %ai為多元非線性迴歸函式的擬合係數
或 a= nlinfit(x,y,func,x0)
9樓:匿名使用者
你這個是典型的線性規劃問題,可以轉化為:
% 目標函式:maxz=2x1+3x2;
% 約束條件:x2<=12;4x1+2x2<=20;x1+x2<=6;x1,x2>=0;
% z為最大利潤。
fprintf('最大利潤為:\n');
disp(-fval);
fprintf('生產計劃為:\n');
disp(x);結果:
自己在matlab中搭建的是數學模型還是物理模型?
10樓:呼嚕響萬年
數學模型~~~你用的simulink吧,我也在用,多交流。物理模型的話用multsim和protel
11樓:匿名使用者
數學模型,
這個軟體我用過,
matlab用最小二乘法直線擬合此題(要寫出完整的程式過程,急用,求高手!!!)
12樓:匿名使用者
寫在前面:
喵。。也就我這麼好心。。
。只有15分還幫你寫程式。。。。
如果你將來做技術,你就會經常要搭建數學模型,那麼就會大量運用各種的最小二乘法來擬合模型引數,所以要好好學哦,親~
希望通過這個例子,能夠讓你對最小二乘法入門。。。
開始:最小二乘法,通常用在,我們已知數學模型,但是不知道模型引數的情況下,通過實測資料,計算數學模型,例如,在題目中,數學模型就是直線方程y=ax+b,但是不知道直線方程的a和b。
本來呢,我們只需要兩組(xi,yi),就可以解得a和b,但是由於實測資料都存在誤差,所以,我們很容易想到一個辦法,我們測很多組資料來讓我的a和b更加準確。
「我們測很多組資料來讓我的a和b更加準確」 ,那麼我從數學角度如何體現這句話呢?
比如在此例中,已知數學模型 y=ax+b
我們有很多組資料,那麼我們要找一條直線,使得我們測得的每個資料,到這條直線的偏離量的總和最小。(這句話有點拗口,慢慢理解下 = =)
那麼怎麼用數學描述「偏離量總和最小」這個概念呢?
數學家運用了方差!
數學模型 y=ax+b
設f=ax+b-y
那麼對於模型上的點(注意是模型上的點,也就是理論值),f=ax+b-y=0
但是對於實際值來說,f=axi+b-yi 一定不等於0。那麼我們就要找到一對a和b,使得f儘可能接近於0。
也就是說,「偏離量總和最小」這個概念,在數學上實際上就是要求f的方差最小。
即 σ f^2→0 (f的平方和趨近於0)
即 σ(axi+b-yi)^2→0
那麼我們得到一個方程f(a,b)=σ(axi+b-yi)^2,我們要找到合適的a,b使得f(a,b)最小!
也就是說,我們要找到的實際上是f(a,b)的最小值點。(因為方差不可能小於0)
因此我們需要求f(a,b)的極值點。我們藉助數學工具偏導。
如果有一組a,b使得
∂f(a,b)/∂a=0
∂f(a,b)/∂b=0
那麼f(a,b)就是極值點,如果a,b只有一對,那麼它就是最小值點。
即 ∂( σ(axi+b-yi)^2 )/∂a=0
∂( σ(axi+b-yi)^2 )/∂b=0
化簡得到
a*σxi^2 + b*σxi = σ(xi*yi)
a*σxi + b*n = σyi
其中n是(xi,yi)的個數。即我們測了多少組資料
解上面的二元方程,我們就可以得到唯一的一組a,b啦,這就是我們所需要的a和b
o(∩_∩)o~是不是蠻簡單的?
matlab最基礎的程式如下。。。= =
%原始資料
x=[163 123 150 123 141];
y=[186 126 172 125 148];
n=5; %一共5個變數
x2=sum(x.^2); % 求σ(xi^2)
x1=sum(x); % 求σ(xi)
x1y1=sum(x.*y); % 求σ(xi*yi)
y1=sum(y); % 求σ(yi)
a=(n*x1y1-x1*y1)/(n*x2-x1*x1); %解出直線斜率b=(y1-a*x1)/n
b=(y1-a*x1)/n; %解出直線截距
%作圖% 先把原始資料點用藍色十字描出來
figure
plot(x,y,'+');
hold on
% 用紅色繪製擬合出的直線
px=linspace(120,165,45);
py=a*px+b;
plot(px,py,'r');
結果 a=1.5555 b=-66.365
喵~希望對你有幫助。。眼淚汪汪。。啪嗒啪嗒。。。
matlab裡面的function的輸入引數有函式怎麼呼叫
function用來定義函式,一般一個函式放在一個.m檔案裡。舉個簡單的例子建立一個myfunction.m,然後在檔案中寫。function y myfunction a,b 其中a,b是輸入函式的引數,y是函式返回的值。當需要返回多個值時,可以將y看作一個陣列,或者直接將函式的開頭寫成如func...
在matlab裡面的yzsappr是什麼意思
x,y fminbnd x exp x.3 2 x 5 0,5 x,y即為最小值時對應的點。matlab中 r 是什麼意思?r 是plot畫紅色直線的意思。主要分兩部分,線形和顏色。線形 就是點劃線,是虛線 關於顏色 紅色就是r,綠色是g,藍色是b。舉例 figure,plot 1 0.01 4,s...
如何利用matlab求矩陣裡面的最大值,及位置呢?矩陣中
找最大元素就是max max a 注意二維矩陣要寫兩個max 找對應位置用find函式 例如 a 5 6 8 7 5 1 3 4 9 8 5 7 9 1.2 8.8 9.8 9.4 8.5 1.3 5.4 a max max a x,y find a a 執行結果 a 5.0000 6.0000 8...