當前位置:編程學習大全網 - 編程軟體 - 求高手用matlab軟件編程解決圖片中的問題 很感謝 wangchaojie1215@163.com

求高手用matlab軟件編程解決圖片中的問題 很感謝 wangchaojie1215@163.com

% (1) 線性約束最小化問題

f = inline('-x(1)-2*x(2)+0.5*x(1)^2+0.5*x(2)^2');

A = [2 3; 1 4; -1 0; 0 -1];

b = [6;5;0;0];

[x, fmin] = fmincon(f,[0 0],A,b)

% 繪圖標出最小值

figure(1)

ezcontour('-x-2*y+0.5*x^2+0.5*y^2',[0 2.5],[0 2],100)

hold on

ezplot('2*x1+3*x2-6')

ezplot('x1+4*x2-5')

plot(x(1),x(2),'ro')

title('2{\itx}_1 + 3{\itx}_2 \leq 6; {\itx}_1 + 4{\itx}_2 \leq 5; {\itx}_1, {\itx}_2 \geq 0')

% (2) 最小二乘擬合

% 1、擬合和很多因素有關,比如初值、擬合函數的選擇、算法設置等。

% 2、按現有程序擬合的結果:c1=3.1564, c2=5.2165,從結果看,不算太理想。

% 3、感覺擬合函數的形式應該選為 y=c1+c2*(-c3*t)比較合理,相應的結果見下。

t = 1 : 10;

y = [4.842 4.362 3.754 3.368 3.169 3.038 3.034 3.016 3.012 3.005];

f = inline('c(1)+c(2)*exp(-t)','c','t');

c = lsqcurvefit(f, [0 0], t, y);

c1 = c(1)

c2 = c(2)

% 另壹種形式的擬合函數

f1 = inline('c(1)+c(2)*exp(-c(3)*t)','c','t');

C = lsqcurvefit(f1, [0 0 1], t, y);

% 把擬合結果與原始數據對照

figure(2)

plot(t,y, '-o', t, f(c, t), 'r:x', t, f1(C, t), 'g--p');

legend('原始數據', '擬合函數y=c_1+c_2 e^{-t}', '擬合函數y=c_1+c_2 e^{-c_3 t}')

  • 上一篇:迷妳世界測試服在哪裏?
  • 下一篇:C語言入門怎麽自學? 需要哪些資料?
  • copyright 2024編程學習大全網