第一范文网 - 专业文章范例文档资料分享平台

北航数值分析报告计算实习报告材料一

来源:用户分享 时间:2025/5/16 6:31:21 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实用文案

int max_iterations;//最大值迭代次数

int abs_min_iterations;//求绝对值最小的迭代次数 };

int main() {

FinalValue main_num= {0,0,0,0}; double temp;//两值交换中间变量 int temp1;

double u[501]={0};//,y[501];//为u0赋初值 double Norm_u=0;//范数 double C[5][501] = {0}; InitC(C);//初始化C int i=0,*iterations; Initu(u);

iterations = &main_num.min_iterations; main_num.min = Get_Fabs_Eigenvalue(C[2],u,iterations);//将求得的绝对值最大特征值放到min变量中

main_num.abs_max = main_num.min; A_sub_minI(C[2],main_num.min); for(i=0;i<501;i++) u[i]=i+1;

iterations = &main_num.max_iterations; main_num.max = Get_Fabs_Eigenvalue(C[2],u,iterations);//将求得的绝对值最大特征值放到min变量中

main_num.max += main_num.min; if(main_num.min>main_num.max) {

temp = main_num.min;

main_num.min = main_num.max; main_num.max = temp;

temp1 = main_num.min_iterations;

main_num.min_iterations = main_num.max_iterations; main_num.max_iterations = temp1; }

printf(\最小特征值为:%.12e,迭代次数为:%d\\n\ printf(\最大特征值为:%.12e,迭代次数为:%d\\n\ /**********************************/ /*以下利用反幂法求解模最小的特征值*/ /**********************************/ InitC(C);//初始化C Initu(u);

标准文档

实用文案

DoolittleC(C,501,2,2); main_num.detA = detA(C);

iterations = &main_num.abs_min_iterations;

main_num.abs_min = Get_min_Eigenvalue(C,u,501,2,2,iterations); main_num.cond2 = fabs(main_num.abs_max/main_num.abs_min);

printf(\绝对值最小特征值为:%.12e,迭代次数为:%d\\n\ printf(\的行列式为:%.12e;\

printf(\的条件数cond(A)2为:%.12e\\n\ /**********************************************/ /*以下利用反幂法求与数列Uk中元素最相近的特征值*/ /**********************************************/ double Uk[39];//保存Uk的值并保存与Uk[i]最接近的λ double B[39]; int diedai;

iterations = &diedai; for( i=1;i<=39;i++) {

Uk[i-1] = main_num.min + i*(main_num.max - main_num.min)/40; InitC(C); Initu(u);

for(int j =0;j<501;j++) C[2][j] -= Uk[i-1]; DoolittleC(C,501,2,2);

B[i-1] = Get_min_Eigenvalue(C,u,501,2,2,iterations); B[i-1] +=Uk[i-1];

printf(\μ%-2d=%-3.12e,与μ%-2d最相近的特征=%-3.12e\\n\ }

return 0; }

double detA(double C[5][501]) {

int i =0; double e =1;

for(i =0;i<501;i++) e*=C[2][i]; return e; }

void InitMatrix(double *p) {

标准文档

值λ实用文案

for(int i=1;i<=501;i++) {

*p=(1.64-0.024*i)*sin(0.2*i)-0.64*exp(0.1/i); p++; } }

void Initu(double *p) {

for(int i=1;i<=501;i++) {

if(i<=500) *p=0; else *p=1; p++; } // *p=1; }

void A_sub_minI(double *a,double min) {

for(int i=1;i<=501;i++) {

*a=*a-min; a++; } }

double NeiJi(double *a,double *b) {

double e=0.0;

for(int i=0;i<501;i++) {

e=e+(*a)*(*b); a++; b++; }

return e; }

void get_y(double *y,double *u) { double Norm_u=sqrt(NeiJi(u,u)); for(int i=0;i<501;i++) {

标准文档

实用文案

*y = *u/Norm_u; y++; u++; } }

void get_u(double *u,double *y,double *a) {

u[0]=a[0]*y[0]+b*y[1]+c*y[2];

u[1]=b*y[0]+a[1]*y[1]+b*y[2]+c*y[3]; for(int i=2;i<499;i++)

u[i]=c*y[i-2]+b*y[i-1]+a[i]*y[i]+b*y[i+1]+c*y[i+2]; u[499]=c*y[497]+b*y[498]+a[499]*y[499]+b*y[500]; u[500]=c*y[498]+b*y[499]+a[500]*y[500]; }

void InitC(double C[5][501]) {

int i;

for(i = 2;i < 501;i++) {

C[0][i] = -0.064; C[4][i-2] = -0.064; }

for(i = 1;i < 501;i++) {

C[1][i] = 0.16; C[3][i-1] = 0.16; }

for(i = 1;i <= 501;i++) {

C[2][i-1] = (1.64-0.024*i)*sin(0.2*i)-0.64*exp(0.1/i); } }

double Get_Fabs_Eigenvalue(double *a,double *u,int *iterations) {

double y[501],B_k0=0,B_k1=0; double wucha; int i=0; while(1) {

++i;

标准文档

北航数值分析报告计算实习报告材料一.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c95ies86bfu3cwgi893aj3uh255c6he00c6y_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top