- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
矩阵与数值分析编程实验报告,数值分析实验报告,数值分析上机实验报告,矩阵论与数值分析,矩阵论与数值分析pdf,矩阵与数值分析,矩阵数值分析,数值分析矩阵论,数值分析实验,数值分析上机实验
《矩阵与数值分析》实验报告
对于数列,有如下两种生成方式
1、首项为,递推公式为;
2、前两项为,递推公式为;
给出利用上述两种递推公式生成的序列的第50项。
解:首先对递推公式1,用C++编程如下:
#include iostream.h
void main()
{
double A[50]={1.0,1.0/3};
for (int i=1;i50;i++)
{
A[i]=1.0/3*A[i-1];
cout第i+1项的值:A[i]endl;
}
}
运行结果如下图所示:
对递推公式2,用C++编程如下:
#include iostream.h
void main()
{
double A[50]={1.0,1.0/3};
for (int i=2;i50;i++)
{
A[i]=10.0/3*A[i-1]-A[i-2];
cout第i+1项的值:A[i]endl;
}
}
运行结果如下图所示:
利用迭代格式
及Aitken加速后的新迭代格式求方程在内的根
解:利用一般迭代格式用C++编程代码如下:
#includeiostream
#includemath.h
using namespace std;
double Fun(double x);
int main()
{
double a,B,Number,r=1.0e-6;
a=1.0;
Number=0;
do
{
B=a;
a=Fun(a);
Number++;
} while((a-B)r||(a-B)-r);
coutThe formal iterative way!endl;
coutIteration Numbers is Numberendl;
coutThe answer is aendl; //输出迭代次数和结果
return 0;
}
double Fun(double x)
{
return sqrt(10.0/(x+4));
}
计算结果如下图所示:
用Aiken加速后的新迭代格式求解用C+编程代码如下:
#includeiostream
#includemath.h
using namespace std;
double Function(double x)//定义函数
{
return sqrt(10.0/(x+4));
}
int main()
{
double a,i=0,a1,y1,y2,r=1.0e-6;
a=1.0;
do
{
a1=a;
y1=Function(a);
y2=Function(y1);
a=y2-(y2-y1)*(y2-y1)/(y2-y1*2+a);
i++;
}while((a-a1)r||(a-a1)-r);
cout用Aitken迭代法计算结果如下:\n;
cout迭代次数为: iendl;
cout计算结果为: aendl;//输出迭代次数和结果
return 0;
}
解线性方程组
分别Jacobi迭代法和Gauss-Seidel迭代法求解线性方程组
迭代法计算停止的条件为:.
解:1Jacobi迭代法解方程,代码如下:
#include iostream
#include math.h
using namespace std;
void main()
{
double a[4][4]={{6.0,2.0,1.0,-2.0},{2.0,5.0,0.0,-2.0},
{-2.0,0.0,8.0,5.0},{1.0,3.0,2.0,7.0}};
double b[4]={4.0,7.0,-1.0,0.0}, x[4]={0},x1[4],r=1.0e-6,t,s;
int i,j,c,d,e=0;
cout.precision(8);
do
{
for (c=0;c4;c++)
{
x1[c]=x[c];
}
for (i=0;i4;i++)
{
s=0.0;
for (j=0;j4;j++)
{
if(j!=i)
s+=a[i][j]*x[j];
}
x[i]=(b[i]-s)/a[i][i];
}
t=fabs(x[0]-x1[0]);
for (d=0;d4;d++)
{
coutx[d] ;
if (tfabs(x[d]-x1[d]))
t=fabs(x[d]-x1[d]);
}
coutendl;
e++;
if(tr)
break;
} while (1);
cout
文档评论(0)