数值分析实验报告.docx

上传人:b****3 文档编号:1448271 上传时间:2022-10-22 格式:DOCX 页数:9 大小:82.81KB
下载 相关 举报
数值分析实验报告.docx_第1页
第1页 / 共9页
数值分析实验报告.docx_第2页
第2页 / 共9页
数值分析实验报告.docx_第3页
第3页 / 共9页
数值分析实验报告.docx_第4页
第4页 / 共9页
数值分析实验报告.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

数值分析实验报告.docx

《数值分析实验报告.docx》由会员分享,可在线阅读,更多相关《数值分析实验报告.docx(9页珍藏版)》请在冰豆网上搜索。

数值分析实验报告.docx

数值分析实验报告

实验报告

 

实验课程:

《数值分析》

学生姓名:

谢焕进

学号:

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!

"<

}

运行结果为:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1