

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 報(bào) 告</p><p> 課程名稱 數(shù)值分析 </p><p> 課題名稱 最速下降法 </p><p> 專 業(yè) 信息與計(jì)算科學(xué) </p><p> 班 級(jí)
2、 </p><p> 學(xué) 號(hào) </p><p> 姓 名 </p><p> 指導(dǎo)教師 </p><p> 2013年 1月 日</p><p> 一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求&l
3、t;/p><p><b> 1.)設(shè)計(jì)內(nèi)容:</b></p><p> 用最速下降法求最優(yōu)解:</p><p><b> 給定初始點(diǎn)</b></p><p><b> 2.設(shè)計(jì)要求:</b></p><p> 課程設(shè)計(jì)報(bào)告正文內(nèi)容</p>
4、;<p> 問題的描述及算法設(shè)計(jì);</p><p> 算法的流程圖(要求畫出模塊圖);</p><p> 算法的理論依據(jù)及其推導(dǎo);</p><p> 相關(guān)的數(shù)值結(jié)果(通過程序調(diào)試),;</p><p> 數(shù)值計(jì)算結(jié)果的分析;</p><p> 附件(所有程序的原代碼,要求對(duì)程序?qū)懗霰匾淖⑨專?/p>
5、。</p><p><b> 書寫格式</b></p><p> a.要求用A4紙打印成冊(cè)</p><p> b.正文格式:一級(jí)標(biāo)題用3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體;行距為22。</p><p> c.正文的內(nèi)容:正文總字?jǐn)?shù)要求在3000字左右(不含程序原代碼)。</p><
6、;p> d.封面格式如下頁(yè)。</p><p><b> 考核方式</b></p><p> 指導(dǎo)老師負(fù)責(zé)驗(yàn)收程序的運(yùn)行結(jié)果,并結(jié)合學(xué)生的工作態(tài)度、實(shí)際動(dòng)手能力、創(chuàng)新精神和設(shè)計(jì)報(bào)告等進(jìn)行綜合考評(píng),并按優(yōu)秀、良好、中等、及格和不及格五個(gè)等級(jí)給出每位同學(xué)的課程設(shè)計(jì)成績(jī)。具體考核標(biāo)準(zhǔn)包含以下幾個(gè)部分:</p><p> a.平時(shí)出勤 (占
7、10%)</p><p> b.系統(tǒng)需求分析、功能設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及程序總體結(jié)構(gòu)合理與否(占10%)</p><p> c.程序能否完整、準(zhǔn)確地運(yùn)行,個(gè)人能否獨(dú)立、熟練地調(diào)試程序(占40%)</p><p> d.設(shè)計(jì)報(bào)告(占30%)</p><p> 注意:不得抄襲他人的報(bào)告(或給他人抄襲),一旦發(fā)現(xiàn),成績(jī)?yōu)榱惴帧?lt;/p&g
8、t;<p> e.獨(dú)立完成情況(占10%)。</p><p><b> 課程驗(yàn)收要求</b></p><p> a.判定算法設(shè)計(jì)的合理性,運(yùn)行相關(guān)程序,獲得正確的數(shù)值結(jié)果。</p><p><b> b.回答有關(guān)問題。</b></p><p> c.提交課程設(shè)計(jì)報(bào)告。<
9、/p><p> d.提交軟盤(源程序、設(shè)計(jì)報(bào)告文檔)。</p><p> e.依內(nèi)容的創(chuàng)新程度,完善程序情況及對(duì)程序講解情況打分。</p><p><b> 三、進(jìn)度安排</b></p><p> 班級(jí): 信息與計(jì)算科學(xué):1101、1102、1103</p><p><b> 主講
10、教師: </b></p><p><b> 輔導(dǎo)教師: </b></p><p><b> 上機(jī)時(shí)間安排:</b></p><p> 第17教學(xué)周 (課程設(shè)計(jì)算法設(shè)計(jì)) </p><p> 星期一: 8:10---11:50 14:10---17:30 1--A--
11、404</p><p> 星期二: 10:10---11:50 15:20---17:30 1--A--404</p><p> 星期三: 8:10---11:50 14:10---17:30 1--A--404</p><p> 星期四: 8:10---10:50 14:10---17:30 1--A--404</p>
12、<p> 星期五: 8:10---11:50 14:10---17:30 1--A--404</p><p> 第18教學(xué)周 (課程設(shè)計(jì)算法設(shè)計(jì)與實(shí)現(xiàn)、報(bào)告撰寫)</p><p> 星期一: 8:10---11:50 14:10---17:30 1--A--404</p><p> 星期二: 10:10---11:50
13、 15:20---17:30 1--A--404</p><p> 星期三: 8:10---11:50 14:10---17:30 1--A--404</p><p> 星期四: 8:10---10:50 14:10---17:30 1--A--404</p><p> 星期五: 8:10---11:50 14:10---1
14、7:30 1--A--404</p><p> 課程設(shè)計(jì)算法設(shè)計(jì)答辯與報(bào)告提交、成績(jī)?cè)u(píng)定</p><p> 星期六: 8:10---11:50 14:10---17:30 1--A--404</p><p> 星期日: 8:10---11:50 14:10---17:30 1--A--404</p><p> 注
15、: 由于系部機(jī)房已排滿,故采用在教學(xué)樓教室,學(xué)生自帶手提電腦進(jìn)行本課程設(shè)計(jì)。</p><p><b> 目錄</b></p><p><b> 一、摘要1</b></p><p><b> 二、問題的提出1</b></p><p><b> 三、算法分析
16、1</b></p><p><b> 四、計(jì)算步驟2</b></p><p><b> 五、流程圖3</b></p><p><b> 六、運(yùn)行測(cè)試3</b></p><p><b> 七、程序源碼5</b></p>
17、<p> 理學(xué)院課程設(shè)計(jì)評(píng)分表10</p><p><b> 一、摘要</b></p><p> 在數(shù)值分析中,數(shù)值積分在實(shí)際生活運(yùn)用當(dāng)中十分廣泛,比如在大氣科學(xué)和動(dòng)力氣象學(xué)中有著舉足輕重的地位。本文涉及的是用最速下降法求解非線性方程組,對(duì)最速下降法的原理,計(jì)算步驟,以及計(jì)算過程的流程圖都做了詳細(xì)的解釋。算法運(yùn)用的是JAVA,JAVAWeb,語言
18、來實(shí)現(xiàn)的。</p><p><b> 二、問題的提出</b></p><p> 用最速下降法求最優(yōu)解:</p><p><b> 給定初始點(diǎn)</b></p><p><b> 三、算法分析</b></p><p> 最速下降法又稱為梯度法,是1
19、847年由著名數(shù)學(xué)家Cauchy給出的。他是解析法中最古老的一種,其他解析方法或是它的變形,或是受它的啟發(fā)而得到的,因此它是最優(yōu)化方法的基礎(chǔ)。</p><p> 設(shè)無約束問題中的目標(biāo)函數(shù)一階連續(xù)可微。</p><p> 最速下降法的基本思想是:從當(dāng)前點(diǎn)出發(fā),取函數(shù)在點(diǎn)處下降最快的方向作為我們的搜索方向.由的Taylor展式知</p><p> 略去的高階無窮小
20、項(xiàng)不計(jì),可見取時(shí),函數(shù)值下降得最多。于是,我們可以構(gòu)造出最速下降法的迭代步驟。</p><p> 在求解非線性方程組 的一組根。首先是定義一個(gè)目標(biāo)函數(shù) 使目標(biāo)函數(shù)達(dá)到最小的是我們尋找的一組解,這是非線性最小二乘法問題。</p><p> 如果第步求得一組解,使得 </p><p> 則認(rèn)為是原方程組滿足一定精度的要
21、求的一組解。</p><p><b> 四、計(jì)算步驟</b></p><p> 最速下降法求解非線性方程組實(shí)根的計(jì)算過程</p><p> 選取一組初值x0,x1,x2,…</p><p><b> 計(jì)算目標(biāo)函數(shù)值</b></p><p> 若F<ε,則,即為
22、方程組的一組實(shí)根,過程結(jié)束;否則繼續(xù);</p><p> 計(jì)算目標(biāo)函數(shù)在(x0,x1,x2,…)點(diǎn)的偏導(dǎo)數(shù),i=0,1,...,n-1</p><p> (5)計(jì)算,i=0,1,…,n-1</p><p> (6)計(jì)算,i=0,1,…,n-1</p><p><b> 其中λ=F/D</b></p>
23、<p> 重復(fù)(1)~(6)歩,知道滿足精度要求為止。</p><p> 在上述過程中,如果D=0,則說明遇到了目標(biāo)函數(shù)的局部極值點(diǎn),此時(shí)可改變初值再重新計(jì)算。</p><p><b> 五、流程圖</b></p><p> 下面根據(jù)最速下降法計(jì)算步驟畫出流程圖:</p><p><b>
24、 六、運(yùn)行測(cè)試</b></p><p> 1.啟動(dòng)程序后,顯示的調(diào)試界面</p><p> 2.在精度的下拉欄中選取合適的精度</p><p> 例1:精度為:0.0000001,運(yùn)行結(jié)果為:</p><p> 例2:精度為:0.000000001,運(yùn)行結(jié)果為:</p><p><b>
25、 七、程序源碼</b></p><p><b> 1:程序主類</b></p><p> import java.util.ArrayList;</p><p> import java.util.List;</p><p> import java.util.Map;</p><
26、p> import com.opensymphony.xwork2.ActionContext;</p><p> import com.opensymphony.xwork2.ActionSupport;</p><p> public class NLEquations extends ActionSupport{</p><p> privat
27、e double eps;</p><p> public double getEps() {</p><p> return eps;</p><p><b> }</b></p><p> public void setEps(double eps) {</p><p> this.
28、eps = eps;</p><p><b> }</b></p><p> public String solutionQuation(){</p><p> NLEquationsBiz nleqbiz = new NLEquationsBiz();</p><p> double[] x={1.5,7.5,
29、-6.0};</p><p> List answer = new ArrayList();</p><p> ActionContext context = ActionContext.getContext();</p><p> Map request = (Map)context.get("request");</p>
30、<p> if(nleqbiz.getRootsetGrad(3, x, 600, eps)){</p><p> for(int i=0;i<3;++i){</p><p> answer.add(x[i]);</p><p> System.out.println(x[i]);</p><p><b>
31、 }</b></p><p> request.put("answer", answer);</p><p><b> }else{</b></p><p> System.out.println("求解失?。?quot;);</p><p> answer.add(&q
32、uot;The solution is not exist!");</p><p> request.put("answer", answer);</p><p><b> }</b></p><p> return SUCCESS;</p><p><b> }</
33、b></p><p><b> }</b></p><p> 定義非線性方程組的類</p><p> public class NLEquationsBiz {</p><p><b> /**</b></p><p> * @param n 方程的個(gè)數(shù),
34、也是未知數(shù)的個(gè)數(shù)</p><p> * @param x 存放初值</p><p> * @param nMaxIt 迭代次數(shù)</p><p> * @param eps精度控制(精確值)</p><p><b> * @return</b></p><p><b>
35、 */</b></p><p> public boolean getRootsetGrad(int n,double[] x,int nMaxIt,double eps){</p><p><b> int l,j;</b></p><p> double f,d,s;</p><p> doubl
36、e [] y = new double[n];</p><p> l = nMaxIt;</p><p> f= func(x,y);</p><p> while(f>=eps){</p><p><b> l=l-1;</b></p><p><b> if(l==0
37、){</b></p><p> return true;</p><p><b> }</b></p><p><b> d=0.0;</b></p><p> for(j=0;j<=n-1;j++){</p><p> d=d+y[j]*y[j]
38、;</p><p><b> }</b></p><p> if(d+1.0==1.0){</p><p> return false;</p><p><b> }</b></p><p><b> s=f/d;</b></p>
39、<p> for(j=0;j<=n-1;j++){</p><p> x[j]=x[j]-s*y[j];</p><p><b> }</b></p><p> f=func(x,y);</p><p><b> }</b></p><p> r
40、eturn nMaxIt>1;</p><p><b> }</b></p><p> public double func(double[]x,double[]y){</p><p> double z,f1,f2,f3,df1,df2,df3;</p><p> f1=x[0]-5.0*x[1]*x[
41、1]+7.0*x[2]*x[2]+12.0;</p><p> f2=3.0*x[0]*x[1]+x[0]*x[2]-11.0*x[0];</p><p> f3=2.0*x[1]*x[2]+40.0*x[0];</p><p> z=f1*f1+f2*f2+f3*f3;</p><p><b> df1=1.0;</
42、b></p><p> df2=3.0*x[1]+x[2]-11.0;</p><p><b> df3=40.0;</b></p><p> y[0]=2.0*(f1*df1+f2*df2+f3*df3);</p><p> df1=10.0*x[1];</p><p> df2
43、=3.0*x[0];</p><p> df3=2.0*x[2];</p><p> y[1]=2.0*(f1*df1+f2*df2+f3*df3);</p><p> df1=14.0*x[2];</p><p><b> df2=x[0];</b></p><p> df3=2.0*
44、x[1];</p><p> y[2]=2.0*(f1*df1+f2*df2+f3*df3);</p><p><b> return z;</b></p><p><b> }</b></p><p><b> }</b></p><p>
45、3:算法分析的界面程序</p><p> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%></p><p><b> <%</b></p><p> String path
46、= request.getContextPath();</p><p> String basePath = request.getScheme() + "://"</p><p> + request.getServerName() + ":" + request.getServerPort()</p><p> +
47、path + "/";</p><p><b> %></b></p><p><b> <html></b></p><p><b> <head></b></p><p> <title>最速下降法--算
48、法分析</title></p><p><b> </head></b></p><p><b> <body></b></p><p><b> <center></b></p><p> <jsp:include
49、 page="index.jsp"></jsp:include></p><p><b> <div></b></p><p> <img src="img/1.png"></p><p><b> </div></b>&l
50、t;/p><p><b> </center></b></p><p><b> </body></b></p><p><b> </html></b></p><p><b> 4:計(jì)算步驟界面</b></
51、p><p> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%></p><p><b> <%</b></p><p> String path = request.getCon
52、textPath();</p><p> String basePath = request.getScheme() + "://"</p><p> + request.getServerName() + ":" + request.getServerPort()</p><p> + path + "/&q
53、uot;;</p><p><b> %></b></p><p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"></p><p><b> <html></b></p>
54、<p><b> <head></b></p><p> <title>最速下降法--計(jì)算步驟</title></p><p><b> </head></b></p><p><b> <body></b></p&g
55、t;<p><b> <center></b></p><p> <jsp:include page="index.jsp"></jsp:include></p><p><b> <div></b></p><p> <img
56、 src="img/8.png"></p><p><b> </div></b></p><p><b> </center></b></p><p><b> </body></b></p><p><
57、;b> </html></b></p><p><b> 5:算法流程圖界面</b></p><p> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%></p>
58、<p><b> <%</b></p><p> String path = request.getContextPath();</p><p> String basePath = request.getScheme() + "://"</p><p> + request.getServerNa
59、me() + ":" + request.getServerPort()</p><p> + path + "/";</p><p><b> %></b></p><p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Trans
60、itional//EN"></p><p><b> <html></b></p><p><b> <head></b></p><p> <title>最速下降法--計(jì)算流程圖</title></p><p><b>
61、; </head></b></p><p><b> <body></b></p><p><b> <center></b></p><p> <jsp:include page="index.jsp"></jsp:includ
62、e></p><p><b> <div></b></p><p> <img src="img/3.png"></p><p><b> </div></b></p><p><b> </center>&
63、lt;/b></p><p><b> </body></b></p><p><b> </html></b></p><p><b> 6:實(shí)例界面</b></p><p> <%@ page language="jav
64、a" import="java.util.*" pageEncoding="utf-8"%></p><p> <%@taglib uri="/struts-tags" prefix="s" %></p><p><b> <%</b></p&g
65、t;<p> String path = request.getContextPath();</p><p> String basePath = request.getScheme() + "://"</p><p> + request.getServerName() + ":" + request.getServerPort
66、()</p><p> + path + "/";</p><p><b> %></b></p><p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"></p><p>&l
67、t;b> <html></b></p><p><b> <head></b></p><p> <title>最速下降法--實(shí)例</title></p><p><b> </head></b></p><p>
68、<b> <body></b></p><p><b> <center></b></p><p> <jsp:include page="index.jsp"></jsp:include></p><p> <img src="i
69、mg/9.png" width="200px" height="200px"><br></p><p> 初始值:x={1.5,7.5,-6.0}<br></p><p> <s:form action="emp" method="get"></p&
70、gt;<p> <!--<s:textfield label="精度" name="eps"/>--></p><p> <!--<s:select label="精度" list="{'0.0000000001','0.000000001','0.0
71、0000001','0.0000001','0.000001','0.00001'}" name="eps"></s:select>--></p><p> <s:select label="精度" list="#{'0.0000000001':
72、9;0.0000000001','0.000000001':'0.000000001','0.00000001':'0.00000001','0.0000001':'0.0000001','0.000001':'0.000001','0.00001':'0.00001'}
73、" name="eps"></s:select></p><p> <s:submit value="計(jì)算"/></p><p><b> </s:form></b></p><p> <s:if test="#request.an
74、swer not in {null}"></p><p><b> 結(jié)果為:<br></b></p><p> <s:iterator value="#request.answer" var="ans"></p><p> ${ans}<br>&l
75、t;/p><p> </s:iterator></p><p><b> </s:if></b></p><p><b> </center></b></p><p><b> </body></b></p>&
76、lt;p><b> </html></b></p><p> 理學(xué)院課程設(shè)計(jì)評(píng)分表 </p><p> 課程名稱: </p><p> 教師簽名: </p><p> 日 期: &l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 最優(yōu)化課程設(shè)計(jì)--最速下降法算法分析與實(shí)現(xiàn)
- 牛頓法與最速下降法
- 改進(jìn)的預(yù)條件最速下降法求解P-Laplacian方程.pdf
- 黎曼流形上帶步長(zhǎng)因子的最速下降法和牛頓法.pdf
- 線性方程組的最速下降法與共軛梯度法
- 基于改進(jìn)最速下降法的集裝箱班輪船期設(shè)計(jì)優(yōu)化研究.pdf
- 語法分析程序遞歸下降法
- 數(shù)值分析課程設(shè)計(jì)
- 數(shù)值分析課程設(shè)計(jì)
- 數(shù)值分析課程設(shè)計(jì)
- 編譯課程設(shè)計(jì)-遞歸下降語法分析
- 數(shù)值分析課程設(shè)計(jì)報(bào)告
- 數(shù)值分析課程設(shè)計(jì)報(bào)告
- 數(shù)值分析課程設(shè)計(jì)題目
- 數(shù)值分析課程設(shè)計(jì)報(bào)告書
- 地鐵車站ansys數(shù)值分析課程設(shè)計(jì)
- 編譯原理課程設(shè)計(jì)---ll(1)遞歸下降分析器
- 數(shù)值逼近課程設(shè)計(jì)
- 數(shù)值分析課程設(shè)計(jì)說明書
- 數(shù)值計(jì)算課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論