南昌大學(xué)計算機數(shù)值分析實驗報告_第1頁
南昌大學(xué)計算機數(shù)值分析實驗報告_第2頁
南昌大學(xué)計算機數(shù)值分析實驗報告_第3頁
南昌大學(xué)計算機數(shù)值分析實驗報告_第4頁
南昌大學(xué)計算機數(shù)值分析實驗報告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、實 驗 報 告實驗課程: 數(shù)值分析 學(xué)生姓名: 鄭俊 學(xué) 號: 6100410235 專業(yè)班級:計算機科學(xué)與技術(shù)103班 2012年 06 月 6日目 錄 一、 用樣條插值法差值的方法生成字體T的輪廓 3二、 用樣條插值法差值的方法生成字體5的輪廓10三、 用最小二乘法估計原子彈爆炸的能量14 南昌大學(xué)實驗報告一姓名: 鄭俊 學(xué) 號: 6100410235 專業(yè)班級:計算機科學(xué)與技術(shù)103班 實驗類型:驗證 綜合設(shè)計 創(chuàng)新 實驗日期:2012-5 實驗成績: 一、 實驗?zāi)康?:用樣條插值的方法生成字體T的輪廓2:C語言用Bezier曲線生成并編寫程序二、 實驗基本原理和內(nèi)容Times-Roma

2、n字體: TP0xP0yP1xP1yP2xP2yP3xP3y237620237620237120237120237120237352262414319143191431914301430143014304350435043504350435194351943519353233393633910933910933910833962033962033962050762052960255249255249255249257649257649257649257649257066257066257066257066266626662666266620492049204920492244922449224

3、4924866271620183620183620183620237620237620Bezier曲線生成:1、確定曲線的階次; 2 計算Bernstein基函數(shù)的表達式:2、生成字體T共分成15段,每段用了三次的代數(shù)方程,用Bezier曲線生成:當(dāng)n=3時其中3、 把Bezier曲線中的Pk寫成分量坐標(biāo)的形式4 、確定一合適的步長;控制t從0到1變化,求出一系列(x,y)坐標(biāo)點;將其用小線段順序連接起來。 5、根據(jù)hello world !的源代碼進行改編加入生成T的算法,數(shù)據(jù)。三、 主要儀器設(shè)備及耗材PC微機Windows 操作系統(tǒng)Microsoft Visual Studio 6.0集成

4、開發(fā)環(huán)境四、 實驗程序及運行結(jié)果實驗程序代碼如下/ 羅馬數(shù)字T.cpp : Defines the entry point for the application./#include stdafx.h#include resource.h#define MAX_LOADSTRING 100/ Global Variables:HINSTANCE hInst;/ current instanceTCHAR szTitleMAX_LOADSTRING;/ The title bar textTCHAR szWindowClassMAX_LOADSTRING;/ The title bar text

5、/ Foward declarations of functions included in this code module:ATOMMyRegisterClass(HINSTANCE hInstance);BOOLInitInstance(HINSTANCE, int);LRESULT CALLBACKWndProc(HWND, UINT, WPARAM, LPARAM);LRESULT CALLBACKAbout(HWND, UINT, WPARAM, LPARAM);int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevIns

6、tance, LPSTR lpCmdLine, int nCmdShow) / TODO: Place code here.MSG msg;HACCEL hAccelTable;/ Initialize global stringsLoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);LoadString(hInstance, IDC_T, szWindowClass, MAX_LOADSTRING);MyRegisterClass(hInstance);/ Perform application initializatio

7、n:if (!InitInstance (hInstance, nCmdShow) return FALSE;hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_T);/ Main message loop:while (GetMessage(&msg, NULL, 0, 0) if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg) TranslateMessage(&msg);DispatchMessage(&msg);return msg.wParam;ATOM MyRegist

8、erClass(HINSTANCE hInstance)WNDCLASSEX wcex;wcex.cbSize = sizeof(WNDCLASSEX); wcex.style= CS_HREDRAW | CS_VREDRAW;wcex.lpfnWndProc= (WNDPROC)WndProc;wcex.cbClsExtra= 0;wcex.cbWndExtra= 0;wcex.hInstance= hInstance;wcex.hIcon= LoadIcon(hInstance, (LPCTSTR)IDI_T);wcex.hCursor= LoadCursor(NULL, IDC_ARRO

9、W);wcex.hbrBackground= (HBRUSH)(COLOR_WINDOW+1);wcex.lpszMenuName= (LPCSTR)IDC_T;wcex.lpszClassName= szWindowClass;wcex.hIconSm= LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);return RegisterClassEx(&wcex);BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) HWND hWnd; hInst = hInstance; / Store insta

10、nce handle in our global variable hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) return FALSE; ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE;/關(guān)于生成T的函數(shù) double point(int x0,int x1,int x2,int x3

11、,double t) double PX=(1-t)*(1-t)*(1-t)*x0+3*t*(1-t)*(1-t)*x1+3*t*t*(1-t)*x2+t*t*t*x3; PX=670-PX;/以(335,335)為中心對稱點 return PX;LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)int wmId, wmEvent;double t;PAINTSTRUCT ps;HDC hdc;TCHAR szHelloMAX_LOADSTRING;LoadString(hInst, I

12、DS_HELLO, szHello, MAX_LOADSTRING);switch (message) case WM_COMMAND:wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); / Parse the menu selections:switch (wmId)case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break;case IDM_EXIT: DestroyWindow(hWnd); break;default: return

13、 DefWindowProc(hWnd, message, wParam, lParam);break;case WM_PAINT:hdc = BeginPaint(hWnd, &ps);/ TODO: Add any drawing code here.RECT rt;GetClientRect(hWnd, &rt);/調(diào)用生成T的函數(shù),輸入數(shù)據(jù) for (t=0.00;t1;t+=0.001) SetPixel(hdc,point(237,237,237,237,t),point (620,620,120,120,t),RGB(0,255,0); SetPixel(hdc,point(23

14、7,237,226,143,t),point (120,35,24,19,t),RGB(0,255,0); SetPixel(hdc,point(143,143,143,143,t),point (19,19,0,0,t),RGB(0,255,0); SetPixel(hdc,point(143,143,435,435,t),point (0,0,0,0,t),RGB(0,255,0); SetPixel(hdc,point(435,435,435,435,t),point (0,0,19,19,t),RGB(0,255,0); SetPixel(hdc,point(435,353,339,3

15、39,t),point (19,23,36,109,t),RGB(0,255,0); SetPixel(hdc,point(339,339,339,339,t),point (109,108,620,620,t),RGB(0,255,0); SetPixel(hdc,point(339,507,529,552,t),point (620,620,602,492,t),RGB(0,255,0); SetPixel(hdc,point(552,552,576,576,t),point (492,492,492,492,t),RGB(0,255,0); SetPixel(hdc,point(576,

16、576,570,570,t),point (492,492,662,662,t),RGB(0,255,0); SetPixel(hdc,point(570,570,6,6,t),point (662,662,662,662,t),RGB(0,255,0); SetPixel(hdc,point(6,6,0,0,t),point (662,662,492,492,t),RGB(0,255,0); SetPixel(hdc,point(0,0,24,24,t),point (492,492,492,492,t),RGB(0,255,0); SetPixel(hdc,point(24,48,71,1

17、83,t),point (492,602,620,620,t),RGB(0,255,0); SetPixel(hdc,point(183,183,237,237,t),point (620,620,620,620,t),RGB(0,255,0);EndPaint(hWnd, &ps);break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hWnd, message, wParam, lParam); return 0;/ Mesage handler for about box.LRESULT C

18、ALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)switch (message)case WM_INITDIALOG:return TRUE;case WM_COMMAND:if (LOWORD(wParam) = IDOK | LOWORD(wParam) = IDCANCEL) EndDialog(hDlg, LOWORD(wParam);return TRUE;break; return FALSE;運行結(jié)果顯示為:五、 實驗小結(jié) 在剛開始實驗的時候看到一大堆的實驗數(shù)據(jù)根本就不知道怎如何處理,但是在通

19、過查閱資料,懂得了要怎么做,然后遇到的問題就是自己對對稱中心等一些細節(jié)進行處理,通過多次的修改,終于完成了實驗,其實并沒有想象中的那么難,只要花心思,都能做好。 南昌大學(xué)實驗報告二姓名: 鄭俊 學(xué) 號: 6100410235 專業(yè)班級:計算機科學(xué)與技術(shù)103班 實驗類型:驗證 綜合設(shè)計 創(chuàng)新 實驗日期:2012-5 實驗成績: 一、實驗?zāi)康?:用樣條插值的方法生成字體T的輪廓2:C語言用Bezier曲線生成并編寫程序二、實驗基本原理和內(nèi)容X0Y0X1Y1X2Y2X3Y3149597149597149597345597345597761597365599368606368606406695368

20、606406695406695397702406695397702397702382681372676351676351676351676351676142676142676334391426763343933439324383243632434324343242835426444264442674426109420149408149408269372324310324208324208324112264371853718537165371494411966119668690659942994299149908706206202446012101210205028227333783337837

21、8123399180399256399256399327381372333422333422288468232491112512112512112512149597149597Bezier曲線生成:1、確定曲線的階次; 2 計算Bernstein基函數(shù)的表達式:2、生成字體5共分成21段,每段用了三次的代數(shù)方程,用Bezier曲線生成:當(dāng)n=3時其中3 、把Bezier曲線中的Pk寫成分量坐標(biāo)的形式4、 確定一合適的步長;控制t從0到1變化,求出一系列(x,y)坐標(biāo)點;將其用小線段順序連接起來。 5、 根據(jù)hello world !的源代碼進行改編加入生成5的算法,數(shù)據(jù)。三、主要儀器設(shè)備及耗材

22、PC微機Windows 操作系統(tǒng)Microsoft Visual Studio 6.0集成開發(fā)環(huán)境四、實驗程序及運行結(jié)果實驗程序代碼,其他部分與T字體一樣只是修改了對稱中心,和數(shù)據(jù)。/ 羅馬數(shù)字5.cpp : Defines the entry point for the application./得到5的函數(shù)double CPoint(double point0, double point1, double point2, double point3,double t)double x= point0* (1 - t) * (1 - t) * (1 - t) + point1 * 3 * t

23、 * (1 - t) * (1 - t) + point2 * 3 * (t * t) * (1 - t) + point3* (t * t * t);x=210-x;/以(105,105)為中心對稱點return x;/調(diào)用生成5的函數(shù)for(i = 0; i 1 ; i+=0.0005)SetPixel(hdc,600-CPoint(149,149,149,345,i),0.95*(CPoint(597,597,597,597,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(345,761,365,368,i),0.95*(CPoint(597,

24、597,599,606,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(368,406,368,406,i),0.95*(CPoint(606,695,606,695,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(406,397,406,397,i),0.95*(CPoint(695,702,695,702,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(397,382,372,351,i),0.95*(CPoint(702,681,676,676,i)+500

25、),RGB(255,0,0); SetPixel(hdc,600-CPoint(351,351,351,142,i),0.95*(CPoint(676,676,676,676,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(142,33,142,33,i),0.95*(CPoint(676,439,676,439,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(33,32,32,32,i),0.95*(CPoint(439,438,436,434,i)+500),RGB(255,0,0); SetPixel

26、(hdc,600-CPoint(32,32,35,44,i),0.95*(CPoint(434,428,426,426,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(44,74,109,149,i),0.95*(CPoint(426,426,420,408,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(149,269,324,324,i),0.95*(CPoint(408,372,310,208,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(324,324,

27、264,185,i),0.95*(CPoint(208,112,37,37,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(185,165,149,119,i),0.95*(CPoint(37,37,44,66,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(119,86,65,44,i),0.95*(CPoint(66,90,99,99,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(42,14,0,0,i),0.95*(CPoint(99,99,87,62,i

28、)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(0,0,46,121,i),0.95*(CPoint(62,24,0,0,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(121,205,282,333,i),0.95*(CPoint(0,0,27,78,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(333,378,399,399,i),0.95*(CPoint(78,123,180,256,i)+500),RGB(255,0,0); SetPixel(hdc,60

29、0-CPoint(399,399,381,333,i),0.95*(CPoint(256,327,372,422,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(333,288,232,112,i),0.95*(CPoint(422,468,491,512,i)+500),RGB(255,0,0); SetPixel(hdc,600-CPoint(112,112,149,149,i),0.95*(CPoint(512,512,597,597,i)+500),RGB(255,0,0); 運行結(jié)果如下:五、實驗小結(jié) 在做完T字體之后,原來認為5也應(yīng)該和簡

30、單,但在輸出的時候遇到很多的問題,首先輸出的5是反向的,進行調(diào)整,調(diào)整之后發(fā)現(xiàn)輸出的5看不見,又通過一些列的變換才輸出比較滿意的結(jié)果。做編程實驗最不能缺少的就是細心,還有多練習(xí)。 南昌大學(xué)實驗報告三姓名: 鄭俊 學(xué) 號: 6100410235 專業(yè)班級:計算機科學(xué)與技術(shù)103班 實驗類型:驗證 綜合設(shè)計 創(chuàng)新 實驗日期:2012-6 實驗成績: 一、 實驗?zāi)康?:用最小二乘法估計原子彈爆炸的能量2:用C語言編程實現(xiàn)最小二乘法二、實驗原理從爆炸開始的不同時刻t所對應(yīng)的蘑菇云半徑r(t),如下表所示tr(t)tr(t)tr(t)tr(t)tr(t)0.1011.10.8034.21.5044.43

31、.5361.115.0106.50.2419.90.9436.31.6546.03.8062.925.0130.00.3825.41.0838.91.7946.94.0764.334.0145.00.5228.81.2241.01.9348.74.3465.653.0175.00.6631.91.3642.83.2659.04.6197.362.0185.0*t的單位為ms,r的單位為m。根據(jù)最小二乘法,以及所給的數(shù)據(jù)可以列出如下方程組:m1*a+m2*b=k1; n1*a+n2*b=k2; ; ; ; ; ; =c; = .1、首先把時間和半徑分別放在兩個數(shù)組t1和t2中:2、根據(jù)上述公式;將此式帶入式 ,求得3、 通過求出b的值正確,在改變求E得公式,求出c的值,然后求出能量E。三、主要儀器設(shè)備及耗材PC微機Windows 操作系統(tǒng)Microsoft Visual Studio 6.0集成開發(fā)環(huán)境四、實驗程序及

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論