程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言的問題,求此函數的最小值,並求出此時對應的h1,h2的值。。求大神指教

C語言的問題,求此函數的最小值,並求出此時對應的h1,h2的值。。求大神指教

編輯:C語言問答

C語言的問題,求此函數的最小值,並求出此時對應的h1,h2的值。。求大神指教

總費用: W1(最小)=
sqrt((8-h1-h2+5-h1)*(8-h1-h2+5-h1)+15*15)+h1)*7.2+27.2*sqrt(h2*h2+25)
(式1)
參數的取值范圍: 0<=h1<=8 (式2)
參數的取值范圍: 0<=h2<=8 (式3)

最佳回答:

#include<iostream>
#include<cmath>
using namespace std;
void main()
{
double h1 = 0,h2 = 0,w1 = 0;
double minw1 = 1e300;

for(h1 = 0;h1<=8;h1=h1+0.01)
for(h2=0;h2<=8;h2=h2+0.01)
{
w1 = sqrt( ( (8-h1-h2+5-h1)*(8-h1-h2+5-h1) + 15*15 ) +h1 )*7.2 + 27.2 * sqrt(h2*h2+25);
if(w1<minw1)
{
printf("%f \t %f \t %f \t \n",h1,h2,w1);
minw1 = w1;
}
}
}

這個是最笨的方法。好的方法是用優化設計的思想求解。這個相當於暴力破解。
h1=6.36,h2=0.02,w1=245.532850
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved