数值分析实验报告Word下载.docx

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

数值分析实验报告Word下载.docx

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

数值分析实验报告Word下载.docx

一、实验目的

用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);

SetViewportOrg(350,500);

floati=;

for(i=0;

i<

1;

i+=

{

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));

SetPixel(CalPoint(CPoint(143,19),CPoint(143,19),CPoint(143,0),CPoint(143,0),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(143,0),CPoint(143,0),CPoint(435,0),CPoint(435,0),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(435,0),CPoint(435,0),CPoint(435,19),CPoint(435,19),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(435,19),CPoint(353,23),CPoint(339,36),CPoint(339,109),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(339,109),CPoint(339,108),CPoint(339,620),CPoint(339,620),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(339,620),CPoint(507,620),CPoint(519,662),CPoint(552,492),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(552,492),CPoint(552,492),CPoint(576,492),CPoint(576,492),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(576,492),CPoint(576,492),CPoint(570,662),CPoint(570,662),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(570,662),CPoint(570,662),CPoint(6,662),CPoint(6,662),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(6,662),CPoint(6,662),CPoint(0,492),CPoint(0,492),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(0,492),CPoint(0,492),CPoint(24,492),CPoint(24,492),i),RGB(255,0,0));

SetPixel(CalPoint(CPoint(24,492),CPoint(48,662),CPoint(71,620),CPoint(183,620),i),RGB(255,0,0));

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);

returnpt;

}

运行结果为:

南昌大学实验报告二

网络工程092

用C语言或C++语言编程实现高斯消去法。

在高斯消去法中,咱们试图将原n元线性方程组消减为三角形(又称上三角形)。

在三角矩阵中,对角线以下的矩阵元素的系数均为0。

对高斯消去法而言,最有效的是各行经标准化处置后对角线元素均为1的三角矩阵。

高斯消去法的算法如下:

1.将原方程组变换为标准矩阵;

2.用回代法求解xi.

高斯函数的算法:

1.先假设方程组有惟一解。

2.P初始化为首行的下标。

3.当可能有唯一解且p<

最后一行的下标时重复。

4.用最大主元素策略确信主元素。

5.假设仍可能有惟一解

6.主元素行标准化。

7.消去主元素以下的系数。

8.对下一行继续处置(++p)。

9.假设最后系数为零。

10.没有惟一解。

不然有惟一解

实验程序:

#include<

iostream>

>

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:

endl;

cin>

n;

inputa[i][j]:

for(i=0;

i<

i++)

for(j=0;

j<

j++)

{

cin>

a[i][j];

}

}

inputb[i]:

b[i];

/*******运算进程*******/

flag=1;

for(k=0;

k<

k++)/*---选主元素---*/

d=a[k][k];

h=k;

for(l=k;

l<

l++)

if(fabs(a[l][k])>

fabs(d))

{

d=a[l][k];

h=l;

}

if(h!

=k)

for(j=k;

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];

a[i][j]=a[i][j]-m[i][k]*a[k][j];

b[i]=b[i]-m[i][k]*b[k];

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;

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["

]="

x[i]<

else

cout<

wrong!

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

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

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

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