matlab裡面的讓建立數學模型的題是讓你寫程式還是咋的

2021-05-12 19:48:36 字數 5428 閱讀 3664

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...