欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      電子電路上機(jī)報(bào)告三-差動(dòng)放大器分析與設(shè)計(jì)

      時(shí)間:2019-05-13 00:16:19下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《電子電路上機(jī)報(bào)告三-差動(dòng)放大器分析與設(shè)計(jì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《電子電路上機(jī)報(bào)告三-差動(dòng)放大器分析與設(shè)計(jì)》。

      第一篇:電子電路上機(jī)報(bào)告三-差動(dòng)放大器分析與設(shè)計(jì)

      電子電路上機(jī)實(shí)驗(yàn)報(bào)告

      班級(jí): 學(xué)號(hào): 姓名: 實(shí)驗(yàn)三 差動(dòng)放大器分析與設(shè)計(jì)

      一、電路設(shè)計(jì)

      二、直流工作點(diǎn)分析

      由Multisim7仿真結(jié)果如下:(1)直流工作點(diǎn):

      V5=-656.58368mv;V6=9.75915v;V9=-9.92162mv 因此有:UC=9.759V UB=-0.0099V UE=-0.6596V 由于發(fā)射結(jié)正偏,集電結(jié)反偏,由此可以判斷三極管處在放大區(qū)。

      三、測(cè)量電流源供給差放的靜態(tài)工作電流

      在鏡像電流源輸出端串接一個(gè)萬用表來測(cè)量靜態(tài)工作電流的值

      測(cè)得:I=4.502mA

      四、輸入輸出電阻測(cè)量

      輸入電阻:測(cè)量方法為伏安法,方案見下圖

      Ri=Ui/Ii=11.12kΩ

      輸出電阻:將輸入電壓源短路,同時(shí)在輸出端串接電壓源,然后如圖所示分別測(cè)量電壓電流

      Ro=Uo/Io=1.95kΩ

      五、測(cè)單端差模放大倍數(shù)

      儀表連接如下圖:

      分別測(cè)量輸入和輸出交流電壓,可知Av=-1.83*1000/91.872=-19.9

      五、利用波特儀測(cè)幅頻相頻特性

      (一)幅頻特性測(cè)定 雙端:

      單端:

      (二)相頻特性測(cè)定 雙端:

      單端:

      六、交流分析測(cè)幅頻與相頻特性:

      七、利用溫度掃描功能給出工作溫度從0攝氏度到100攝氏度變化時(shí),輸出波形的變化

      測(cè)量結(jié)果如下圖所示:

      八、設(shè)計(jì)如下電路,利用溫度掃描功能給出工作溫度從0攝氏度到100攝氏度變化時(shí),輸出波形的變化

      選擇溫度掃描分析,得到曲線如下圖:

      由七和八中兩電路溫度特性的對(duì)比,可以得出結(jié)論:差放電路具有強(qiáng)烈的抑制溫度漂移的優(yōu)點(diǎn)。

      九、測(cè)量以下電路差模放大倍數(shù)

      測(cè)得:Av=-595.361/8.729=-68.2

      十、仿真實(shí)驗(yàn)心得體會(huì)

      了解到了差動(dòng)放大器器的特性,對(duì)以后的電路設(shè)計(jì)有很大幫助;

      進(jìn)一步熟悉了Multisim的電路分析功能。

      第二篇:電力電子電路建模與分析大作業(yè)

      XX大學(xué)

      研究生課程論文/研究報(bào)告

      課程名稱:電力電子系統(tǒng)建模與分析

      任課教師:

      完成日期:

      2016

      X

      X

      業(yè):

      電力電子與電力傳動(dòng)

      學(xué)

      號(hào):

      名:

      同組成員:

      成績(jī):

      題目要求

      某用戶需要一直流電源,要求:直流輸出24V/200W,輸出電壓波動(dòng)及紋波均<1%。用戶有220V交流電網(wǎng)(±10%波動(dòng)變化)可供使用:

      (1)

      設(shè)計(jì)電源主電路及其參數(shù);

      (2)

      建立電路數(shù)學(xué)模型,獲得開關(guān)變換器傳函模型;

      (3)

      設(shè)計(jì)控制器參數(shù),給出控制補(bǔ)償器前和補(bǔ)償后開環(huán)傳遞函數(shù)波特圖,分

      析系統(tǒng)的動(dòng)態(tài)和穩(wěn)態(tài)性能;

      (4)

      根據(jù)設(shè)計(jì)的控制補(bǔ)償器參數(shù)進(jìn)行電路仿真,實(shí)現(xiàn)電源要求;

      (5)

      討論建模中忽略或近似因素對(duì)數(shù)學(xué)模型的影響,得出適應(yīng)性結(jié)論(量化

      性結(jié)論:如具體開關(guān)頻率、具體允許擾動(dòng)幅值及頻率等)。

      主要工作

      本次設(shè)計(jì)主要負(fù)責(zé)電源主電路及其參數(shù)的的設(shè)計(jì),以及建立電路數(shù)學(xué)模型并獲得開關(guān)變換器傳函模型這兩部分內(nèi)容,具體如下:

      (1)

      本次設(shè)計(jì)電源主電路及其參數(shù),采用從后向前的逆向設(shè)計(jì)思想。首先根據(jù)系統(tǒng)輸出要求,設(shè)計(jì)了后級(jí)DC/DC型Buck電路的參數(shù)。接著設(shè)計(jì)了前級(jí)不控整流電路以及工頻變壓器的參數(shù)。考慮到主電路啟動(dòng)運(yùn)行時(shí)的安全性,在主電路中加入了軟啟動(dòng)電路;

      (2)

      本次DC/DC變換器的建模并沒有采用傳統(tǒng)的狀態(tài)空間平均方法,而是采用更為簡(jiǎn)單、直觀的平均開關(guān)建模方法,建立了Buck變換器小信號(hào)交流模型。最后,推到出了開關(guān)變換器的傳遞函數(shù)模型,并給出了Buck電路閉環(huán)控制框圖。

      設(shè)計(jì)主電路及其參數(shù)

      1.1主電路設(shè)計(jì)

      根據(jù)題目要求,系統(tǒng)為單相交流220V/50Hz輸入,直流24V/200W輸出。對(duì)于小功率單相交流輸入的場(chǎng)合,由于二極管不控整流電路簡(jiǎn)單,可靠性高,產(chǎn)生的高次諧波較少,廣泛應(yīng)用于不間斷電源(UPS)、開關(guān)電源等場(chǎng)合。所以初步確定本系統(tǒng)主電路拓?fù)錇椋呵凹?jí)AC-DC電路為電源經(jīng)變壓器降壓后的二極管不控整流,后級(jí)DC-DC電路為Buck斬波電路,其中Buck電路工作在電感電流連續(xù)模式(CCM),前后級(jí)之間通過直流母線和直流電容連接在一起。系統(tǒng)主電路結(jié)構(gòu)如圖1-1所示。

      圖1-1

      系統(tǒng)主電路結(jié)構(gòu)圖

      1.2主電路參數(shù)設(shè)計(jì)

      本次設(shè)計(jì)電源主電路參數(shù),采用從后向前的逆向設(shè)計(jì)思想。先對(duì)后級(jí)DC/DC型Buck電路的參數(shù)進(jìn)行設(shè)計(jì),接著對(duì)前級(jí)不控整流電路以及工頻變壓器的參數(shù)進(jìn)行設(shè)計(jì)。下面分別對(duì)后級(jí)的Buck電路和前級(jí)經(jīng)變壓器降壓后的不控整流電路各參數(shù)進(jìn)行分析設(shè)計(jì)。

      1.2.1

      輸出電阻計(jì)算

      根據(jù)系統(tǒng)電路參數(shù):,可計(jì)算:

      輸出電流:

      (1-1)

      負(fù)載等值電阻:

      (1-2)

      1.2.2

      BUCK電路占空比及開關(guān)頻率選擇

      根據(jù)Buck電路占空比計(jì)算公式:

      假定占空比,可得:

      (1-3)

      由于開關(guān)頻率越低,低頻擾動(dòng)頻率的選擇范圍越小,濾波電感的體積越大,整體裝置的體積和重量越大。開關(guān)頻率高,可以用更小的電感來濾除高次諧波,但是開關(guān)頻率過高會(huì)導(dǎo)致開關(guān)管功耗變大,發(fā)熱量顯著增加,電路效率變低,散熱器體積也更大。因此要折中效率、體積選擇開關(guān)頻率,本次設(shè)計(jì)選擇MOSFET開關(guān)頻率。

      1.2.3

      BUCK電路濾波電感選擇

      由BUCK電路電感電流連續(xù)的臨界條件:

      可得要保證電路工作在CCM模式下,則電感應(yīng)滿足:

      (1-4)

      根據(jù)開關(guān)頻率,則

      (1-5)

      假定電感紋波電流為輸出負(fù)載電流額定值的30%,此時(shí)電感值應(yīng)為:

      (1-6)

      保留一定余量,本系統(tǒng)實(shí)取。

      1.2.4

      BUCK電路濾波電容選擇

      電容容值越大,輸出電壓將近似為恒定,但電容越大,裝置體積和成本也相應(yīng)增大,因此本系統(tǒng)根據(jù)輸出電壓的紋波要求選取電容。本設(shè)計(jì)按輸出電壓紋波不超過輸出電壓的1%進(jìn)行計(jì)算:

      (1-7)

      保留一定余量,本系統(tǒng)實(shí)取。

      1.2.5

      開關(guān)管MOSFET選擇

      開關(guān)導(dǎo)通時(shí)MOSFET端電壓近似為0V,開關(guān)關(guān)斷時(shí)MOSFET承受最大電壓為:

      (1-8)

      一個(gè)開關(guān)周期內(nèi)流過開關(guān)管的電流最大值等于電感電流最大值,即:

      (1-9)

      綜上,考慮裕量,選擇MOSFET的型號(hào)為IRF650A,其額定參數(shù)為。

      1.2.6

      整流后直流側(cè)電容選擇

      直流母線電壓通過單相橋式整流而來故每個(gè)周期發(fā)生2次脈動(dòng),單相工頻電壓的周期為T=0.02s,在T/2周期內(nèi)電容完成一個(gè)充電和放電的周期。直流側(cè)電容的選擇依據(jù)有:

      (1)

      有依電流為依據(jù)的,例如:每0.5A電流1000uF

      (2)

      有依RC時(shí)間常數(shù)為依據(jù)的,例如:?jiǎn)蜗嗖豢卣麟娐?/p>

      其中,T為交流電源周期

      則:

      (1-10)

      (3)還有一種經(jīng)驗(yàn)數(shù)據(jù):

      負(fù)載電流(A)

      2A

      1A

      0.5-1A 0.1-0.5A

      <0.1A?。?.05A

      濾波電容(μF)4000

      2000

      1000

      500

      200-500  200

      根據(jù)直流側(cè)電壓平均值為48V,則直流側(cè)的等效電流約為,由經(jīng)驗(yàn)數(shù)據(jù)可大概估算直流側(cè)電容為10000uF。本系統(tǒng)實(shí)際選擇100V/100uF

      CL20型金屬化聚脂膜電容器,采用10只并聯(lián)。

      1.2.7

      整流二極管選擇

      (1)確定整流二極管的耐壓值

      根據(jù)全橋整流電路中每個(gè)二極管所承受的反向電壓:

      可得整流二極管耐壓值為:

      (1-11)

      其中,為整流橋輸入電壓有效值,1.1為電壓波動(dòng)系數(shù),為安全系數(shù)。

      則二極管耐壓值為:

      (1-12)

      (2)確定整流二極管的額定電流值

      流過每個(gè)二極管的平均電流為直流側(cè)電流的一半,取電流波動(dòng)系數(shù)取1.1,安全系數(shù),則整流二極管額定電流值為:

      (1-13)

      根據(jù)上述參數(shù)選擇二極管型號(hào)為P600D,查其參數(shù)手冊(cè)可知二極管的通態(tài)壓降為,則每個(gè)二極管額通態(tài)損耗為:

      (1-14)

      1.2.8

      變壓器選擇

      電壓比:

      變壓器電壓比的計(jì)算原則是電路在最大占空比和最低輸入電壓的條件下,輸出電壓能達(dá)到要求的上限。根據(jù)公式:

      其中,為二極管整流橋輸出電壓最小值;為最大占空比,取0.9;為

      考慮管壓降和線壓降,取2V;為最高輸出電壓。

      實(shí)際根據(jù)單相二極管不控整流電路的輸入輸出關(guān)系,可得不控整流的輸入側(cè)電壓,即變壓器二次側(cè)電壓為:

      (1-15)

      則變壓器電壓比為:

      (1-16)

      容量:

      根據(jù)系統(tǒng)輸出功率,考慮電路損耗及效率,變壓器容量選擇為300VA。

      鐵芯截面積:

      鐵芯截面積是根據(jù)變壓器總功率P確定的,根據(jù)變壓器次級(jí)功率為P2=200W。計(jì)算變壓器輸入功率P1(考慮變壓器效率η=0.9)P1=P2/0.9=222.2w。

      則鐵芯截面積為:

      (1-17)

      匝數(shù):

      變壓器匝數(shù)的選擇(工頻變壓器)

      根據(jù)變壓器最高輸出電壓,電源周期,鐵心截面積,鐵心材料所允許的最大磁通密度的變化量,則變壓器二次側(cè)繞組匝數(shù)為:

      (1-18)

      則變壓器一次側(cè)繞組匝數(shù):

      (1-19)

      繞組導(dǎo)體截面:

      根據(jù)流過每個(gè)繞組的電流值和預(yù)先選定的電流密度,即可計(jì)算出繞組導(dǎo)體截面:

      (1-20)

      其中,導(dǎo)體電流密度選。

      1.2.9

      主電路軟啟動(dòng)設(shè)計(jì)

      由于二極管不控整流后直流側(cè)電容上的初始電壓為零,在輸入電路合閘的瞬間,會(huì)形成很大的瞬時(shí)沖擊電流,主電路軟啟動(dòng)電路不僅可以防止合閘時(shí)電路受到浪涌電流的沖擊,它還能使電路緩慢的啟動(dòng),減小了變換器和輸出電容上的電流最大值,軟啟動(dòng)電路性能的好壞,會(huì)直接影響到電源的工作性能,元器件的壽命,所以很重要。常用的軟啟動(dòng)有:采用功率熱敏電阻電路、采用SCR、R電路、繼電器與電阻構(gòu)成的回路、采用定時(shí)觸發(fā)器的繼電器與限流電阻的電路等等。根據(jù)系統(tǒng)實(shí)際的需要為了避免系統(tǒng)啟動(dòng)可能引起系統(tǒng)內(nèi)浪涌問題,采用加入軟啟動(dòng)環(huán)節(jié)進(jìn)行處理,如下圖1-2所示。先通過電阻R對(duì)輸入濾波環(huán)節(jié)的濾波電容進(jìn)行預(yù)充電,充電完成后接入時(shí)間繼電器KT使電阻R短路。加入了軟啟動(dòng)環(huán)節(jié)后,避免了瞬時(shí)大電壓及大電流的沖擊,保證了系統(tǒng)工作安全及元器件安全。

      圖1-2

      軟啟動(dòng)電路結(jié)構(gòu)圖

      建立電路數(shù)學(xué)模型,獲得開關(guān)變換器傳函模型

      由于狀態(tài)空間平均方法建模純粹基于數(shù)學(xué),計(jì)算推導(dǎo)比較繁瑣、模型不直觀。而平均開關(guān)建模方法,是直接通過電路變換得到電力電子電路小信號(hào)交流模型,更直觀、使用更方便,所以本次DC/DC變換器建模采用平均開關(guān)方法建模。

      2.1建立電路數(shù)學(xué)模型

      任一DC/DC變換器可分割成兩個(gè)子電路,一個(gè)子電路為線性定常子電路,另一個(gè)為開關(guān)網(wǎng)絡(luò)子電路。線性定常子電路無需進(jìn)行處理,關(guān)鍵是通過電路變換將非線性的開關(guān)網(wǎng)絡(luò)子電路變換成線性定常電路。如圖2-1所示,為Buck變換器電路。圖2-2給出了Buck變換器的開關(guān)網(wǎng)絡(luò)子電路,開關(guān)網(wǎng)絡(luò)子電路用二端口網(wǎng)絡(luò)表示,端口變量為。

      圖2-1

      Buck變換器電路

      圖2-2

      Buck變換器開關(guān)網(wǎng)絡(luò)子電路

      根據(jù)開關(guān)管導(dǎo)通時(shí),開關(guān)管關(guān)斷時(shí)。將上述開關(guān)網(wǎng)絡(luò)子電路用受控源替代,如圖2-3所示。且替代后,受控源網(wǎng)絡(luò)端口與開關(guān)網(wǎng)絡(luò)子電路端口的電量波形應(yīng)保持一致。將替代后的開關(guān)網(wǎng)絡(luò)的受控源電路與原來的線性定常子電路組合一起,得到含有受控源的等效Buck電路如圖2-4所示。

      圖2-3

      受控源替代開關(guān)網(wǎng)絡(luò)子電路

      圖2-4

      受控源替代開關(guān)網(wǎng)絡(luò)的Buck電路

      應(yīng)用開關(guān)周期平均的概念,對(duì)圖2-4等效電路中的各個(gè)電量作開關(guān)周期平均運(yùn)算:

      (2-1)

      得到以開關(guān)周期平均值表示的等效電路如圖2-5所示,該電路仍是一個(gè)非線性電路。

      圖2-5

      經(jīng)開關(guān)周期變換后的Buck變換器

      采用擾動(dòng)法,對(duì)上述等效電路中的各個(gè)電量引入小信號(hào)擾動(dòng),即令:

      (2-2)

      得到有小信號(hào)擾動(dòng)作用的等效電路如圖2-6所示。

      圖2-6

      小信號(hào)擾動(dòng)的Buck電路

      其中:

      (2-3)

      將圖2-6等效電路各個(gè)電量中含有的二次項(xiàng)忽略(主要是受控源電量)

      (2-4)

      得到線性近似、受控源表示的小信號(hào)等效電路如圖2-7所示。

      圖2-7

      忽略二次項(xiàng)影響的小信號(hào)擾動(dòng)的Buck電路

      進(jìn)一步用理想變壓器替代受控源,得到線性近似、理想變壓器表示的小信號(hào)等效電路如圖2-8所示。

      圖2-8

      用理想變壓器表示的小信號(hào)等效Buck電路

      2.2開關(guān)變換器傳遞函數(shù)模型

      由上述建立的Buck電路小信號(hào)交流平均開關(guān)模型可推出變換器的傳遞函數(shù)為:

      輸入至輸出的傳遞函數(shù):

      (2-5)

      控制至輸出的傳遞函數(shù):

      (2-6)

      Buck電路閉環(huán)控制框圖如圖2-9所示。

      圖2-9

      Buck電路閉環(huán)控制框圖

      其中:

      (1)

      為需要設(shè)計(jì)的控制器;

      (2)

      為PWM調(diào)制器傳遞函數(shù);

      (3)

      為輸出電壓對(duì)占空比的傳遞函數(shù);

      (4)

      為反饋環(huán)節(jié)的傳遞函數(shù)。

      設(shè)計(jì)中取,將計(jì)算數(shù)值帶入閉環(huán)控制框圖,可得本系統(tǒng)Buck電路閉環(huán)控制框圖如圖2-10所示。

      圖2-10本系統(tǒng)

      Buck電路閉環(huán)控制框圖

      其中原始回路增益為:

      (2-7)

      設(shè)計(jì)控制器參數(shù)

      沒有加控制器補(bǔ)償前變換器原始回路增益函數(shù):

      (3-1)

      其伯德圖如圖3-1所示。

      圖3-1

      原始回路增益伯德圖

      利用超前—滯后補(bǔ)償網(wǎng)絡(luò)來校正系統(tǒng),設(shè)計(jì)的補(bǔ)償網(wǎng)絡(luò)的傳遞函數(shù)為:

      (3-2)

      相應(yīng)的補(bǔ)償網(wǎng)絡(luò)的伯德圖如圖3-2所示。

      圖3-2

      補(bǔ)償網(wǎng)絡(luò)伯德圖

      補(bǔ)償后系統(tǒng)開環(huán)傳遞函數(shù)伯德圖如圖3-3所示。

      圖3-3

      補(bǔ)償后系統(tǒng)伯德圖

      由圖可以看出此時(shí)系統(tǒng)的相位余量為67.5°,幅值余量為20.3dB。

      電路仿真

      根據(jù)以上設(shè)計(jì)的主電路以及控制器參數(shù),在PSIM中搭建仿真電路,并進(jìn)行仿真驗(yàn)證,仿真模型以及仿真結(jié)果如下所示:

      圖4-1

      主電路仿真模型

      圖4-2

      控制電路仿真模型

      系統(tǒng)輸出電壓Uo與輸出電流Io的波形如圖4-3和4-5所示。

      圖4-3

      輸出電壓波形圖

      圖4-4

      輸出電壓有效值

      圖4-5

      輸出電流波形圖

      圖4-6

      輸出電壓局部放大圖

      由圖4-6可知,輸出電壓穩(wěn)態(tài)值為24V,波動(dòng)約為0.02%<1%,滿足設(shè)計(jì)要求,超調(diào)量為12.5%,調(diào)節(jié)時(shí)間大約為3ms。

      圖4-7

      突加100%負(fù)載輸出電壓波形圖

      由圖4-7可知,在0.04s時(shí)加入100%的負(fù)載擾動(dòng),輸出電壓依然穩(wěn)定在24V,且滿足1%的紋波設(shè)計(jì)要求。

      圖4-8

      輸出電路電壓、電流波形圖

      圖4-9

      輸出電路電壓、電流有效值

      由圖4-9中輸出電壓、電流有效值計(jì)算,輸出功率約為P=U*I=24*8.3=199.2W,輸出功率基本滿足設(shè)計(jì)要求。

      建模中忽略或近似因素對(duì)數(shù)學(xué)模型的影響

      (1)開關(guān)頻率對(duì)電路模型的影響

      開關(guān)頻率越低,低頻擾動(dòng)頻率的選擇范圍越小,濾波電感的體積越大,整體裝置的體積和重量越大。開關(guān)頻率高,可以用更小的電感來濾除高次諧波,但是開關(guān)頻率過高會(huì)導(dǎo)致開關(guān)管功耗變大,發(fā)熱量顯著增加,電路效率變低,散熱器體積也更大,更加因此要折中效率、面積選擇開關(guān)頻率。

      電路模型的開關(guān)頻率越大,輸出結(jié)果越接近數(shù)學(xué)模型,一般開關(guān)頻率可以取截止頻率的100倍。

      (2)擾動(dòng)頻率對(duì)數(shù)學(xué)模型的影響

      擾動(dòng)頻率過高:如果高于開關(guān)頻率,由于一般使用正弦信號(hào)模擬擾動(dòng),在一個(gè)開關(guān)周期內(nèi)擾動(dòng)信號(hào)正負(fù)分量相互抵消,小信號(hào)擾動(dòng)失去意義。

      擾動(dòng)頻率過低:如果擾動(dòng)頻率過低,在多個(gè)開關(guān)周期內(nèi)擾動(dòng)信號(hào)基本為恒定值,相當(dāng)在給定電壓上疊加了一個(gè)幾乎不變的直流量,不能很好地體現(xiàn)其為小信號(hào)“動(dòng)態(tài)”模型。

      綜上,擾動(dòng)頻率的選擇應(yīng)在一個(gè)合適的范圍內(nèi),這樣既可以方便地對(duì)電路進(jìn)行分析和控制,又不失動(dòng)態(tài)建模的意義。

      (3)擾動(dòng)幅度的影響

      小信號(hào)擾動(dòng)的幅值應(yīng)遠(yuǎn)小于穩(wěn)態(tài)工作點(diǎn)的各量的幅值。根據(jù)仿真結(jié)果可得隨著擾動(dòng)幅度增大,數(shù)學(xué)模型的輸出電壓變化幅度較小。擾動(dòng)幅值不超過±5V時(shí),輸出電壓紋波仍滿足1%的設(shè)計(jì)要求。

      (4)其他影響

      實(shí)際電路中存在電感的等效電阻、開關(guān)管的開通關(guān)斷時(shí)間、管壓降等都會(huì)對(duì)電路模型的輸出產(chǎn)生影響,這些量的大小也會(huì)影響小信號(hào)建模的準(zhǔn)確性和適用性。

      參考文獻(xiàn)

      [1]

      裴云慶,等.開關(guān)穩(wěn)壓電源的設(shè)計(jì)和應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2010.[2]

      王兆安,等.電力電子技術(shù)[M].5版.北京:機(jī)械工業(yè)出版社,2009.[3]

      林渭勛.現(xiàn)代電力電子技術(shù)[M].北京:機(jī)械工業(yè)出版社,2006.[4]

      張崇巍.PWM整流器及其控制[M].北京:機(jī)械工業(yè)出版社,2003.[5]

      徐德鴻.電力電子系統(tǒng)建模及控制[M].北京:機(jī)械工業(yè)出版社,2006.[6]

      張占松

      蔡宣三.開關(guān)電源的原理與設(shè)計(jì)(修訂版)[M].電子工業(yè)出版社,2006.

      第三篇:電子電路CAD設(shè)計(jì)實(shí)驗(yàn)報(bào)告一、二、三

      實(shí)驗(yàn)項(xiàng)目一:Altium Designer 10.0軟件的安裝以及熟悉軟

      件開發(fā)環(huán)境

      一、實(shí)驗(yàn)?zāi)康模?/p>

      1.體會(huì)Altium Designer 10.0的基本操作,熟悉各元器件的應(yīng)用技巧。2.學(xué)會(huì)繪制電路原理圖的基本步驟以及方法與技巧。3.掌握原理圖元件的屬性設(shè)置

      二、實(shí)驗(yàn)儀器:

      計(jì)算機(jī)、Altium Designer軟件

      三、實(shí)驗(yàn)學(xué)時(shí):4學(xué)時(shí)

      四、實(shí)驗(yàn)的主要步驟:

      一、創(chuàng)建原理圖設(shè)計(jì)文件

      1)創(chuàng)建項(xiàng)目文件。執(zhí)行選單命令“FileNewPCB Project”。

      2)通過“另存為”命令將創(chuàng)建的項(xiàng)目文件重命名。執(zhí)行選單命令“FileNew Save Project”或“FileNewSave Project As”。

      3)創(chuàng)建原理圖編輯文件。執(zhí)行選單命令FileNewSchematic。4)執(zhí)行選單命令FileSave。

      二、設(shè)置圖樣參數(shù)

      在原理圖設(shè)計(jì)窗口單擊右鍵,屏幕上出現(xiàn)快捷選單,單擊“Document Options…”,出現(xiàn)“文件選項(xiàng)”對(duì)話框。在“Standard ”欄選擇右邊的選項(xiàng),將默認(rèn)的圖樣幅面“B”改為“A4”

      三、載入元件庫

      四、放置元件

      單擊“Wiring” 工具欄內(nèi)的放置元件

      按鈕,會(huì)出現(xiàn)“Place Part”對(duì)話框。也可在選單欄單擊“PlacePart…”;還可以在原理圖設(shè)計(jì)畫面上單擊鼠標(biāo)右鍵,在出現(xiàn)的快捷選單中選擇“Place Part…”

      五、編輯元件屬性

      雙擊要編輯的元件符號(hào),會(huì)彈出元件屬性“Component Properties”對(duì)話框。

      六、放置電源和接地符號(hào)

      執(zhí)行選單命令Place Power Port命令,光標(biāo)變?yōu)槭譅?,并拖有一個(gè)電源或地符號(hào),按下Tab鍵,彈出的“Power Port”對(duì)話框進(jìn)行編輯設(shè)置。

      七、放置連線和節(jié)點(diǎn)

      執(zhí)行選單命令Place wire和PlaceJunction,也可按工具欄中的按鈕操作。

      八、放置網(wǎng)絡(luò)標(biāo)號(hào)

      單擊“Wiring”工具欄內(nèi)的放置網(wǎng)絡(luò)標(biāo)號(hào)

      按鈕,光標(biāo)變?yōu)槭譅睿⑼现粋€(gè)網(wǎng)絡(luò)標(biāo)號(hào)字符串,按下鍵盤上的Tab按鈕,在彈出的“Net Label”對(duì)話框中進(jìn)行修改,然后單擊“OK”按鈕,再將光標(biāo)移到要放置網(wǎng)絡(luò)標(biāo)號(hào)的的導(dǎo)線上,單擊鼠標(biāo)左鍵即可定位,從而完成電路一個(gè)網(wǎng)絡(luò)標(biāo)號(hào)的放置。

      九、畫圖案和放置文字可單擊實(shí)用工具欄下拉“Drawing”命令中單擊

      按鈕,光標(biāo)變成十字狀,并在其右上角有一個(gè)虛框,這時(shí)再按下Tab鍵,在對(duì)話框“Text”欄中填入文字“ZDQ.SCHDOC”,通過編輯文字對(duì)話框“Font”欄中“Change…”可以改變編輯文字的字體和大小。將光標(biāo)移到合適的位置單擊左鍵,完成文字放置,然后單擊右鍵退出放置圖形狀態(tài)。

      五、實(shí)驗(yàn)結(jié)果:

      六、實(shí)驗(yàn)心得:

      實(shí)驗(yàn)過程中,有一些電路元器件不知道在哪里找,這是因?yàn)閷?duì)Altium Designer軟件不熟練所致,只有熟練掌握軟件操作才能流暢地完成實(shí)驗(yàn)。另外注意保存的文件名稱。

      實(shí)驗(yàn)項(xiàng)目二:繪制原理圖及原理圖元件

      一、實(shí)驗(yàn)?zāi)康模?/p>

      1.了解自頂向下的設(shè)計(jì)方法。2.掌握繪制層次原理圖的方法和流程

      二、實(shí)驗(yàn)儀器:

      計(jì)算機(jī)、Altium Designer軟件

      三、實(shí)驗(yàn)學(xué)時(shí):6學(xué)時(shí)

      四、實(shí)驗(yàn)的主要步驟:

      1.根據(jù)新建工程文件的方法,新建工程文件,并在指定目錄下保存為“本人名字-實(shí)驗(yàn).PrjPCB”;在該工程文件中新建原理圖文件,.SchDoc”。

      2.從菜單選擇Design → Document Options,在此唯一需要修改的是將圖紙大?。╯heet size)設(shè)置為標(biāo)準(zhǔn)A4格式。

      3.下面將介紹從默認(rèn)的安裝庫中首先放置兩個(gè)三極管Q1和Q2。

      (1)從菜單選擇View → Fit Document(熱鍵V、D)確認(rèn)設(shè)計(jì)者的原理圖紙顯示在整個(gè)窗口中。

      (2)單擊Libraries標(biāo)簽以顯示Libraries面板。

      (3)Q1和Q2是型號(hào)為NPN的三極管,該三極管放在Miscellaneous Devices.IntLib集成庫內(nèi),所以從Libraries面板“安裝的庫名”欄內(nèi),從庫下拉列表中選擇Miscellaneous Devices.IntLib來激活這個(gè)庫。

      (4)使用過濾器快速定位設(shè)計(jì)者需要的元件。默認(rèn)通配符(*)可以列出所有能在庫中找到的元件。在庫名下的過濾器欄內(nèi)鍵入c*設(shè)置過濾器,將會(huì)列出所有包含“c”的元件。

      4.在列表中單擊NPN以選擇它,然后單擊Place按鈕。另外,還可以雙擊元件名。光標(biāo)將變成十字狀,并且在光標(biāo)上“懸浮”著一個(gè)三極管的輪廓?,F(xiàn)在設(shè)計(jì)者處于元件放置狀態(tài),如果設(shè)計(jì)者移動(dòng)光標(biāo),三極管輪廓也會(huì)隨之移動(dòng)。

      5.在原理圖上放置元件之前,首先要編輯其屬性。在三極管懸浮在光標(biāo)上時(shí),按下TAB鍵,這將打開Component Properties(元件屬性)對(duì)話框,現(xiàn)在要設(shè)置對(duì)話框

      選項(xiàng)如圖2-9所示。

      6.在對(duì)話框Properties單元,在Designator欄中鍵入Q1以將其值作為第一個(gè)元件序號(hào)。

      7.設(shè)計(jì)者創(chuàng)建元件之前,需要?jiǎng)?chuàng)建一個(gè)新的原理圖庫來保存設(shè)計(jì)內(nèi)容。這個(gè)新創(chuàng)建的原理圖庫可以是分立的庫,與之關(guān)聯(lián)的模型文件也是分立的。另一種方法是創(chuàng)建一個(gè)可被用來結(jié)合相關(guān)的庫文件編譯生成集成庫的原理圖庫。使用該方法需要先建立一個(gè)庫文件包,庫文件包(.LibPkg文件)是集成庫文件的基礎(chǔ),它將生成集成庫所需的那些分立的原理圖庫、封裝庫和模型文件有機(jī)地結(jié)合在一起。

      8.執(zhí)行 File → New → Project → Integrated 新建的庫文件包,默認(rèn)名為Integrated_Libraryl.LibPkg。

      9.在Projects面板上右擊庫文件包名,在彈出菜單上單擊Save Project As命令,在彈出的對(duì)話框中使用瀏覽功能選定適當(dāng)?shù)穆窂剑缓筝斎嗣QNew Integrated_ Library1.LibPkg,單擊Save按鈕。注意如果不輸人后綴名的話,系統(tǒng)會(huì)自動(dòng)添加默認(rèn)名。

      10.添加空白原理圖庫文件。執(zhí)行File → New → Library → Schematic Library命令,Projects面板將顯示新建的原理圖庫文件,默認(rèn)名為Schlibl.SchLib。自動(dòng)進(jìn)入電路圖新元件的編輯界面,如圖:

      11.設(shè)計(jì)者可在一個(gè)已打開的庫中執(zhí)行Tools→New Component命令新建一個(gè)原理圖元件。由于新建的庫文件中通常已包含一個(gè)空的元件,因此一般只需要將Component_1重命名就可開始對(duì)第一個(gè)元件進(jìn)行設(shè)計(jì),這里以AT89C2051單片機(jī)(如圖4-7所示)為例介紹新元件的創(chuàng)建步驟。在原理圖新元件的編輯界面內(nèi):

      (1)在SCH Library面板上的Components列表中選中Component_1選項(xiàng),執(zhí)行Tools→ Rename Component命令,彈出重命名元件對(duì)話框輸入一個(gè)新的、可唯一標(biāo)識(shí)該元件的名稱,如AT89C2051,并單擊“確定”按鈕。同時(shí)顯示一張中心位置有一個(gè)巨大十字準(zhǔn)線的空元件圖紙以供編輯。

      (2)如有必要,執(zhí)行Edit→Jump→Origin命令(快捷鍵J,O),將設(shè)計(jì)圖紙的原點(diǎn)定位到設(shè)計(jì)窗口的中心位置。檢查窗口左下角的狀態(tài)欄,確認(rèn)光標(biāo)已移動(dòng)到原點(diǎn)位置。新的元件將在原點(diǎn)周圍上生成,此時(shí)可看到在圖紙中心有一個(gè)十字準(zhǔn)線。設(shè)計(jì)者應(yīng)該在原點(diǎn)附近創(chuàng)建新的元件,因?yàn)樵谝院蠓胖迷撛r(shí),系統(tǒng)會(huì)根據(jù)原點(diǎn)附近的電氣熱點(diǎn)定位該元件。

      (3)可在“Library Editor Workspace”對(duì)話框設(shè)置單位、捕獲網(wǎng)格(Snap)和可視網(wǎng)格(Visible)等參數(shù),執(zhí)行Tools→Document Options命令(快捷鍵T,D),彈出Library Editor Workspace對(duì)話框如圖4-3所示。針對(duì)當(dāng)前使用的例子,此處需要圖4-3所示對(duì)話框中各項(xiàng)參數(shù)。選擇Always Show Comment/Designator復(fù)選框,以便在當(dāng)前文檔中顯示元器件的注釋和標(biāo)識(shí)符。單擊Units標(biāo)簽,選中Use Imperial Unit System復(fù)選框,其它使用默認(rèn)值,單擊OK按鈕關(guān)閉對(duì)話框。注意縮小和放大均圍繞光標(biāo)所在位置進(jìn)行,所以在縮

      放時(shí)需保持光標(biāo)在原點(diǎn)位置。

      (4)首先需定義元件主體。在第4象限畫矩形框:1000*1400mil;執(zhí)行Place→Rectangle命令或單擊“ ”圖標(biāo),此時(shí)鼠標(biāo)箭頭變?yōu)槭止鈽?biāo),并帶有一個(gè)矩形的形狀。在圖紙中移動(dòng)十字光標(biāo)到坐標(biāo)原點(diǎn)(0,0),單擊鼠標(biāo)左鍵確定矩形的一個(gè)頂點(diǎn),然后繼續(xù)移動(dòng)十字光標(biāo)到另一位置(100,-140),單擊鼠標(biāo)左鍵,確定矩形的另一個(gè)頂點(diǎn),這時(shí)矩形放置完畢。十字光標(biāo)仍然帶有矩形的形狀,可以繼續(xù)繪制其他矩形。

      (5)元件引腳代表了元件的電氣屬性,為元件添加引腳的步驟如下。單擊Place→Pin命令(快捷鍵P,P)或單擊工具欄按鈕“

      ”,光標(biāo)處浮現(xiàn)引腳,帶電氣屬性。放置之前,按Tab鍵打開Pin ProPerties對(duì)話框,如圖所示。如果設(shè)計(jì)者在放置引腳之前先設(shè)置好各項(xiàng)參數(shù),則放置引腳時(shí),這些參數(shù)成為默認(rèn)參數(shù),連續(xù)放置引腳時(shí),引腳的編號(hào)和引腳名稱中的數(shù)字會(huì)自動(dòng)增加。

      五、實(shí)驗(yàn)結(jié)果:

      六、實(shí)驗(yàn)心得:

      在繪制原理圖的過程中要注意元件庫的加載以及元件的查找方法,在缺少所繪原理圖元件時(shí),我們要手動(dòng)繪制該元件。

      實(shí)驗(yàn)項(xiàng)目三: 印制電路板PCB設(shè)計(jì)

      一、實(shí)驗(yàn)?zāi)康模?/p>

      1.熟悉生成印刷電路板的基本步驟和方法 2.了解PCB設(shè)計(jì)流程、PCB工具欄使用。3.掌握自動(dòng)布局與自動(dòng)布線等知識(shí)。

      二、實(shí)驗(yàn)儀器:

      計(jì)算機(jī)、Altium Designer軟件

      三、實(shí)驗(yàn)學(xué)時(shí):6學(xué)時(shí)

      四、實(shí)驗(yàn)的主要步驟:

      1.打開繪制完成的振蕩器電路原理圖。

      2.新建一個(gè)PCB文檔,打開PCB編輯器,單擊PCB編輯窗口西方的“Keep-Out Layer”面板標(biāo)簽,在該層中執(zhí)行Place/keepout/Track命令或者單擊工具欄中的快捷按鈕,繪制電路板的電氣邊框。

      3.加載元器件庫,在PCB編輯窗口內(nèi),單擊“Libraries”面板標(biāo)簽打開元 器件庫,在該面板中單擊左上方的“Libraries”按鈕,添加Miscellaneous Devices PCB元器件庫,然后單擊按鈕Close按鈕即完成PCB元器件庫的加載。

      4.在PCB編輯中執(zhí)行Design/Import Changes From[PCB Project1.PrjPCB]命令并在出現(xiàn)的工程網(wǎng)絡(luò)變化對(duì)話框中單擊“Validate Changes”按鈕,若狀態(tài)欄一列中出現(xiàn)○√說明裝入的元器件正確,再單擊“Execute Changes”按鈕將原理圖加載到PCB編輯器中。

      5.執(zhí)行Tools/Auto Placement/Auto Placer命令,得到自動(dòng)布線的結(jié)果。

      6.手動(dòng)元器件布局調(diào)整。執(zhí)行Edit/Move/move命令,選中要移動(dòng)的元器件,單擊空格鍵進(jìn)行旋轉(zhuǎn),直至找到自己想要的角度,再單擊鼠標(biāo)左鍵來放置元器件,手動(dòng)調(diào)整元器件布局的結(jié)果。

      7.執(zhí)行Auto Route命令后,在隨后彈出的對(duì)話框中選擇默認(rèn)值,單擊“Route All”按鈕,進(jìn)行自動(dòng)布線。布線完畢后,在PCN編輯器中,將顯示如圖5-5所示的自動(dòng)布線電路版圖。

      8.執(zhí)行View/Board in 3D命令,系統(tǒng)將自動(dòng)生成一個(gè)3D 的效果圖 9.布線規(guī)則檢查,完成后保存。

      10.新建“.Schlib”的原理圖,繪制原理圖元件庫。產(chǎn)生一個(gè)新的封裝庫文件。方法如下:選擇主菜單中的“File”→“New”→“l(fā)ibrary”→“PCBlibrary”命令,在“.PrjPcb”項(xiàng)目中新建一個(gè)名稱為“PCB1.Pcblib”的封裝庫文件。在新建的封裝庫文件上單擊鼠標(biāo)右鍵,在彈出的下拉菜單中選擇“Save”命令,打開“Save[PCB1.Pcblib]As”對(duì)話框。在“Save[PCB1.Pcblib]As”對(duì)話框的“文件名”編輯框中輸入“名稱”,單擊“保存”按鈕,將新建的PCB文檔保存為“.Pcblib”文件。

      11.在主菜單中選擇“place”→命令,放置元件外形以及焊盤。

      五、實(shí)驗(yàn)結(jié)果:

      六、實(shí)驗(yàn)心得:

      實(shí)驗(yàn)過程中,有一些電路元器件不知道在哪里找,這是因?yàn)閷?duì)Altium Designer軟件不熟練所致,只有熟練掌握軟件操作才能流暢地完成實(shí)驗(yàn)。

      第四篇:計(jì)算方法與實(shí)習(xí)上機(jī)報(bào)告

      計(jì)算方法與實(shí)習(xí)

      ——上機(jī)報(bào)告

      學(xué)院:電子工程學(xué)院

      2015.1.4

      學(xué)號(hào):***

      姓名: 劉

      習(xí)題一: 舍入誤差及穩(wěn)定性

      一、實(shí)驗(yàn)?zāi)康?/p>

      (1)通過上機(jī)編程,復(fù)習(xí)鞏固以前所學(xué)程序設(shè)計(jì)語言及上機(jī)操作指令;(2)通過上機(jī)計(jì)算,了解舍入誤差所引起的數(shù)值不穩(wěn)定性

      二、實(shí)驗(yàn)內(nèi)容

      ?

      21、用兩種不同的順序計(jì)算?n,分析其誤差的變化

      n?1100002、已知連分?jǐn)?shù)f?b0?a1,利用下面的算法計(jì)算f:

      b1?a2/?b2?a3/(...?an/bn)?ai?

      1(i?n?1,n?2,..., 0f?d0 di?1寫一程序,讀入n,b0,b1,...,bn,a1,...,an,計(jì)算并打印f dn?bn,di?bi?

      3、給出一個(gè)有效的算法和一個(gè)無效的算法計(jì)算積分

      xnyn??dx

      (n?0,1,..., 104x?1N11?311?

      4、設(shè)SN??2,已知其精確值為????

      2?2NN?1?j?2j?1(1)編制按從大到小的順序計(jì)算SN的程序 1(2)編制按從小到大的順序計(jì)算SN的程序

      (3)按兩種順序分別計(jì)算S1000,S10000,S30000,并指出有效位數(shù)

      三、實(shí)驗(yàn)步驟、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析

      ?

      21、用兩種不同的順序計(jì)算?n,分析其誤差的變化

      n?110000(1)實(shí)驗(yàn)步驟:

      分別從1~10000和從10000~1兩種順序進(jìn)行計(jì)算,應(yīng)包含的頭文件有stdio.h和math.h(2)程序設(shè)計(jì): a.順序計(jì)算

      #include #include void main(){ double sum=0;int n=1;while(1){

      sum=sum+(1/pow(n,2));

      if(n%1000==0)printf(“sun[%d]=%-30f”,n,sum);

      if(n>=10000)break;

      n++;} printf(“sum[%d]=%fn”,n,sum);} b.逆序計(jì)算

      #include #include void main(){ double sum=0;int n=10000;

      while(n!=0){

      sum=sum+(1/pow(n,2));

      if(n%200==0)

      printf(“sum[%d]=%-10f”,n,sum);

      if(n<1)break;

      n--;} printf(“sum[%d]=%fn”,n,sum);}

      (3)實(shí)驗(yàn)結(jié)果及分析: 程序運(yùn)行結(jié)果: a.順序計(jì)算

      b.逆序計(jì)算

      結(jié)果分析:兩種不同順序計(jì)算結(jié)果是一樣的,順序計(jì)算誤差從一開始就很小,而逆序計(jì)算誤差最開始十分大,后來結(jié)果正確。

      2、已知連分?jǐn)?shù)f?b0?(1)實(shí)驗(yàn)步驟: 利用 dn?bn,di?bi?a1,計(jì)算f:

      b1?a2/?b2?a3/(...?an/bn)?ai?1,0

      (i?n?1,n?2,...,f?d0,計(jì)算f

      di?1(2)程序設(shè)計(jì) #include #include void main(){ int i=0,n;float a[100],b[100],c[100];printf(“please input n=”);scanf(“%d”,&n);

      printf(“nplease input a[0] to a[n-1]:n”);for(i=1;i

      printf(“a[%d]=”,i);

      scanf(“%f”,&a[i]);}

      printf(“nplease input b[0] to b[n-1]:n”);for(i=0;i

      printf(“b[%d]=”,i);

      scanf(“%f”,&b[i]);}

      d[n]=b[n];for(i=n-1;i>=0;i--)

      c[i]=b[i]+a[i+1]/c[i+1];printf(“nf=%fn”,c[0]);}(3)實(shí)驗(yàn)結(jié)果 程序運(yùn)行結(jié)果:

      3、給出一個(gè)有效的算法和一個(gè)無效的算法計(jì)算積分

      xnyn??dx

      (n?0,1,..., 104x?11(1)實(shí)驗(yàn)步驟

      利用C語言編寫程序,分別使用數(shù)值穩(wěn)定的和數(shù)值不穩(wěn)定的計(jì)算公式所建立的遞推公式進(jìn)行計(jì)算。

      (2)程序設(shè)計(jì) #include #include main(){ double y_0=(1/4.0)*log(5),y_1;double y_2=(1.0/55.0+1.0/11.0)/2,y_3;int n=1,m=10;printf(“有效算法輸出結(jié)果:n”);printf(“y[0]=%-20f”,y_0);while(1){

      y_1=1.0/(4*n)+y_0/(-4.0);

      printf(“y[%d]=%-20f”,n,y_1);

      if(n>=10)break;

      y_0=y_1;

      n++;

      if(n%3==0)printf(“n”);} printf(“n無效算法的輸出結(jié)果:n”);printf(“y[10]=%-20f”,y_2);while(1){

      y_3=1.0/n-4.0*y_2;

      printf(“y[%d]=%-20f”,m-1,y_3);

      if(m<=1)break;

      y_2=y_3;

      m--;

      if(m%2==0)printf(“n”);} }(3)實(shí)驗(yàn)結(jié)果及分析 程序運(yùn)行結(jié)果:

      結(jié)果分析:無效算法數(shù)值不穩(wěn)定,誤差造成的影響特別大

      4、設(shè)SN?

      ?j?2N11?311?,已知其精確值為????

      2?2NN?1?j2?1(1)實(shí)驗(yàn)步驟

      先編程按從大到小的順序計(jì)算SN的程序,再編程按從小到大的順序計(jì)算SN的程序,然后按兩種順序分別計(jì)算S1000,S10000,S30000。(2)程序設(shè)計(jì) #include main(){

      int N;double SN[30000];SN[30000]=(3.0/2.0-1.0/30000.0-1/30001.0)/2.0;

      for(N=30000;N>=2;N--)

      SN[N-1]=SN[N]-1.0/(N*N-1);printf(“從大到小順序計(jì)算nSN[1000]=%fnSN[10000]=%fnSN[30000]=%fn”,SN[1000],SN[10000],SN[30000]);

      SN[2]=(3.0/2-1.0/2.0-1/3.0)/2.0;for(N=3;N<=30000;N++)

      SN[N]=SN[N-1]+1.0/(N*N-1);printf(“從小到大順序計(jì)算nSN[1000]=%fnSN[10000]=%fnSN[30000]=%fn”,SN[1000],SN[10000],SN[30000]);}(3)實(shí)驗(yàn)結(jié)果及分析 程序運(yùn)行結(jié)果:

      結(jié)果分析:不同順序計(jì)算所得結(jié)果是一樣的。

      四、總結(jié)

      通過這次上機(jī),學(xué)習(xí)了解了舍入誤差在不同算法時(shí)對(duì)結(jié)果的影響不同,穩(wěn)定的算法才能獲得正確的結(jié)果。

      習(xí)題二:

      一、實(shí)驗(yàn)?zāi)康?/p>

      (1)通過對(duì)二分法與牛頓迭代法做編程練習(xí)和上機(jī)運(yùn)算,進(jìn)一步體會(huì)二分法和牛頓法的不同。

      (2)編寫割線迭代法的程序,求非線性方程的解,并與牛頓迭代法作比較。

      二、實(shí)驗(yàn)內(nèi)容

      1、用牛頓法求下列方程的根(1)x?e?0

      (2)xe?1?0(3)lgx?x?2?0

      2、編寫割線法程序求解第一問的方程

      三、實(shí)驗(yàn)步驟、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析

      1、牛頓法(1)實(shí)驗(yàn)步驟

      通過定義牛頓法求方程的子函數(shù),用main函數(shù)調(diào)用子函數(shù)求根(2)程序設(shè)計(jì) #include #include typedef float(*p)(float);

      float ff1(float x){

      return x*x-exp(x);} x2xfloat ff2(float x){

      return x*exp(x)-1;} float ff3(float x){

      return log(x)+x-2;} float

      answer(float(*p)(float)){

      int k=2;

      float m=1,n=-1,x2,a,b,c;

      if(p==ff3)n=2;

      printf(“x[0] = %.4f, x[1] = %.4f, ”,m,n);

      while(1)

      {

      if(fabs(m-n)<1e-4)break;

      a=p(n)*(n-m);

      b=p(n)-p(m);

      c=a/b;

      x2=n-c;

      m = n;

      n = x2;

      printf(“x[%d] = %.4f, ”,k,x2);

      k++;

      if(k%3==0)printf(“n”);

      }

      if(k%3!=0)printf(“n”);

      printf(“iteration times: %d, roots: %.4fn ”,k-2,n);return 0;} main(){ printf(“x*x-exp(x),n”);answer(ff1);printf(“x*exp(x)-1,n”);answer(ff2);printf(“l(fā)g(x)+x-2,n”);answer(ff3);return 0;}(3)實(shí)驗(yàn)結(jié)果及分析

      2、割線法(1)程序設(shè)計(jì) #include #include float gexian(float,float);float f(float);main(){

      int i,j;

      float x1=2.2;

      float x2=2,x3;

      scanf(“%d”,&i);

      if(i==1)printf(“%f”,x1);

      else if(i==2)printf(“%f”,x2);

      else

      {

      for(j=3;j<=i;j++)

      {

      x3=gexian(x1,x2);

      x1=x2;

      x2=x3;

      }

      printf(“%f”,gexian(x1,x2));

      } } float f(float x){ return(x*x-exp(x));}

      float gexian(float x1,float x2){ return(x2-(f(x2)/(f(x2)-f(x1)))*(x2-x1));}(3)實(shí)驗(yàn)結(jié)果及分析

      四、總結(jié)

      了解和學(xué)習(xí)了二分法和牛頓迭代法的思想以及程序設(shè)計(jì)的方法,比較了迭代法和牛頓法的特點(diǎn):牛頓法收斂速度較快,但對(duì)初值選取要求較高;割線法計(jì)算量少。

      習(xí)題三: 線性方程組數(shù)值解法

      一、實(shí)驗(yàn)?zāi)康?/p>

      (1)熟悉求解線性方程組的有關(guān)理論和方法;

      (2)會(huì)編制列主元消去法,LU分解法,雅可比及高斯-賽德爾迭代法的程序;(3)通過實(shí)際計(jì)算,進(jìn)一步了解各種方法的優(yōu)缺點(diǎn),選擇合適的數(shù)值方法。

      二、實(shí)驗(yàn)內(nèi)容

      1、用列主元消去法解方程組

      2、用LU分解法解方程組

      三、實(shí)驗(yàn)步驟、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析

      1、用列主元消去法解方程組(1)程序設(shè)計(jì) #include #include void ColPivot(float*,int,float[]);void ColPivot(float*c,int n,float x[]){ int i,j,t,k;float p;for(i=0;i<=n-2;i++){

      k=i;

      for(j=i+1;j<=n-1;j++)

      if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i))))

      k=j;

      if(k!=i)

      for(j=i;j<=n;j++)

      {

      p=*(c+i*(n+1)+j);

      *(c+i*(n+1)+j)=*(c+k*(n+1)+j);

      *(c+k*(n+1)+j)=p;

      }

      for(j=i+1;j<=n-1;j++)

      {

      p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));

      for(t=i;t<=n;t++)

      *(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t));

      } } for(i=n-1;i>=0;i--){

      for(j=n-1;j>=i+1;j--)

      (*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));

      x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i));} } void main(){ int i;float x[4];float c[4][5]={1,1,0,3,4,2,1,-1,1,1,3,-1,-1,3,-3,-1,2,3,-1,4};

      ColPivot(c[0],4,x);for(i=0;i<=3;i++)

      printf(“x[%d]=%fn”,i,x[i]);}(2)實(shí)驗(yàn)結(jié)果及分析

      (1)題

      (2)題

      2、用LU分解法解方程組(1)程序設(shè)計(jì) #include void main(){ float x[4];int i;float a[4][5]={48,-24,0,-12,4,-24,24,12,12,4,0,6,20,2,-2,-6,6,2,16,-2 };void DirectLU(float*,int,float[]);DirectLU(a[0],4,x);for(i=0;i<=3;i++)printf(“x[%d]=%fn”,i,x[i]);} void DirectLU(float*u,int n,float x[]){ int i,r,k;for(r=0;r<=n-1;r++){

      for(i=r;r<=n;i++)

      for(k=0;k<=r-1;k++)

      *(u+r*(n+1)+i)-=*(u+r*(n+1)+k)*(*(u+k*(n+1)+i));

      for(i=r+1;i<=n-1;i++)

      {

      for(k=0;k<=r-1;k++)

      *(u+i*(n+1)+r)-=*(u+i*(n+1)+k)*(*(u+k*(n+1)+r));

      *(u+i*(n+1)+r)/=*(u+r*(n+1)+r);

      }

      } for(i=n-1;i>=0;i--){

      for(r=n-1;r>=i+1;r--)

      *(u+i*(n+1)+n)-=*(u+i*(n+1)+r)*x[r];

      x[i]=*(u+i*(n+1)+n)/(*(u+i*(n+1)+i));} }

      四、總結(jié)

      掌握了用列主元消去法和LU分解法求解方程組程序編寫的技巧。

      習(xí)題四: 插值法

      一、實(shí)驗(yàn)?zāi)康?/p>

      (1)熟悉拉格朗日插值法多項(xiàng)式和牛頓插值多項(xiàng)式,注意其不同點(diǎn);(2)掌握三次樣條插值解決一些實(shí)際問題。

      二、實(shí)驗(yàn)內(nèi)容

      1、按所給數(shù)據(jù)做二次插值,并求給定點(diǎn)的函數(shù)值

      2、按所給數(shù)據(jù)做五次插值,并求給定點(diǎn)的函數(shù)值

      3、牛頓前插公式計(jì)算函數(shù)值

      三、實(shí)驗(yàn)步驟、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析

      1、二次插值(1)程序設(shè)計(jì) #include float Lagrange(float x[],float y[],float xx,int n)

      //n為(n+1)次插值; { int i,j;float *a,yy=0;

      a=new float[n];for(i=0;i<=n-1;i++){

      a[i]=y[i];

      for(j=0;j<=n-1;j++)

      if(j!=i)a[i]*=(xx-x[j])/(x[i]-x[j]);

      yy+=a[i];} delete a;return yy;} void main(){ float x[5]={-3.0,-1.0,1.0,2.0,3.0};float y[5]={1.0,1.5,2.0,2.0,1.0};float xx1=-2,xx2=0,xx3=2.75,yy1,yy2,yy3;yy1=Lagrange(x,y,xx1,3);yy2=Lagrange(x,y,xx2,3);yy3=Lagrange(x,y,xx3,3);printf(“x1=%-20f,y1=%fn”,xx1,yy1);printf(“x2=%-20f,y2=%fn”,xx2,yy2);printf(“x3=%-20f,y3=%fn”,xx3,yy3);}(2)實(shí)驗(yàn)結(jié)果

      2、五次插值(1)程序設(shè)計(jì) #include float Lagrange(float x[],float y[],float xx,int n)

      //n為(n+1)次插值; { int i,j;float *a,yy=0;

      a=new float[n];for(i=0;i<=n-1;i++){

      a[i]=y[i];

      for(j=0;j<=n-1;j++)

      if(j!=i)a[i]*=(xx-x[j])/(x[i]-x[j]);

      yy+=a[i];} delete a;return yy;} void main(){ float x[6]={0.30,0.42,0.50,0.58,0.66,0.72};float y[6]={1.04403,1.08462,1.11803,1.15603,1.19817,1.23223};float xx1=0.46,xx2=0.55,xx3=0.60,yy1,yy2,yy3;yy1=Lagrange(x,y,xx1,6);yy2=Lagrange(x,y,xx2,6);

      yy3=Lagrange(x,y,xx3,6);printf(“x1=%-20f,y1=%fn”,xx1,yy1);printf(“x2=%-20f,y2=%fn”,xx2,yy2);printf(“x3=%-20f,y3=%fn”,xx3,yy3);}

      (2)實(shí)驗(yàn)結(jié)果

      3、牛頓前插公式計(jì)算函數(shù)值(1)程序設(shè)計(jì) #include #define N 3 void Difference(float y[],float f[4][4],int n){

      int k,i;f[0][0]=y[0];f[1][0]=y[1];f[2][0]=y[2];f[3][0]=y[3];for(k=1;k<=n;k++)

      for(i=0;i<=(N-k);i++)

      f[i][k]=f[i+1][k-1]-f[i][k-1];return;} void main(){ int i,k=1;float a,b=1,m=21.4,t=1.4,f[4][4]={0};float x[5]={20,21,22,23,24};float y[5]={1.30103,1.32222,1.34242,1.36173,1.38021};Difference(y,f,N);a=f[0][0];for(i=1;i<=N;i++){

      k=k*i;

      b=b*(t-i+1);

      a=a+b*f[0][i]/k;} printf(“x(k)n”);for(i=0;i<=4;i++)

      printf(“%-20f”,x[i]);printf(“ny(k)n”);

      for(i=0;i<=4;i++)

      printf(“%-20f”,y[i]);for(k=1;k<=3;k++){

      printf(“nF(%d)n ”,k);

      for(i=0;i<=(3-k);i++)

      {

      printf(“%-20f”,f[i][k]);

      } } printf(“n”);printf(“f(%f)=%-20f”,m,a);printf(“n”);}(2)實(shí)驗(yàn)結(jié)果

      四、總結(jié)

      學(xué)習(xí)了插值法,學(xué)會(huì)了利用插值法編程求多項(xiàng)式的解,可以求解很多問題,讓求解多項(xiàng)式解變得非常簡(jiǎn)單。

      習(xí)題五: 曲線擬合

      一、實(shí)驗(yàn)?zāi)康?/p>

      (1)了解最小二乘法的基本原理,通過計(jì)算機(jī)解決實(shí)際問題;(2)了解超定方程組的最小二乘解法。

      二、實(shí)驗(yàn)內(nèi)容

      1、分別用拋物線y?a?bx?cx2和指數(shù)曲線y?aebx擬合所給數(shù)據(jù),并比較這兩個(gè)擬合函數(shù)的優(yōu)劣。

      2、按所給實(shí)驗(yàn)數(shù)據(jù),用形如y?a?bx的拋物線進(jìn)行最小二乘擬合。

      三、程序設(shè)計(jì)、結(jié)果分析

      1、分別用拋物線y?a?bx?cx和指數(shù)曲線y?ae擬合所給數(shù)據(jù) a.拋物線

      (1)程序設(shè)計(jì): #include #include void main(){ int i;float a[3];float x[15]={1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8};

      2bx2 float y[15]={33.4,79.50,122.65,159.05,189.15,214.15,238.65,252.50,267.55,280.50,296.65,301.40,310.40,318.15,325.15};void Approx(float[],float[],int,int,float[]);Approx(x,y,15,2,a);for(i=0;i<=2;i++)

      printf(“a[%d]=%fn”,i,a[i]);} void Approx(float x[],float y[],int m,int n,float a[]){ int i,j,t;float *c=new float[(n+1)*(n+2)];float power(int,float);void ColPivot(float *,int,float[]);for(i=0;i<=n;i++){

      for(j=0;j<=n;j++)

      {

      *(c+i*(n+2)+j)=0;

      for(t=0;t<=m-1;t++)

      *(c+i*(n+2)+j)+=power(i+j,x[t]);

      }

      *(c+i*(n+2)+n+1)=0;

      for(j=0;j<=m-1;j++)

      *(c+i*(n+2)+n+1)+=y[j]*power(i,x[j]);} ColPivot(c,n+1,a);delete c;}

      void ColPivot(float *c,int n,float x[]){ int i,j,t,k;float p;for(i=0;i<=n-2;i++){

      k=i;

      for(j=i+1;j<=n-1;j++)

      if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i))))

      k=j;

      if(k!=i)

      for(j=i;j<=n;j++)

      {

      p=*(c+i*(n+1)+j);

      *(c+i*(n+1)+j)=*(c+k*(n+1)+j);

      *(c+k*(n+1)+j)=p;

      }

      for(j=i+1;j<=n-1;j++)

      {

      p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));

      for(t=i;t<=n;t++)*(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t));

      } } for(i=n-1;i>=0;i--){

      for(j=n-1;j>=i+1;j--)

      (*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));

      x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i));} }

      float power(int i,float v){ float a=1;while(i--)a*=v;return a;}(2)實(shí)驗(yàn)結(jié)果

      2、最小二乘擬合(1)程序設(shè)計(jì) #include #include void main(){ int i,n;float a[2];float x[15]={1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8},z[15];float y[15]={33.4,79.50,122.65,159.05,189.15,214.15,238.65,252.50,267.55,280.50,296.65,301.40,310.40,318.15,325.15};for(n=0;n<=14;n++)

      //增加了數(shù)組z;

      {z[n]=log(y[n]/x[n]);} void Approx(float[],float[],int,int,float[]);Approx(x,z,15,1,a);

      //變成一次擬合;

      //for(i=0;i<=1;i++)

      //printf(“a[%d]=%fn”,i,a[i]);printf(“a=exp(a[0])=%fn”,exp(a[0]));printf(“b=-a[1]=%fn”,-a[1]);} void Approx(float x[],float y[],int m,int n,float a[]){ int i,j,t;float *c=new float[(n+1)*(n+2)];float power(int,float);void ColPivot(float *,int,float[]);for(i=0;i<=n;i++){

      for(j=0;j<=n;j++)

      {

      *(c+i*(n+2)+j)=0;

      for(t=0;t<=m-1;t++)

      *(c+i*(n+2)+j)+=power(i+j,x[t]);

      }

      *(c+i*(n+2)+n+1)=0;

      for(j=0;j<=m-1;j++)

      *(c+i*(n+2)+n+1)+=y[j]*power(i,x[j]);} ColPivot(c,n+1,a);delete c;}

      void ColPivot(float *c,int n,float x[]){ int i,j,t,k;float p;for(i=0;i<=n-2;i++){

      k=i;

      for(j=i+1;j<=n-1;j++)

      if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i))))

      k=j;

      if(k!=i)

      for(j=i;j<=n;j++)

      {

      p=*(c+i*(n+1)+j);

      *(c+i*(n+1)+j)=*(c+k*(n+1)+j);

      *(c+k*(n+1)+j)=p;

      }

      for(j=i+1;j<=n-1;j++)

      {

      p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));

      for(t=i;t<=n;t++)*(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t));

      } } for(i=n-1;i>=0;i--){

      for(j=n-1;j>=i+1;j--)

      (*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));

      x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i));} }

      float power(int i,float v){ float a=1;while(i--)a*=v;return a;}(2)實(shí)驗(yàn)結(jié)果

      四、總結(jié)

      通過曲線擬合,最小二乘法的基本原理的學(xué)習(xí),我學(xué)會(huì)了利用計(jì)算機(jī)解決現(xiàn)實(shí)實(shí)際問題中的曲線擬合。

      習(xí)題六: 數(shù)值積分

      一、實(shí)驗(yàn)?zāi)康?/p>

      (1)通過實(shí)際計(jì)算體會(huì)各種方法的精確度;(2)會(huì)編寫用龍貝格算法求定積分的程序。

      二、實(shí)驗(yàn)內(nèi)容

      編寫復(fù)化柯特斯求積分公式,并計(jì)算例題1例題2,觀察n為多少時(shí)有6位有效數(shù)字。

      三、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析(1)程序設(shè)計(jì) #include #include float Cotes(float(*f)(float),float a,float b,int n){ int k;float c,c1=0,c2,c3,c4;float h=(b-a)/n;c2=(*f)(a+h/4);c3=(*f)(a+h/2);c4=(*f)(a+3*h/4);for(k=1;k<=n-1;k++){

      c1+=(*f)(a+k*h);

      c2+=(*f)(a+k*h+h/4);

      c3+=(*f)(a+k*h+h/2);

      c4+=(*f)(a+k*h+3*h/4);} c=h/90*(7*((*f)(a)+(*f)(b))+14*c1+32*c2+12*c3+32*c4);return c;} float f(float x){ return 1/sqrt(1+x*x*x);} void main(){ int i,n=4;float c;for(i=0;i<=4;i++){

      c=Cotes(f,0,1,n);

      printf(“C(%d)=%fn”,n,c);

      n*=2;} } #include #include float Cotes(float(*f)(float),float a,float b,int n){ int k;float c,c1=0,c2,c3,c4;float h=(b-a)/n;c2=(*f)(a+h/4);c3=(*f)(a+h/2);c4=(*f)(a+3*h/4);for(k=1;k<=n-1;k++){

      c1+=(*f)(a+k*h);

      c2+=(*f)(a+k*h+h/4);

      c3+=(*f)(a+k*h+h/2);

      c4+=(*f)(a+k*h+3*h/4);} c=h/90*(7*((*f)(a)+(*f)(b))+14*c1+32*c2+12*c3+32*c4);return c;} float f(float x){ // return 1/sqrt(1+x*x*x);

      if(x==0)return 1;

      else return sin(x)/x;} void main(){ int i,n=4;float c;for(i=0;i<=4;i++){ // c=Cotes(f,0,1,n);

      c=Cotes(f,0,5,n);

      printf(“C(%d)=%fn”,n,c);

      n*=2;} }

      (2)實(shí)驗(yàn)結(jié)果及分析

      四、總結(jié)

      學(xué)習(xí)了復(fù)化辛卜生公式,自適應(yīng)梯形公式,龍貝格算法,運(yùn)用求解定積分并控制精度的方法。

      習(xí)題七: 常微分方程數(shù)值解法

      一、實(shí)驗(yàn)?zāi)康?/p>

      (1)熟悉求解常微分方程初值問題的有關(guān)方法和理論,主要是改進(jìn)歐拉公式,四階龍格-庫塔法和阿當(dāng)姆斯方法;

      (2)編制上述方法計(jì)算機(jī)程序,包括求解微分方程組的計(jì)算程序;(3)針對(duì)實(shí)習(xí)題編制程序,并上機(jī)計(jì)算其所需要的結(jié)果;

      (4)體會(huì)各種解法的功能,優(yōu)缺點(diǎn)及適用場(chǎng)合,會(huì)選取適當(dāng)?shù)那蠼夥椒ā?/p>

      二、實(shí)驗(yàn)內(nèi)容

      1、分別用改進(jìn)歐拉法與四階龍格-庫塔公式(取h?0.1)求解下列微分方程初值問題

      2、用四階龍格-庫塔公式(取h?0.1)解下列微分方程組初值問題

      三、實(shí)驗(yàn)步驟、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析

      1、分別用改進(jìn)歐拉法與四階龍格-庫塔公式(取h?0.1)求解下列微分方程初值問題 a.改進(jìn)歐拉法(1)程序設(shè)計(jì) #include void ModEuler(float(*f)(float,float),float x0,float y0,float xn,int n){ int i;float yp,yc,x=x0,y=y0,h=(xn-x0)/n;printf(“x[0]=%fty[0]=%fn”,x,y);for(i=1;i<=n;i++){

      yp=y+h*(*f)(x,y);

      x=x0+i*h;

      yc=y+h*(*f)(x,yp);

      y=(yp+yc)/2;

      printf(“x[%d]=%fty[%d]=%fn”,i,x,i,y);} } float f(float x,float y){ //return x*x+y*y;

      //題(1)

      //return 1/(1+y*y);

      //題(2)

      return y-2*x/y;

      //題(3)} void main(){ float xn=1.0,x0=0,y0=1;

      ModEuler(f,x0,y0,xn,10);}

      (2)實(shí)驗(yàn)結(jié)果及分析(1)

      (2)

      (3)

      b.四階龍格-庫塔公式(1)程序設(shè)計(jì) #include void Runge_Kutta(float(*f)(float x,float y),float a,float b,float y0,int N){ float x=a,y=y0,K1,K2,K3,K4;float h=(b-a)/N;int i;printf(“x[0]=%fty[0]=%fn”,x,y);for(i=1;i<=N;i++){

      K1=(*f)(x,y);

      K2=(*f)(x+h/2,y+h*K1/2);

      K3=(*f)(x+h/2,y+h*K2/2);

      K4=(*f)(x+h,y+h*K3);

      y=y+h*(K1+2*K2+2*K3+K4)/6;

      x=a+i*h;

      printf(“x[%d]=%fty[%d]=%fn”,i,x,i,y);} } float f(float x,float y){ //return x*x+y*y;

      //題(1)

      //return 1/(1+y*y);

      //題(2)

      return y-2*x/y;

      //題(3)} void main(){ float a=0,b=1.0,y0=1;Runge_Kutta(f,a,b,y0,10);}(2)實(shí)驗(yàn)結(jié)果(1)

      (2)

      (3)

      2、四階龍格-庫塔公式解微分方程組初值問題(1)程序設(shè)計(jì) #include void Runge_Kutta(float(*f)(float x,float y,float z),float(*g)(float x,float y,float z),float a,float b,float y0,float g0,int N){ float x=a,y=y0,z=g0,K1,K2,K3,K4,l1,l2,l3,l4;float h=(b-a)/N;int i;printf(“x[0]=%fty1[0]=%fty2[0]=%fn”,x,y,z);for(i=1;i<=N;i++){

      K1=(*f)(x,y,z);l1=(*g)(x,y,z);

      K2=(*f)(x+h/2,y+h*K1/2,z+h*l1/2);l2=(*g)(x+h/2,y+h*K1/2,z+h*l1/2);

      K3=(*f)(x+h/2,y+h*K2/2,z+h*l2/2);l3=(*g)(x+h/2,y+h*K2/2,z+h*l2/2);

      K4=(*f)(x+h,y+h*K3,z+h*l3);l4=(*g)(x+h,y+h*K3,z+h*l3);

      y=y+h*(K1+2*K2+2*K3+K4)/6;

      z=z+h*(l1+2*l2+2*l3+l4)/6;

      x=a+i*h;

      printf(“x[%d]=%fty[%d]=%ftz[%d]=%fn”,i,x,i,y,i,z);} } float f(float x,float y,float z){

      return 120-2*y+2*z;

      } float g(float x,float y,float z){

      return 2*y-5*z;

      } void main(){ float a=0,b=1.0,y0=0,g0=0;Runge_Kutta(f,g,a,b,y0,g0,10);}

      (2)實(shí)驗(yàn)結(jié)果

      四、總結(jié)

      通過這次學(xué)習(xí),我掌握了根據(jù)不同場(chǎng)合選擇不同方法計(jì)算求解問題的方法,主要學(xué)習(xí)了改進(jìn)歐拉法和四階龍格-庫塔法求解微分方程的求解問題方法。

      計(jì)算方法上機(jī)匯總:

      通過對(duì)這門課的學(xué)習(xí),我們學(xué)習(xí)了很多計(jì)算方程、曲線擬合、求解微分方程的方法。而實(shí)習(xí)

      課讓我們將所學(xué)的原理應(yīng)用到實(shí)踐中去,上機(jī)編寫程序的過程中我們不斷的運(yùn)用已學(xué)知識(shí),掌握了求解各種實(shí)際問題的方法,并且體會(huì)了不同的方法的不同結(jié)果,從而在不同的場(chǎng)合,要用合適的計(jì)算方法來求解問題。我們求解的問題包括誤差分析,線性方程組的求解,微分方程的求解等問題。在選擇合適的計(jì)算方法的時(shí)候要考慮方法的收斂性,穩(wěn)定性,以及哪種方法計(jì)算速度快,最終結(jié)果誤差小。這門課與計(jì)算機(jī)密切結(jié)合并且實(shí)用性極強(qiáng),能夠?qū)⑺鶎W(xué)的知識(shí)在實(shí)踐中得到應(yīng)用,加強(qiáng)了我對(duì)專業(yè)學(xué)習(xí)的信心。

      參考文獻(xiàn):

      【1】孫志忠.計(jì)算方法典型例題分析.第二版.北京:科學(xué)出版社,2005 【2】孫志忠,袁慰平,計(jì)算方法與實(shí)習(xí).第二版.南京:東南大學(xué)出版社,2011 【3】譚浩強(qiáng).C程序設(shè)計(jì).第四版.北京:清華大學(xué)出版社,2010 ◆ 《數(shù)值計(jì)算方法》 合肥工業(yè)大學(xué)數(shù)學(xué)與信息科學(xué)系 編 合肥工業(yè)大學(xué)出版社 ◆ 《計(jì)算方法》 鄧建中等編,西安交大出版社,1985。

      ◆ 《數(shù)值計(jì)算和C程序集》蔣長(zhǎng)錦編著,中國科學(xué)技術(shù)大學(xué)出版社,1998?!?《計(jì)算方法引論》徐萃薇編,高等教育出版社,1999。

      ◆ 黃友謙,程詩杰,陳浙鵬,《數(shù)值試驗(yàn)》,北京:高等教育出版社,1989

      ◆ 蔡大用,《數(shù)值分析與實(shí)驗(yàn)學(xué)習(xí)指導(dǎo)》,北京:清華大學(xué)出版社與施普林格出版社,2001 ◆ 肖筱南,《值計(jì)算方法與上機(jī)實(shí)習(xí)指導(dǎo)》,北京:北京大學(xué)出版社,2004

      A.Quarteroni, R.Sacco, F.Saleri,《Numerical Mathematics》, New York:Springer-Verlag, 2000

      第五篇:《數(shù)值分析》上機(jī)實(shí)習(xí)報(bào)告

      數(shù)值分析上機(jī)實(shí)驗(yàn)報(bào)告

      姓 名:班 級(jí):學(xué) 號(hào):院 系:機(jī)械工程學(xué)院指導(dǎo)教師:C語言)

      2006級(jí) 2006050349

      (for(j=0;j

      }

      void guss(float a[N][N],float b[N])/* 子函數(shù)高斯消去法*/ { int i,j;

      {

      } printf(“Household變換的結(jié)果:”);/*輸出Household變換的結(jié)果*/ for(i=0;i

      for(j=0;j

      } if(j%N==0)printf(“n”);s=0.0;for(i=j+1;i

      } for(i=0;i

      } for(k=0,i=0;i

      q[i]=y[i]-k*u[i];for(i=0;i

      } x[N-1]=y[N-1]/u[N-1];for(i=N-1;i>=0;i--)x[i]=(y[i]-a[i][i+1]*x[i+1])/u[i];printf(“消去法的結(jié)果:n”);/*輸出消去法的結(jié)果*/ for(i=0;i

      } printf(“n”);}

      void sor(float a[N][N],float b[N])/*子函數(shù)超松馳法*/ { float a1[N][N];int i,j,k,m;float x[N],temp[N][N];float w=1.4,h=0,g=0;for(m=0;m

      { for(j=1;j<=N;j++){ if(j<=i-1)h+=temp[i-1][j-1]*x[j-1];else if(j==i)h+=0;else h+=temp[i-1][j-1]*x[j-1];

      q[i]=a[i][i-1]/u[i-1];u[i]=a[i][i]-q[i]*a[i-1][i];y[i]=b[i]-q[i]*y[i-1];if(i==5)printf(“n”);printf(“x%d=%9.6f ”,i,x[i]);

      } g=(h+b[i-1])*w;x[i-1]=(1-w)*x[i-1]+g;h=0.0;g=0.0;} } printf(“超松弛法的結(jié)果:n”);/*輸出超松弛法的結(jié)果*/ for(i=0;i

      四、運(yùn)行結(jié)果

      Household變換的結(jié)果: 12.3841-4.8931 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000-4.8931 25.3984 6.4941 0.0000-0.0000 0.0000-0.0000-0.0000-0.0000 0.0000 6.4941 20.6115 8.2439-0.0000-0.0000-0.0000 0.0000 0.0000 0.0000 0.0000 8.2439 23.4229-13.8801-0.0000 0.0000-0.0000 0.0000 0.0000-0.0000-0.0000-13.880129.6983 4.5345 0.0000 0.0000 0.0000 0.0000 0.0000-0.0000-0.0000 4.5345 16.0061 4.8814 0.0000-0.0000 0.0000-0.0000-0.0000 0.0000 0.0000 4.8814 26.0133-4.5036 0.0000 0.0000-0.0000 0.0000-0.0000 0.0000 0.0000-4.5036 21.2540 4.5045 0.0000-0.0000 0.0000 0.0000 0.0000-0.0000 0.0000 4.5045 14.5341 消去法的結(jié)果:

      x0= 1.075799 x1= 2.275744 x2=-2.855514 x3= 2.293097 x4= 2.112633 x5=-6.423833 x6= 1.357923 x7= 0.634245 x8=-0.587266 超松弛法的結(jié)果:

      x0= 1.073409 x1= 2.272580 x2=-2.856600 x3= 2.292511 x4= 2.112164 x5=-6.422582 x6= 1.357802 x7= 0.634259 x8=-0.587042

      五、問題討論: 1.算法分析

      SOR方法的矩陣形式為: X(m)=(E-ωL)-1((1-ω)E+ωR)x(m-1)+(E-ωL)-1ωg 若記 Lω=(E-ωL)-1((1-ω)E+ωR),SOR收斂的充要條件是S(Lω)<1.且若A為對(duì)稱正定陣,則當(dāng)松弛因子ω滿足0<ω<2時(shí),SOR方法收斂。此題中矩陣B是對(duì)稱正定陣,且是三對(duì)角的,所以選擇合適的松馳因子ω,收斂速度是很快的。2.上機(jī)出現(xiàn)情況

      數(shù)組作為子函數(shù)參數(shù)時(shí),實(shí)現(xiàn)的是地址傳遞,會(huì)改變?cè)瓟?shù)組中元素的值,因此主函數(shù)調(diào)用housholder變換子函數(shù)后,原數(shù)組a[9][9]中的值已經(jīng)改變?yōu)槿龑?duì)角陣。以下的消去法、超松弛法子函數(shù)調(diào)用的是已經(jīng)三對(duì)角化后的a[9][9]的值。

      調(diào)用時(shí)由于沒有定義housholder變換子函數(shù)中數(shù)組a[][]的大小,運(yùn)行時(shí)出現(xiàn)以下錯(cuò)誤提示: error C2087: '' : missing subscript error C2133: 'a' : unknown size 修改大小為a[N][N]時(shí)(N為宏定義常數(shù)9),運(yùn)行正常。

      Xn1?? , Zk? mkmax(Xn)sa[0]=a[0][0]-x;if(sa[0]==0)sa[1]=a[0][1]*a[0][1];else sa[1]=a[1][1]-x-a[0][1]*a[0][1]/sa[0];for(i=2;i

      }

      float duifen(float a[N][N])/*對(duì)分法求取方程的解的子函數(shù)*/ { float ss1=0,ss2=23,ss=0,h=0,g=0;float l,ll;h=f(a,ss2);while(1){

      ss1=ss;g=f(a,ss);ss=0.5*(ss+23);l=0.5*(ss1+23);if(g-h==1)break;{ if(sa[i-1]*sa[i-2]!=0)sa[i]=a[i][i]-x-a[i-1][i]*a[i-1][i]/sa[i-1];else if(sa[i-2]==0)sa[i]=a[i][i]-x;if(sa[i-1]==0)sa[i]=-1;} { if(sa[i]>=0)hh+=1;else hh+=0;} for(i=0;i

      float fanmi(float a[N][N])/*反冪法求解方程的解的子函數(shù)*/ {

      float mk=0,t,t1;float z[N],yy[N],a3[N][N];int i,j,k,m,tt;float h=0;float l[N]={0,};t1=duifen(a);/*調(diào)用對(duì)分法求取方程的解*/ for(i=0;i

      for(m=0;m-1;i--){ for(j=i+1;j

      }

      printf(“反冪法的解的特征向量是:n”);{if(m==5)printf(“n”);printf(“%-10.6f”,z[m]);} /*輸出反冪法的解的特征向量*/ return 0;for(m=0;m

      printf(“n”);main(){ float a[N][N]={{12.3841,-4.8931},{-4.8931,25.3984,6.4941},{0,6.4941,20.6115,8.2439}, {0,0,8.2439,23.4229,-13.8801},{0,0,0,-13.8801,29.6983,4.5345},{0,0,0,0,4.5345,16.0061,4.8814}, {0,0,0,0,0,4.8814,26.0133,-4.5036},{0,0,0,0,0,0,-4.5036,21.2540,4.5045},{0,0,0,0,0,0,0,4.5045,14.5341}};

      printf(“對(duì)分法的結(jié)果是:n”);printf(“d=%f”,duifen(a));/*調(diào)用對(duì)分法并輸出對(duì)分法近似解*/ fanmi(a);/*調(diào)用反冪法求解*/ }

      四、運(yùn)行結(jié)果 對(duì)分法的結(jié)果是: d=21.916260 反冪法的結(jié)果是: d=21.928129 反冪法的解的特征向量是:

      0.157066-0.306359 0.282201 0.285925 0.198640 0.533758 0.462842 1.000000 0.611843

      五、問題討論 1.算法分析

      1)對(duì)分法簡(jiǎn)單可靠,數(shù)值穩(wěn)定性較高,對(duì)于求少量幾個(gè)特征值特別適宜.但收斂速度較慢.2)反冪法是結(jié)合對(duì)分法使用的,近似值較恰當(dāng),其收斂速度是很快.只要迭代兩次就可得到較滿意的結(jié)果.但在運(yùn)用中需把一般矩陣化為Hessebberg陣才可計(jì)算.2.上機(jī)出現(xiàn)情況

      當(dāng)把對(duì)分法及反冪法全部寫在主函數(shù)中,實(shí)現(xiàn)題目全部要求時(shí),主函數(shù)過于冗長(zhǎng),不利于糾錯(cuò),也不利于實(shí)現(xiàn)共享,通過修改對(duì)分法及反冪法為子函數(shù)調(diào)用,以便于調(diào)試,亦有利于共享。

      for(j=0;j

      }

      b[0]=2*h*b[0];a[i][i-1]=1;a[i][i]=4;a[i][i+1]=1;b[N-1]=2*h*b[N-1];for(i=1;i

      u[0]=a[0][0];/*消去法求c[i]*/ y[0]=b[0];for(i=1;i

      } c[N-1]=y[N-1]/u[N-1];for(i=N-2;i>=0;i--)

      for(i=0;i

      } s=0.0;for(i=0;i

      b[N-1]=b[N-1]+b[N-2];q[i]=a[i][i-1]/u[i-1];u[i]=a[i][i]-q[i]*a[i-1][i];y[i]=b[i]-q[i]*y[i-1];c[i]=(y[i]-a[i][i+1]*c[i+1])/u[i];e=fabs(*x-i);if(e>=2)

      w[i]=0;w[i]=0.5*fabs(e*e*e)-e*e+2.0/3.0;w[i]=(-1.0/6.0)*fabs(e*e*e)+e*e-2*fabs(e)+4.0/3.0;else if(e<=1)else

      } *x=s;*x1=(c[(int)(m+1)]-c[(int)(m-1)])/2.0;void main(){

      }

      四、運(yùn)行結(jié)果

      三次樣條插值求得的結(jié)果是: f(4.563)=1.517932 f'(4.563)=0.249350

      五、問題討論:

      樣條插值效果比Lagrange插值好,由于樣條插值不必經(jīng)過所有點(diǎn),所以沒有Runge現(xiàn)象.而且插值函數(shù)比較光滑。

      其基本思想是對(duì)均勻分劃的插值函數(shù)的構(gòu)造,三次樣條函數(shù)空間中不取1,x,x,x,(x-xj)+為基函數(shù),而取B樣條函數(shù)Ω3(x-xj/h)為基函數(shù).由于三次樣條函數(shù)空間是N+3維的,故我們把分點(diǎn)擴(kuò)大到N?1X-1,XN+1,則任意三次樣條函數(shù)可用Ω3(x-xj/h)線性組合來表示 S(x)= 不同插值問題,若能確定cj由解的唯一性就能求得解S(x).2

      33float b[N]={1,0,0.69314718,1.0986123,1.3862944,1.6094378,1.7917595, 1.9459101,2.079445,2.1972246,2.3025851,0.1};float x,x1;float h;h=1;x=4.563;scyt(&x,&x1,b,h);/*調(diào)用三次樣條插值子函數(shù)*/ printf(“f(4.563)=%.6fn”,x);printf(“f'(4.563)=%.6fn”,x1);printf(“三次樣條插值求得的結(jié)果是:n”);

      ?cjΩ3(x-xj/h)這樣對(duì)

      j??1 7

      4float z;z=pow(x,7)-28*pow(x,4)+14;return(z);float z;z=7*pow(x,6)-112*pow(x,3);return(z);x=fabs(f1(a))>fabs(f1(b))?a:b;/*初始值的選擇*/ } main(){ float a,b;

      /*變量定義及賦初值*/ float min;float result;a=0.1;b=1.9;min=1e-5;result=ndf(a,b,min);/*調(diào)用牛頓法子函數(shù)*/ printf(“用牛頓法求方程在取初值為(0.1,1.9)區(qū)間端點(diǎn)時(shí)的近似根為:n”);printf(“x=%.6fn”,result);}

      四、運(yùn)行結(jié)果

      用牛頓法求方程在取初值為(0.1,1.9)區(qū)間端點(diǎn)時(shí)的近似根為: x=0.845497

      五、問題討論

      1.Newton法收斂速度比較快,是平方收斂,但它是局部收斂。2.采用newton法求方程平方收斂,較為精確。但需求函數(shù)導(dǎo)數(shù)。

      3.初始值取為區(qū)間端點(diǎn)xo時(shí),取使f(xo)f′′(xo)>0的一個(gè),本例中取為xo=1.9。

      (k)

      (0)

      (0)

      3x1.42float z;z=pow(3,y)*pow(y,1.4)*(5*y+7)*sin(y*y);return(z);s=0;for(i=1;i<=(pow(2,j-1));i++)s+=(b-a)*(*f)(a+(2*i-1)*(b-a)/pow(2,j))/pow(2,j-1);t[1][j]=(t[1][j-1]+s)/2;

      } {

      } z=t[i+1][0];return(z);for(j=1;j<=N-i+1;j++)t[i+1][j-1]=(pow(4,i)*t[i][j]-t[i][j-1])/(pow(4,i)-1);break;if(fabs(t[i][0]-t[i+1][0])<=min)main(){

      }

      四、運(yùn)行結(jié)果

      用Romberg算法求積分的結(jié)果(允許誤差為0.00001): I=440.536011

      五、問題討論: 1.算法分析

      1)Romberge算法的優(yōu)點(diǎn)是: 把積分化為代數(shù)運(yùn)算,而實(shí)際上只需求T1,以后用遞推可得.算法簡(jiǎn)單且收斂速度快,一般4或5次即能達(dá)到要求.2)Romberge算法的缺點(diǎn)是: 對(duì)函數(shù)的光滑性要求較高,計(jì)算新分點(diǎn)的值時(shí),這些數(shù)值的個(gè)數(shù)成倍增加。

      2.上機(jī)出現(xiàn)問題

      本程序一開始編寫時(shí),是利用函數(shù)的遞歸調(diào)用來實(shí)現(xiàn),編譯正常通過,但運(yùn)行時(shí)出現(xiàn)異常,經(jīng)分析可能是多次遞歸產(chǎn)生誤差,改用數(shù)組代替遞歸來存放Tij的值時(shí),運(yùn)行正常。

      (i)float a,b;/*變量定義及初始化*/ float min;float result;float(*p)(float);a=1;b=3;min=1e-5;p=f;result=lbg(a,b,min,p);/*調(diào)用龍貝格法求積分子函數(shù)*/ printf(“用Romberg算法求積分的結(jié)果(允許誤差為0.00001):n”);printf(“I=%.6fn”,result);

      } } for(i=0;i<4;i++){

      } fkt(work1,work2);*t=ttemp+temp[i];for(j=0;j

      } }

      四、運(yùn)行結(jié)果

      定步長(zhǎng)四階Runge-Kutta法求微分方程組解的結(jié)果: T Y1 Y2 Y3 0.025000| 0.025000| 0.151579| 8.346120 0.045000| 0.045000| 0.312984| 7.538067 0.085000| 0.085000| 0.560777| 4.944312 0.100000| 0.100001| 0.629078| 4.178828

      五、問題討論: 1.算法分析

      1)Runge_Kutta方法的優(yōu)點(diǎn): 精度高,不必用別的方法求開始幾點(diǎn)的函數(shù)值。

      可根據(jù)f'(t,y)變化的情況與需要的精度自動(dòng)修改步長(zhǎng)。程序簡(jiǎn)單,存儲(chǔ)量少。方法穩(wěn)定。

      rgkt(n,&t,step,&y,work1,work2,work3);/*調(diào)用Runge-Kutta算法求解*/ if(i==49||i==89||i==169||i==199)printf(“%9.6f|%9.6f|%9.6f|%9.6fn”,t,y[0],y[1],y[2]);2)Runge_Kutta方法的缺點(diǎn): 每步要計(jì)算函數(shù)值f(t,y)四次,在f(t,y)較復(fù)雜時(shí),工作量大, 且每一步缺乏可靠的檢查。

      2.上機(jī)出現(xiàn)情況

      當(dāng)用主函數(shù)實(shí)現(xiàn)題目全部要求時(shí),主函數(shù)過于冗長(zhǎng),不利于修改和糾錯(cuò),也不利于實(shí)現(xiàn)共享,通過修改Runge_Kutta法及函數(shù)表達(dá)式為子函數(shù)調(diào)用,并把一些條件語句放進(jìn)子函數(shù)中,主函數(shù)只控制初始值及結(jié)果精度要求,經(jīng)如此修改后便于閱讀和調(diào)試。

      下載電子電路上機(jī)報(bào)告三-差動(dòng)放大器分析與設(shè)計(jì)word格式文檔
      下載電子電路上機(jī)報(bào)告三-差動(dòng)放大器分析與設(shè)計(jì).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        上機(jī)實(shí)驗(yàn)2附件:可行性分析報(bào)告[精選合集]

        計(jì)算機(jī)與通信工程學(xué)院 《軟件工程》實(shí)驗(yàn)報(bào)告(項(xiàng)目或系統(tǒng)名稱) 可行性分析報(bào)告 The Report of Feasibility Studies專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí):計(jì)科20**-*班 姓名:學(xué)生 報(bào)告日期:2......

        西南交大數(shù)值分析上機(jī)實(shí)習(xí)報(bào)告

        數(shù)值分析上機(jī)實(shí)習(xí)報(bào)告要求 1.應(yīng)提交一份完整的實(shí)習(xí)報(bào)告。具體要求如下: (1)要有封面,封面上要標(biāo)明姓名、學(xué)號(hào)、專業(yè)和聯(lián)系電話; (2)要有序言,說明所用語言及簡(jiǎn)要優(yōu)、特點(diǎn),說明選用的考......

        結(jié)構(gòu)矩陣分析原理與程序設(shè)計(jì)上機(jī)心得

        結(jié)構(gòu)矩陣分析原理與程序設(shè)計(jì)上機(jī)心得在結(jié)構(gòu)分析中,把各項(xiàng)計(jì)算公式表達(dá)稱矩陣形式,進(jìn)行矩陣運(yùn)算,稱為矩陣方法。再利用計(jì)算機(jī)對(duì)矩陣進(jìn)行運(yùn)算,就可以很快得到計(jì)算結(jié)果。我們所編寫......

        案例分析報(bào)告三

        案例分析三 電氣工程學(xué)院 2014302540151李彤 本案例講述了成江藥業(yè)的創(chuàng)始人孫加明和周云龍,從最初精誠合作到后期 產(chǎn)生沖突的一系列過程。兩個(gè)人由于公司的發(fā)展,互相之間的交......

        模電及線性電子電路,開放設(shè)計(jì)性電子線路實(shí)習(xí)報(bào)告(5篇可選)

        開放設(shè)計(jì)性電子線路實(shí)習(xí)200 ----200 學(xué)年第 學(xué)期 規(guī)范性實(shí)習(xí)報(bào)告 課程名稱 學(xué)生專業(yè) 學(xué)生分......

        三鹿案例分析報(bào)告

        案例分析報(bào)告 —關(guān)于三鹿奶粉事件的分析 2008年, “三鹿奶粉事件”震驚全國,從而形成了關(guān)注食品安全的焦點(diǎn),而我認(rèn)為其中的主要問題是: (1) 產(chǎn)品出現(xiàn)嚴(yán)重的質(zhì)量問題,損害了消費(fèi)者......

        五月份三違分析報(bào)告

        五月份“三違”分析報(bào)告 一、五月份各區(qū)隊(duì)違章人數(shù)匯總: 安全科共有1人次違章,為輕微三違; 機(jī)電機(jī)運(yùn)隊(duì)共有2人違章,其中:輕微三違1人次,一般三違1人次; 綜采隊(duì)共有7人次違章,其中:嚴(yán)......

        2014-2015學(xué)年度教育質(zhì)量分析報(bào)告(三稿)

        2014-2015學(xué)年度教育質(zhì)量分析報(bào)告 隴縣西大街小學(xué) 尊敬的各位領(lǐng)導(dǎo)、各位同仁: 大家好!很榮幸能和大家一起交流關(guān)于學(xué)校教學(xué)質(zhì)量這一話題。眾所周知,教學(xué)質(zhì)量是一所學(xué)校的生命......