用matlab解數學模型,用matlab解一個數學模型

2021-05-02 01:19:43 字數 3695 閱讀 6009

1樓:劉皮克

**:clear

clcprice = input('輸入**(元): \n \n');

if price < 200

discount = 0;

elseif price < 500

discount = price * 0.03;

elseif price < 1000

discount = price * 0.05;

elseif price < 2500

discount = price * 0.08;

elseif price < 5000

discount = price * 0.1;

elseif price >= 5000

discount = price * 0.14;

else

'wrong!'

endprice_new = price - discount

2樓:

price=input ('請輸入商品**:')if price<200

zhekou=0;

elseif price>=200&price<500zhekou=0.03

elseif price>=500&price<1000zhekou=0.05

elseif price>=1000&price<2500zhekou=0.08

elseif price>=2500&price<5000zhekou=0.10

elseif price>=5000

zhekou=0.14

endprice=price*(1-zhekou)

如何用matlab建立數學模型及求解。哪位高手給個模版。

3樓:我行我素

求最大正值要變為求最小負值,可這樣:

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.

4樓:匿名使用者

使用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

5樓:匿名使用者

你好,首先我要說你選擇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能有一定幫助,以後可以多看看幫助檔案,裡面講解很詳細。

6樓:浙江新東方等你

如何利用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)

7樓:匿名使用者

你這個是典型的線性規劃問題,可以轉化為:

% 目標函式:maxz=2x1+3x2;

% 約束條件:x2<=12;4x1+2x2<=20;x1+x2<=6;x1,x2>=0;

% z為最大利潤。

fprintf('最大利潤為:\n');

disp(-fval);

fprintf('生產計劃為:\n');

disp(x);結果:

急問用matlab解很長的方程

a 3 solve a x 3 0 x 得到的結果是 ans 3 a也就是說,solve裡面將a當成符號,而沒有把你a 3代入。試著改成 subs solve a x 3 0 x 就得到ans 1的結果了。你的問題也可以這樣弄。solve再加一個subs 另外你也可以自己將方程中的變數先將值代入,然...

幫解數學2題用一元一次解

1 設原價為x元,則由題意可列出,0.8x 1200 1200x14 所以x 1710元 2 設爺爺贏了x盤,則孫子贏了 12 x 盤由題可得1x 3 12 x 所以x 9 即爺爺贏了9盤,孫子贏了3盤。看的懂吧 希望能幫到你哈 1.設原售價x元 0.8x 1.14 1200 x 1710 該照相機...

一些生物學現象可以用數學模型表示下列對各曲線所表達的生物學

人成熟紅細 抄胞中沒有襲線粒體,只能進行無氧呼吸,bai所以atp生成速率與du氧氣濃度無關,正確 zhi 溫室中白dao天隨著光合作用的進行,二氧化碳濃度不斷降低,當光合速率小於呼吸速率及夜間時,二氧化碳濃度不斷升高 當12點時,光合速率大於呼吸速率,二氧化碳濃度應該降低,故乙圖不能表示溫室中一天...