版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
高等流體力學
班級:機設15學碩班
學號:_____________
姓名:___________張湘楠
授課老師:畢新勝
日期:2023年7月1日
虹一、研究報告內容:
1、入二0.618的證明、一維搜索程序作業(yè);
2、單位矩陣程序作業(yè);
3、連桿機構問題+自行選擇小型機械設計問題或其他工程優(yōu)化問題;
(1)分析優(yōu)化對缸根據(jù)設計問題的規(guī)定,選擇設計變量,確立約束條
件,建立目的函數(shù),建立優(yōu)化設計的數(shù)學模型并編制問題程序;
(2)選擇適當?shù)膬?yōu)化方法,簡述方法原理,進行優(yōu)化計算;
(3)進行結果分析,并加以說明。
4、寫出課程實踐心得體會,附列程序文本。
5、為響應學校2023年度教學工作會議的改革規(guī)定,探索新的課程考
核評價方法,特探索性設立一開放式考核項目,占總成績的5%。
試用您自己認為合適的方式(書面)表達您在本門課程學習方面的
努力、進步與收獲。(考評將重點關注您的獨創(chuàng)性、簡潔性與可驗證性)。
二、研究報告規(guī)定
1、報告命名規(guī)則:學號-姓名一《機械優(yōu)化設計》課程實踐報告.doc
2、報告提交郵址:(收到回復,可視為提交成功)。
追求:問題的工程性,格式的完美性,報告的完整性。
不追求:問題的復雜性,方法的惟一性。
評判準則:獨一是好,先交為好;切勿拷貝。
目錄:
A=0.618的證明、一維搜索程序作業(yè)
①關于2=0.618的證明................................4
②一維搜索的作業(yè)
采用matlab進行編程.......................5
采用C語言進行編程...............................7
單位矩陣程序作業(yè)
①采用matlab的編程...............................9
②采用c語言進行編程..............................9
機械優(yōu)化工程實例
①連桿機構........................................11
②自選機構........................................16
課程實踐心得............................................20
附列程序文
本............................................................21
進步,努力,建議......................................25
一、入=0.618的證明、一維搜索程序作業(yè)
①關于幺=0.618的證明
黃金分割法規(guī)定插入點4的位置相對于區(qū)間伍,例兩端具有對稱性,即
%=b-Mb-a)
a2=a+A(b-a)
其中2為待定常數(shù)。
%b-搜索區(qū)間上限
%e-精度
%輸出數(shù)據(jù):
%x-極小值點
%其他常量:
%cl,c2,c3-區(qū)間
%r-黃金分割比例0.618
%%
%定義函數(shù)
functionx=fun(a.b?e)
r=0.618;
c1=b-r*(b-a);c2=a+r*(b-a);
yl=f(cl);y2=f(c2);
while(abs((b—a)/b)>e)&&(abs((y2-yl)/y2)>e)
ifyl>=y2
a=cI;cI=c2;y1=y2;
c2=a+r*(b-a);y2=f(c2);
else
b=c2;c2=c1;y2=y1;
cl=b-r*(b-a);yl=f(cl);
end
end
x=0.5*(a+b);
end
對f函數(shù)的確立
10functiony=f(x)
y=(x-2『2+3;
end
11functiony=f(x)
y=cosx
end
假如要計算y=(x-2A2+3;的黃金分割法,則需要將圖所示的f腳本中的函數(shù)寫成如①所示
假如要計算y=cosx;黃金分害ij法,則需要將圖所示的「腳本中的函數(shù)寫成如②所示
fun函數(shù)表達對mat1ab的主程序語言。
,主分界造常B?盛
■?入CH;
、?一BTErtT*
、b—酢旦日上陽
、。一?范
UktGH;
、x—B小?盛
tKlt-MV;
、cl,c2,c3-E4
?1
■宣義(BII:
jrl?f<eli.y2*f<e2l.
while(?bf<(V-a>/b>>?>U<?bt<(r2-yl)/)r2>>e>
ify17r2
1=cl.€l?c2.yl?y2.
C2?E?吁(0.
else
b>?2.e2Mi
cl?b-r?<b-?><cl);
tni
x-0.5?
電“”
Ed.!o<D\2.bA叭H
MeEd*TertGo€<?TooHDebugDesktop'MxlowM?ip
f:■)?"??/??€)粕■■sudcB?A田(D曰<90
,a4-J£?+11_X9£Q
Ifurvetian)Ff<*>
2-y?(M-2)'2*3:
3-?nd
函數(shù)NO.1運算結果:
(2)采用C語言進行編程
#inc1ude<stdio.h>
^defineK0.618
doub1ef(double);/*****函數(shù)值計算函數(shù)聲明*****/
voidmain(void)
{
doublea,b,size;。
doubleal,a2;
?intI;
?printf(”請輸入?yún)^(qū)間兩端點(端點值應大于0);
?scanf(o%lf,&b);/*****輸入端點值*****/
printf("請輸入精度:");
?scanf((i%1fw,&size);/*****輸入精度*****/
printf("區(qū)間為(%1f精度為$1f\n”,a,b,size);
printf("序號\ta1\t\ta2\t\tf(al)\t\tf(a2)\n"1;
吁or(i=0;i<64:i++)
printf("-“);
printf(°\nn);
?i=0;
while((b-a)>size)/*****川精度控制循環(huán)次數(shù)*****/
(
<?i++;
al=b-K*(b-a);/*****按0.618法插入兩點*****/
0a2=a+K*(b—a);
printf("%2d:\t%f\ta%f\t%f\t%f\n",I,al,a2,f(a1),f(a2));
/**才大水輸出每次“算后a1,a2,f(a1),f(a2)
的值*****/
?if(f(al)>=f(a2))
。a=al;
geIse
b=a2:
printf("所求極小值點為:x=%lf\t極小值f(x)=%f\n”,a,f(b));
)
doublef(doublex)/*****函數(shù)值計算函數(shù)*火火**/
odoublef;
?f=(x-2)*(x-2)+3;
?return(f);
)
對于y=cosx,須在程序中加一個#include(math.h)頭程序,以示我要調用函數(shù)語句。再將
倒數(shù)第三行函數(shù)改為尸cos(x),再次編譯運算即可。
?^lundion?classes
~1
while(<b-j|>size),用精度拄制彷外次故,
1??;
,按?.618法插入兩百
print-<-Vd:\t%f\tA?\ttf\t%F\nM.i.j1,42.f<4l
/”??琳出每次計修后“1.
*a1;
else
b-a2;
prle”(?你求極小值點為:極小值“D-XfMT.a.
doublef(doublex)/.???.為數(shù)值計n劭斂??.,
doubleF;
f-(x-2)?(x-2)*3:
return(F);
IkiI
Iunctien2.exe-Berror(s).etMrning(s)
J
,’
運營如圖所示
我們可以看出,大約在X=2處取到極值。與理論相符。
SKncticoJ-Microw4t€??
文QDMDH9AMD工30T?ZJKD.匚3)W(H)
6300Q如智■1M
[|Gk>bals|二)(Allglobalmemku二][F習X”①匕!"6
3W
Sinclu<lr<iMth.ti>
■include<5tdio.h>3.315111*3.531296984983925H52
MefineMe.61S3.18X39a3.315B4i9992869?W5
doublefCdoub>);“”??訕敢值計算由就J3f833a3.181396V?VW6
voidRain(uoi4)).181422?9.2)244099928?wsrs
3/4fs72c3?l,14A6999%6?592W
double3.138374*3.149862999937””,6
dotible?l.a2;3.W868a3.i&1912“9966“97M
inti;3.142421”9八6
p"n”(RHfi入?yún)^(qū)間兩端6?3.142419“9”3
(X3.14*420?3.145263“9%3
輸入精度:“);3.14M63*3.142419
“SA'QU”);3.1424219*3.143506
“in",忑?為度為21八n”.a.b.TzS:1.14i74td14242。
print"”序號\t4l\t\t^2\t\t?(3.141334*3.141748
,or《I;H6E??)3.14174??3.142BBS
pri?t("1);3.141S90a3.141748
printF("\f);3.141492a3.1415t0
1-?;1.144.9VIQ.141⑸
用精度控制藺3砍j1.141SS3?3.14159B
3.141590a3.141613
3.141S74
,????哦???1噬18人兩3.14159。?3.1415”
3.141S8S?3.141590
priN,<?*Vdg八t"VT.iQ1.32?〃3.14159?*3.141593
/??Ti出怎次計It后d
?:CUsW-fjnieYMw]
fvnctl9n2.exe-6error(s),?wdrninq(s)
7nA田編/清武又在文件!中直找\在文件2甲疊我>結第工現(xiàn)Zbuc”n<7
ftU
運營如圖所示
我們可以看出,大約在。處取到極值。與理論相符。
二、用簡樸的語句寫一個單位矩陣
①采用matlab構造:
MATLABR20U-
MeW<DebugOeskBopWndowx”
:▲■■〈。?干工VCWCM
5>erttutl9HgtoAdd£JNew
,O,xWndw*
■■,:2■%Q?Wectdatatopi..▼
Njme*Vake
?4>4doubted
??y?(2>
?ey?<5>
CommandH^ory
r-ir^ut<pl?a<?xip*,amabtxI
?eye??
eyed)
ele
b⑴
?y?<2)
b⑴
不⑷
0美H曰"4市
Matlab構造的矩陣最是簡便,由于自身就有一個單位矩陣的函數(shù)。
由于matlab是基于C語言而設立的一個數(shù)學運用軟件,所以他的集成度非常高,并且具有很好的開
放性,于是我們得知eye函數(shù),將其構造。
Eg:
若要構造一個3維的單位矩陣,則輸入eye(3)
若要構造一個n為的單位矩陣,這輸入eye(n)
②用C語言構造
程序如圖所示:
#include<stdio.h>
Intmain(){
intI,j,n;
whi1e(scanf("%d",&n)==1){
for(I=0;I<n;++i){
for(j=0;j<n;++j)
printf(“%d<f,I==j);
printf(r,\nw);
)
)
return0;
}
q2
JI
(S)6uiV4rAD?<5)404^4o--"?XX/lJe
[RIB.(Dirr⑻g@出工(DYVGOWHIM麗N
??□IfAW?2S
三、機械優(yōu)化設計工程實例
①連桿機構問題
(1)連桿機構問題描述
設計一曲柄連桿搖桿機構,規(guī)定曲柄從%=%+90°時,搖桿,3的轉角最佳再現(xiàn)已知的運
動規(guī)律:“F二%+丁(8-四)2且/尸1,/4二5,%為極位角,其傳動角允許在45°4/0135°范
3兀
圍內變化。
(2)數(shù)學模型的建立
設計變量:這里有兩個獨立參數(shù)’2和’3。因此設計變量為入=[%出F二[/2/31
目的函數(shù):將輸入角提成30等分,并用近似公式計算,可得目的函數(shù)的表達式
30
J血-%)]
/=1
約束條件:
GX(1)=-X(l)^0
GX(2)=-X(2)<0
<JX(3)=-(X(1)+X(2))+6.0^0
<;X(4)=-(X(2)+4.0)+X(1)<0
0Gx(5)=-(4.0+X(l))+X(2)<0
oGX(6)=-(l.4I42*X(1)*X(2)-X(1)**2-X(2)**2)-16.0^0
GX(7)=-(X(1)**2+X(2)**2+1.4142*X(l)*X(2))+36.0^0
(3)程序編制
C=====================
SUBROUTINEFFX(N,X,FX)
oDIMENSIONX(N)
COMMON/ONE/11,12,13,I4,NFX,I6
oNFX=NFX+1
P0=ACOS(((1,0+X(1))**2-X(2)**2+25.0)/(10.0*(1,0+X(l))))
oQOACOS(((1.0+X(l))**2-X(2)**2-25.0)/(10.0*X(2)))
T=90.0*3.1415926/(180.0*30.0)
FX=0.0
oDO10K=0,30
PI=P0+K*T
QE=Q0+2.0*(PI-P0)**2/(3.0*3.1415926)
D=SQRT(26.0-10.0*COS(PI))
oAL=ACOS((D*D+X(2)*X(2)-X(l)*X(l))/(2.0*D*X(2)))
BT=ACOS((D*D+24.0)/(10.0*D))
IF(PI.GE.0.0.AND.PI.LT.3.1415926)THEN
QI=3.1415926-AL-BT
ELSE
QI=3.1415926-AL+BT
ENDIF
IF(K.NE.0.OR.K.NE.30)THEN
FX=FX+(QI-QE)**2*T
ELSE
FX=FX+(QLQE)**2*T/2.0
ENDIF
12CONTINUE
RETURN
,END
L---------———----------------------------———
6UBROUTINEGGX(N,KG,X,GX)
C?=========================
*DIMENSIONX(N),GX(KG)
GX(1)=-X(1)
GX(2)=-X(2)
<JX(3)=-(X(l)+X(2))+6.0
GX(4)=-(X(2)+4.O)+X(l)
<JX(5)=-(4.0+X(l))+X(2)
?GX(6)=-(1.4142*X(1)*X(2)-X⑴**2?X(2)**2)-16.0
GX(7)=-(X(1)**2+X(2)**2+1.4142*X(1)*X(2))+36.0
^RETURN
正ND
C=========================
SUBROUTINEHHX(N,KH,X,HX)
-------------------------------------
DIMENSIONX(N),HX(KII)
X(1)=X(1)
^RETURN
END
輸入數(shù)據(jù)如下:
2.7.0
4.3,3.2
2.,0.2,0.01,0.00001,0.(X)001
0,1,0
3.5,2.8,5.5,4.5
(4)可執(zhí)行程序的生成
13將程序文本保存成文獻tOO1.txt,存放在OPT_EXAM\FORTRAN\0-fortran目錄
To
14使用口05操作界面,(^1_£X人乂正01^11<人1\1\0401「@11目錄下,輸入命令
asumt.for4-t001.txttOO1.for回車。生成tOOl.for文獻。
15fori1001;回車;
@for2回車;
⑤linktO01;回車,即生成可執(zhí)行程序l001.exe。
⑥從t001.dat文獻中加載數(shù)據(jù),運營tO01.exe。
t001<t001.dat>t00l.rtf回車得到結果。
操作過程如圖:
S9C:\windows\system32\cmdexe
MicrosoftWindows[????6.1.76013
????????<c>2009MicrosoftCorporation????????????????
C:\Users\ChenXJ>cd\
C:\>cdopt_exam\fortran\0-fortran
C:\OPT_£XAM\FORTRAN\0-fortran>copyasunt.£or+t001.txtt001.for
ftSUMT.FOR
t001.txt
C:\OPTJEXAM\FORTRAN\0-fortran>forlt001;
MicrosoftFORTRAN??U3.31August1985
<C>CopyrightMicrosoftCorp1982,1983,1984,1985
PassOneNoErrorsDetected
575SourceLines
:\OPT_BXAM\FORTRAN\0-FORT~1>for2
CodeAreaSize-U4412<17426)
ConsAreaSize=tt0198<408>
DataAreaSize=R3BEC<15340?
PassTwoNoErrorsDetected.
C:\OPTJEXAM\FORTRAN\0-FORT~l>linkt001;
Microsoft<R>8086ObjectLinkerVersion3.04
Copyright<C>MicrosoftCorp1983,1984,1985.Allrightsreserved.
C:\OPT_EXAM\FORTRAN\0-FORT~lX00Kt001.datX001.rtf
C:\OPTJEXAM\FORTRAN\0-FORT~1>
操作環(huán)節(jié)
(5)結果與分析
結果顯示如下:
:=============PRIMARYDATA==============
N=2KG=7KH=0
X:
.4300000E+01.3202300E+01
FX:
.7847605E-02
GX:
-.4300000E+01-.3202300E+01-.1500000E+01—.290000()E+01
-.5100000E+01
-.6729390E+01-.1218939E+02
X:
.4300000E+01.32O23OOE+01
FX:
.7847605E-02
GX:
-.4300000E+013202300E+01-.1500000E+0I-.2900000E+01-.5
1OOOOOE+Ol
-.672939OE+Ol-.1218939E+02
HX:
PEN=.3974390E+01
R—.20230OOE+O1C=.2023000E+00TO=.100(X)00E-01
EPS1=.1OOOiDOOE-04EPS2=.1000000E-04
==============ITERATIONCOMPUTE==============
*****IRC=1R=.2023000E+0IPEN=.3974390E+01
*****IRC=2R=.40000(X)E+00PEN=.3119361E+01
*****IRC=3R=.8000001E-01PEN=.6407908E+00
*****IRC=4R=.1600000E-01PEN=.1439420E+00
*****IRC=5R=.3202300E-02PEN=.3733451E-01
*****IRC=6R=.6400000E-03PEN=.8986510E-02
*****IRC=7R=.128OOOOE-03PEN=.2346609E-02
*****IRC=8R=.2560000E-04PEN=,9042178E-03
*****IRC=9R=.5120231E-05PEN=.5396702E-03
*****IRC=|0R=.1024000E-05PEN=.4410887E-03
*****IRC=11.20480OOE-06PEN=.412806IE-03
*****IRC=12R=.4096(X)1E-07PEN=4071001E-03
*****IRC=13R=.8192023E-08PEN=.4014154E-03
*****IRC=14R=.163?401E-OSPEN=.399279E-03
*****IRC=15R=.32768O1E-09PEN=.3987240E-03
*****IRC=16R=.6553602E-I0PEN=.3984505E-03
*****
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度特殊功能性內墻涂料研發(fā)與應用合同3篇
- 二零二五年度公司對公司智能化辦公租賃合同3篇
- 2025上海市國有土地使用權出讓合同范本
- 二零二五年度能源企業(yè)公司掛靠能源供應合同3篇
- 2025年度內部承包合同協(xié)議書:XX部門內部承包銷售業(yè)績提成協(xié)議3篇
- 二零二五年度全款購車車輛認證合同模板3篇
- 二零二五年度農村房屋贈與合同附帶農用設備配套協(xié)議
- 2025年度土地流轉承包與農村金融服務合作協(xié)議3篇
- 二零二五年度解除勞動合同經(jīng)濟補償金及員工心理咨詢服務合同3篇
- 2025年度辦公室租賃合同(含企業(yè)活動策劃與執(zhí)行)3篇
- 高處作業(yè)安全技術交底-
- 工抵房協(xié)議模板
- 文件袋、檔案袋密封條模板
- 校本課程《典籍里的中國》教案
- 四年級上冊信息技術教案-9演示文稿巧編輯 |人教版
- 2022年人力資源管理各專業(yè)領域必備知識技能
- 租賃(出租)物品清單表
- 提高聚氯乙烯卷材地面一次驗收合格率
- 甲型H1N1流感防治應急演練方案(1)
- LU和QR分解法解線性方程組
- 漏油器外殼的落料、拉深、沖孔級進模的設計【畢業(yè)論文絕對精品】
評論
0/150
提交評論