数值分析实验报告.docx
- 文档编号:1448271
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:9
- 大小:82.81KB
数值分析实验报告.docx
《数值分析实验报告.docx》由会员分享,可在线阅读,更多相关《数值分析实验报告.docx(9页珍藏版)》请在冰豆网上搜索。
数值分析实验报告
实验报告
实验课程:
《数值分析》
学生姓名:
谢焕进
学号:
2
专业班级:
网络工程092
2011年06月02日
南昌大学实验报告一
学生姓名:
谢焕进学号:
92专业班级:
网络工程092
实验类型:
■验证□综合□设计□创新实验日期:
实验成绩:
一、实验目的
用C语言或C++编程显示字母T。
二、实验大体原理和内容
Bezier曲线生成:
一、确信曲线的阶次;2计算Bernstein基函数的表达式:
B0,3(t)﹦(1-t)3;B1,3(t)﹦3t(1-t)2;B2,3(t)﹦3t2(1-t);B3,3(t)﹦t3
3把Bezier曲线中的Pk写成份量坐标的形式
4确信一适合的步长;操纵t从0到1转变,求出一系列(x,y)坐标点;将其用小线段顺序连接起来。
算法描述:
关于二维平面的情形,只有x,y坐标分量,能够给出四点三次Bezier曲线如下的算法描述:
输入:
阶次,3;操纵极点:
4个,(x0,y0),…,(x3,y3)
begin
x=x0
y=y0
moveto(x,y)
fort﹦0to1step∆t
x﹦B0,3(t)x0﹢B1,3(t)x1﹢B2,3(t)x2﹢B3,3(t)x3
y﹦B0,3(t)y0﹢B1,3(t)y1﹢B2,3(t)y2﹢B3,3(t)y3
lineto(x,y)
endfor
end
三次Bezier曲线例子:
设在平面上给定的7个操纵点坐标别离为:
A(100,300),
B(120,200),C(220,200),D(270,100),E(370,100),F(420,200),G(420,300)。
画出其曲线。
三、要紧仪器设备及耗材
PC机一台
四、实验程序及运行结果
实验程序:
voidCCharTView:
:
OnDraw(CDC*pDC)
{
CCharTDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
if(!
pDoc)
return;
pDC->SetMapMode(MM_LOENGLISH);
pDC->SetViewportOrg(350,500);
floati=;
for(i=0;i<1;i+=
{
pDC->SetPixel(CalPoint(CPoint(237,620),CPoint(237,620),CPoint(237,120),CPoint(237,120),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(237,120),CPoint(237,35),CPoint(226,24),CPoint(143,19),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(143,19),CPoint(143,19),CPoint(143,0),CPoint(143,0),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(143,0),CPoint(143,0),CPoint(435,0),CPoint(435,0),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(435,0),CPoint(435,0),CPoint(435,19),CPoint(435,19),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(435,19),CPoint(353,23),CPoint(339,36),CPoint(339,109),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(339,109),CPoint(339,108),CPoint(339,620),CPoint(339,620),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(339,620),CPoint(507,620),CPoint(519,662),CPoint(552,492),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(552,492),CPoint(552,492),CPoint(576,492),CPoint(576,492),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(576,492),CPoint(576,492),CPoint(570,662),CPoint(570,662),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(570,662),CPoint(570,662),CPoint(6,662),CPoint(6,662),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(6,662),CPoint(6,662),CPoint(0,492),CPoint(0,492),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(0,492),CPoint(0,492),CPoint(24,492),CPoint(24,492),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(24,492),CPoint(48,662),CPoint(71,620),CPoint(183,620),i),RGB(255,0,0));
pDC->SetPixel(CalPoint(CPoint(183,620),CPoint(183,620),CPoint(237,620),CPoint(237,620),i),RGB(255,0,0));
}
CPointCCharTView:
:
CalPoint(CPointpoint0,CPointpoint1,CPointpoint2,CPointpoint3,floatt)
{
CPointpt;
=*(1-t)*(1-t)*(1-t)+*3*t*(1-t)*(1-t)+*3*(t*t)*(1-t)+*(t*t*t);
=*(1-t)*(1-t)*(1-t)+*3*t*(1-t)*(1-t)+*3*(t*t)*(1-t)+*(t*t*t);
returnpt;
}
}
运行结果为:
南昌大学实验报告二
学生姓名:
谢焕进学号:
92专业班级:
网络工程092
实验类型:
■验证□综合□设计□创新实验日期:
实验成绩:
一、实验目的
用C语言或C++语言编程实现高斯消去法。
二、实验大体原理和内容
在高斯消去法中,咱们试图将原n元线性方程组消减为三角形(又称上三角形)。
在三角矩阵中,对角线以下的矩阵元素的系数均为0。
对高斯消去法而言,最有效的是各行经标准化处置后对角线元素均为1的三角矩阵。
高斯消去法的算法如下:
1.将原方程组变换为标准矩阵;
2.用回代法求解xi.
高斯函数的算法:
1.先假设方程组有惟一解。
2.P初始化为首行的下标。
3.当可能有唯一解且p<最后一行的下标时重复。
4.用最大主元素策略确信主元素。
5.假设仍可能有惟一解
6.主元素行标准化。
7.消去主元素以下的系数。
8.对下一行继续处置(++p)。
9.假设最后系数为零。
10.没有惟一解。
不然有惟一解
三、要紧仪器设备及耗材
PC机一台
四、实验程序及运行结果
实验程序:
#include
#include<>
usingnamespacestd;
voidmain()
{
inti,j,k,n,l,h,flag;
floata[100][100],b[100],m[100][100],x[100],y[100],d,t;
cout<<"Inputn:
"< cin>>n; cout<<"inputa[i][j]: "< for(i=0;i { for(j=0;j { cin>>a[i][j]; } } cout<<"inputb[i]: "< for(i=0;i { cin>>b[i]; } /*******运算进程*******/ flag=1; for(k=0;k { d=a[k][k]; h=k; for(l=k;l { if(fabs(a[l][k])>fabs(d)) { d=a[l][k]; h=l; } } if(h! =k) { for(j=k;j { t=a[h][j];a[h][j]=a[k][j];a[k][j]=t; } t=b[k];b[k]=b[h];b[h]=t; } if(a[k][k]==0) flag=0; for(i=k+1;i { if(flag==0)break; m[i][k]=a[i][k]/a[k][k]; for(j=k;j { a[i][j]=a[i][j]-m[i][k]*a[k][j]; } b[i]=b[i]-m[i][k]*b[k]; } } cout<<"Result: "< if(flag! =0)/*******回代进程*******/ { x[n-1]=b[n-1]/a[n-1][n-1]; for(i=n-2;(i>0)||(i==0);i--) { y[i]=0; for(j=i+1;j { y[j]=y[j-1]+a[i][j]*x[j]; } x[i]=(b[i]-y[j-1])/a[i][i]; } for(i=0;i { cout<<"x["< } } else cout<<"wrong! "< } 运行结果为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 实验 报告