版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实 验 报 告实验课程: 数值分析 学生姓名: 学 号: 专业班级: 2011年6月 11日南昌大学实验报告 -(1)利用贝塞尔插值绘制字母“t”学生姓名 学 号 专业班级:实验类型: 验证 综合 设计 创新 实验日期:实验成绩: 1、 实验目的掌握贝塞尔插值方法,并能够利用该方法实现曲线的制作。2、 实验内容利用贝塞尔曲线的插值方法,并根据相关数据,设计程序制作字母“t”和”5”。3、 实验要求1根据实验中所给的坐标绘制出该字母“t”和”5”。四、主要实验步骤及处理结果(1)通过vc+6.0建立一个“hello world”程序,在其中的源文件中加入“t”和“5”的实验数据和代码,调用api
2、函数中的贝塞尔函数,绘出“t”和“5”的字形 。(2)在函数lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)后添加实验数据和代码如下:hp153=237,42,237,542,237,542,237,627,226,638,143,643,143,643,143,662,143,662, 143,662,435,662,435,662,435,662,435,643,435,643,353,639,339,626,339,553, 339,554,339,42,339,42,507,4
3、2,529,60,552,170,552,170,576,170,576,170, 576,170,570,0,570,0,570,0,6,0,6,0,6,0,0,170,0,170, 0,170,24,170,24,170,48,60,71,42,183,42,183,42,237,42,237,42;实验添加代码如下:movetoex(hdc,237,42,null); polybezierto(hdc,hp0,3); polybezierto(hdc,hp1,3); polybezierto(hdc,hp2,3); polybezierto(hdc,hp3,3); polybeziert
4、o(hdc,hp4,3); polybezierto(hdc,hp5,3); polybezierto(hdc,hp6,3); polybezierto(hdc,hp7,3); polybezierto(hdc,hp8,3); polybezierto(hdc,hp9,3); polybezierto(hdc,hp10,3); polybezierto(hdc,hp11,3); polybezierto(hdc,hp12,3); polybezierto(hdc,hp13,3); polybezierto(hdc,hp14,3)绘制”t”字形实验实验代码如下:#include stdafx.h
5、#include t.h#define max_loadstring 100/ global variables:hinstance hinst;/ current instancetchar sztitlemax_loadstring;/ the title bar texttchar szwindowclassmax_loadstring;/ the title bar text/ foward declarations of functions included in this code module:atommyregisterclass(hinstance hinstance);bo
6、olinitinstance(hinstance, int);lresult callbackwndproc(hwnd, uint, wparam, lparam);lresult callbackabout(hwnd, uint, wparam, lparam);lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)int wmid, wmevent;paintstruct ps;hdc hdc;point hp153=237,42,237,542,237,542,237,627,226,
7、638,143,643,143,643,143,662,143,662,143,662,435,662,435,662,435,662,435,643,435,643,353,639,339,626,339,553,339,554,339,42,339,42,507,42,529,60,552,170,552,170,576,170,576,170,576,170,570,0,570,0,570,0,6,0,6,0,6,0,0,170,0,170,0,170,24,170,24,170,48,60,71,42,183,42,183,42,237,42,237,42;point t_shape;
8、tchar szhellomax_loadstring;loadstring(hinst, ids_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_e
9、xit: destroywindow(hwnd); break;default: return defwindowproc(hwnd, message, wparam, lparam);break;case wm_paint:hdc = beginpaint(hwnd, &ps);/ todo: add any drawing code here./*point hp214=6,0,570,0,576,170,552,170,529,60,507,42,339,42,339,626,353,639,435,643,435,662,143,662,143,643,226,638,237,627,
10、237,42,71,42,48,60,24,170,0,170,6,0;*/rect rt;movetoex(hdc,237,42,null); polybezierto(hdc,hp0,3); polybezierto(hdc,hp1,3); polybezierto(hdc,hp2,3); polybezierto(hdc,hp3,3); polybezierto(hdc,hp4,3); polybezierto(hdc,hp5,3); polybezierto(hdc,hp6,3); polybezierto(hdc,hp7,3); polybezierto(hdc,hp8,3); po
11、lybezierto(hdc,hp9,3); polybezierto(hdc,hp10,3); polybezierto(hdc,hp11,3); polybezierto(hdc,hp12,3); polybezierto(hdc,hp13,3); polybezierto(hdc,hp14,3);实验结果如下:#include stdafx.h#include t.h#define max_loadstring 100/ global variables:hinstance hinst;/ current instancetchar sztitlemax_loadstring;/ the
12、 title bar texttchar szwindowclassmax_loadstring;/ the title bar text/ 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,
13、 lparam);lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)int wmid, wmevent;paintstruct ps;hdc hdc;point fi213=149,105,149,105,345,105,761,105,365,103,368,96,406,7,368,96,406,7,397,0,406,7,397,0,382,21,372,26,351,26,351,26,351,26,142,26,33,263,142,26,33,263,32,264,32,26
14、6,32,268,32,274,35,276,44,276,74,276,109,282,149,294,269,330,324,392,324,494,324,590,264,665,185,665,165,665,149,658,119,636,86,612,65,603,42,603,14,603,0,615,0,640,0,678,46,702,121,702,205,702,282,675,333,624,378,579,399,522,399,446,399,375,381,330,333,280,288,234,232,211,112,190,112,190,149,105,14
15、9,105;tchar szhellomax_loadstring;loadstring(hinst, ids_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
16、 idm_exit: destroywindow(hwnd); break;default: return defwindowproc(hwnd, message, wparam, lparam);break;case wm_paint:hdc = beginpaint(hwnd, &ps);/ todo: add any drawing code here.movetoex(hdc,149,105,null);polybezierto(hdc,fi0,3); polybezierto(hdc,fi1,3); polybezierto(hdc,fi2,3);polybezierto(hdc,f
17、i3,3); polybezierto(hdc,fi4,3);polybezierto(hdc,fi5,3);polybezierto(hdc,fi6,3);polybezierto(hdc,fi7,3);polybezierto(hdc,fi8,3);polybezierto(hdc,fi9,3);polybezierto(hdc,fi10,3);polybezierto(hdc,fi11,3);polybezierto(hdc,fi12,3);polybezierto(hdc,fi13,3);polybezierto(hdc,fi14,3);polybezierto(hdc,fi15,3)
18、;polybezierto(hdc,fi16,3);polybezierto(hdc,fi17,3);polybezierto(hdc,fi18,3);polybezierto(hdc,fi19,3);polybezierto(hdc,fi20,3);rect rt;getclientrect(hwnd, &rt);drawtext(hdc, szhello, strlen(szhello), &rt, dt_center);endpaint(hwnd, &ps);break;case wm_destroy:postquitmessage(0);break;default:return def
19、windowproc(hwnd, message, wparam, lparam); return 0;(3)在代码lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)下添加实验数据如下:hp153=237,42,237,542,237,542,237,627,226,638,143,643,143,643,143,662,143,662,143,662,435,662,435,662,435,662,435,643,435,643,353,639,339,626,339,553,339,
20、554,339,42,339,42,507,42,529,60,552,170,552,170,576,170,576,170,576,170,570,0,570,0,570,0,6,0,6,0,6,0,0,170,0,170,0,170,24,170,24,170,48,60,71,42,183,42,183,42,237,42,237,42;添加实验代码如下:movetoex(hdc,237,42,null); polybezierto(hdc,hp0,3); polybezierto(hdc,hp1,3); polybezierto(hdc,hp2,3); polybezierto(hd
21、c,hp3,3); polybezierto(hdc,hp4,3); polybezierto(hdc,hp5,3); polybezierto(hdc,hp6,3); polybezierto(hdc,hp7,3); polybezierto(hdc,hp8,3); polybezierto(hdc,hp9,3); polybezierto(hdc,hp10,3); polybezierto(hdc,hp11,3); polybezierto(hdc,hp12,3); polybezierto(hdc,hp13,3); polybezierto(hdc,hp14,3); 南昌大学实验报告 -
22、(2)迭代法求方程组的解学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 11.6.11实验成绩: 1、 实验目的1.掌握雅克比迭代方法求线性方程组的解2.掌握高斯-赛德尔迭代求解线性方程组。二、实验内容编写程序实现雅克比迭代和高斯-赛德尔迭代求线性方程组3、 实验要求1.了解迭代法求解线性方程的要求2.了解迭代法求解线性方程组的优点和缺点3.通过改进的迭代法理解各种算法的迭代速度四、主要实验步骤及处理结果雅克比算法设计思想:首先 需要对方程组进行变换 使其变成x(k+1)=bx(k)+f的形式,使用一个二维数组ann存放系数矩阵,使用一个一维数组bn存放解向量
23、(矩阵),再分别用k,k1两个一维矩阵存放迭代的解向量。最后按照雅克比迭代思想不断进行迭代直到满足所需精度.雅克比迭代主要代码:#define control 13e-9 /迭代所要达到的精度#define n 100void muti_matrix(double an,double b,int row);/该函数为矩阵相乘是迭代的主调函数之一void add_matrix(double a,double b,int row);/该函数实现矩阵相加,也是主调函数double selectmax_row(double a,double b,int n);/求矩阵的行范数,当范数达到所需精度时迭代
24、终止。bool is_ok(double an,int n);/判断迭代是否收敛int main()double ann=0;/存放初始时的系数矩阵(为进行转换)double bn=0;/存放各方程式的解向量double kn=0;/存放x初始向量double k1n;/存放每次计算的前一个解向量,主要为计算行范数.int i,j;int n;double value=0;double condition =10000;printf(请输入矩阵的阶数:);scanf(%d,&n);printf(请输入你要输入的各方程组的系数(按矩阵方式输入):n);for(i=0;in;i+)printf(t
25、);for(j=0;jn;j+)scanf(%lf,&aij);printf(请输入各方程式的解向量:nt);for(i=0;in;i+)scanf(%lf,&bi);for(i=0;in;i+) /对初始的系数矩阵进行转换bi=bi/aii;value=aii;for(j=0;jn;j+)aij=-aij/value;aii=0;printf(输出计算后的初始矩阵:n);for(i=0;in;i+) /输出转换后的系数矩阵printf(n);for(j=0;jn;j+)printf(%.3lf ,aij);printf(n);if(! is_ok(a,n)/判断迭代是否满足迭代的条件prin
26、tf(迭代不收敛n);exit(0);printf(请输出计算后的b向量(也就是f)n);for(i=0;in;i+)printf(%.3lf ,bi);printf(n);printf(请输入迭代的初始矩阵k2:n);for(i=0;icontrol) /condition为精度要求的控制条件for(i=0;in;i+)k1i=ki;muti_matrix(a,k,n);add_matrix(k,b,n);condition=selectmax_row(k,k1,n);printf(请输出计算后的初始矩阵:n);for(i=0;in;i+)printf(%.8lf ,ki);printf(矩阵的范数:%.8lf , selectmax_row(k,k1,n);printf(n);return 0;void muti_matrix(double an,double b,int n)double abn;int i,j,k;double sum=0;for(i=0;in;i+)for(k=0;kn;k+)sum=sum+aik*bk;abi=sum;sum=0;for(i=0;in;i+)bi=abi;void add_matrix(double a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国风力发电机主轴行业市场发展趋势及投资战略研究报告
- 2025-2030年中国锌锰扣式电池行业市场规模分析及投资策略研究报告
- 2025-2030年中国金属锶行业发展动态及投资规划研究报告
- 2025年度食品供应合同(含卫生标准)2篇
- 再生橡胶在建筑隔热材料中的应用考核试卷
- 发酵调味品的标准化与规范化生产考核试卷
- 医疗设备租赁设备召回与不良事件处理考核试卷
- 体育用品行业法律法规遵守考核试卷
- 医疗实验室有害物质处理与排放考核试卷
- 信托与文化传承保护项目考核试卷
- 2025年度土地经营权流转合同补充条款范本
- 南通市2025届高三第一次调研测试(一模)地理试卷(含答案 )
- Python试题库(附参考答案)
- 聚酯合成副反应介绍
- DB37-T 1342-2021平原水库工程设计规范
- 电除颤教学课件
- 广东省药品电子交易平台结算门户系统会员操作手册
- DB32T 3960-2020 抗水性自修复稳定土基层施工技术规范
- 大断面隧道设计技术基本原理
- 41某31层框架结构住宅预算书工程概算表
- 成都市国土资源局关于加强国有建设用地土地用途变更和
评论
0/150
提交评论