数值分析作业一

数值分析作业一

ID:46242152

大小:204.45 KB

页数:11页

时间:2019-11-22

数值分析作业一_第1页
数值分析作业一_第2页
数值分析作业一_第3页
数值分析作业一_第4页
数值分析作业一_第5页
资源描述:

《数值分析作业一》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数值分析作业一姓名:李永学号:SY1217236学院:仪器科学与光电技术学院数值分析作业一考虑到矩阵A的特殊形状,所以只需要保存对角线舫和b、C的数值就可以完整的表述矩阵的所有信息和元素。因为雅可比方法会把为零的元素变成非零元素,不能利用矩阵的特殊性状,所以采用幕乘法和反幕法,用幕乘法计算出模最人的特征值,用反幕法计算出模最小的特征值。模最大的特征值不是八就是Xsoio然后利用幕乘法和原点平移的方法,即川I作为矩阵來进行幕乘法计算。与山相似的特征值利川反幕法和原点平移法进行计"max算,BP:A-UkI作为矩阵来进行反幕法计算。主程序的流程如下:幕

2、乘法子函数的流程如下:反幕法了函数的流程如下:LU分解子函数的流程如下:Doolittle子函数的流程如F:#include#include#include#include/*LU分解子函数*/doubleLU(doublea[],doubleb,doublec,doubleL[][2],doubleU[][3]){inti;/*定义循环变量*/doubledet;/*定义行列式值*/dct=1.0;U[0][0]=a[0];U[O][lJ=b;U[0][2]=c;L[0][

3、0]=b/U[0][0];L[l][0]=c/U[0][0];U[l][0]=a[l]-L[0][0]*U[0][l];U[l][l]=b丄[0][0]*U[0]⑵;U[l][2]=c;L[1][1]=(b-L[1][0]*U[0][1])/U[1][0];/^DoolittleLU分解*/for(i=2;i<499;i++)U[i][0]=a[i]・L[i・l][0]*U[i・2]⑵-L[i-l][l]*U[i-l][l];U[i][l]=b-L[i-l][l]*U[i-l][2];U[i][2]=c;L[i][0]=c/U[i-l][0];L[

4、i][1]=(b-L[i][0]*U[i-1][1])/U[i][0];LL499J[0J=c/U[498JL0J;U[499][0]=a[499]-L[498][0]*Ul497][2]-L[498][l]*U[498][l];U[499][1]=b-L[498][1]*U[498][2];L[499][1]=(b-L[499][0]*U[498][1])/U[499][0];U[500][0]=a[500]-L[499][0]*U[498][2]-L[499][l]*U[499][l];for(i=0;i<501;i++){det*=U[i][

5、()l;returndet;/^DoolittleLU分解法子函数,传入参数为归一化后的uk、u0,得到的方程组的数值通过u0返回,返回行列式值*/intDoolittle(doubleuk[],doubleuO[J,doubleL[][2J,doubleU[][3]){inti;/*定义循环变:fi*/doubley[501];/*定义x*/y[OJ=ukLOJ;y[lJ=uk[l]-LlOJ[OJ*ylO];for(i=2;i<501;i++){y[i]=uk[i]-L[i-l][0]*y[i-2]-L[i-l][l]*y[i-l];)uO[5

6、OO]=y[5OO]/U[5OO][O];u0[499]=(y[499]-U[499][l]*u0[500])/U[499][0];for(i=498;i>=0;i-){u0[i]=(y[i]-U[i][1]*u0[i+1]-U[i][2]*u0[i+2])/U[i][0];}return1;/*幕乘法子函数,向量矩阵A,迭代初始向量u0,楮度jd为传入参数,特征值Wkl作为返回参数,特征向量直接由u0获得*/doublemichcng(doublca[],doubleb,doublec,doubleu0[],doublejd)inti;/*定义循

7、环变量*/doubleyk=0;/*定义向量范数值*/doubleukL501J;/*定义迭代向量*/doubletek(),tekl;/*定义特征值*/tekl=0;do{tckO=tck1;tek1=0.0;yk=0.0;for(i=0;i<501;i++)/*计算向量的归一化范数值*/{yk+=u0[i]*u0[i];}yk=sqrt(yk);if(yk==0){printf(H归一化为零”);break;}for(i=0;i<501;i++)/*归一化向量*/{ukfi]=u()(i]/yk;}for(i=0;i<501;i++){if(i

8、>2&&iv499)u0[i]=c*uk[i-2]+b*uk[i-1]+a[i]*uk[i]+b*uk[i+1]+c*uk

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。