数值分析课程设计报告Word文档下载推荐.docx
《数值分析课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数值分析课程设计报告Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
![数值分析课程设计报告Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/6/9565ecc4-d9d8-4811-b198-b728fa0d84c4/9565ecc4-d9d8-4811-b198-b728fa0d84c41.gif)
③通过行列变换把矩阵C的前n*n部分化成单位阵;
④把C的后n*n部分赋给B,则B就是所求的逆矩阵。
三.程序清单
functionB=inv_dm(A)
%用途:
列主元高斯消去法求逆矩阵
%A----------原矩阵
%B----------逆矩阵
[n,n]=size(A);
B=zeros(n,n);
C=zeros(n,2*n);
fori=1:
n
forj=1:
C(i,j)=A(i,j);
end
fork=n+1:
2*n
ifk~=n+i
C(i,k)=0;
else
C(i,k)=1;
end
%构造C=[A+E]
flag=1:
n;
%记录行顺序向量
n-1
t=find(abs(C(i:
n,i))==max(abs(C(i:
n,i))));
%寻找最大元素
t=t
(1)+i-1;
flag(i)=t;
ift~=i
p=C(i,:
);
C(i,:
)=C(t,:
C(t,:
)=p;
%换位
ifC(i,i)==0
error('
矩阵不可逆'
C(i,:
)=C(i,:
)/C(i,i);
forj=i+1:
C(j,:
)=C(j,:
)-C(i,:
)*C(j,i);
C(n,:
)=C(n,:
)/C(n,n);
%因为循环结构问题,所以C[n,:
]并没有化一,所以在最后才把最后一行化一
fori=n:
-1:
2
i-1
%通过行变换,使得C的前n列为单位阵形式
1
t=flag(i);
p=C(:
t);
C(:
t)=C(:
i);
i)=p;
%通过行变化矩阵还原行的顺序
B(i,j)=C(i,n+j);
%将C的后n列赋给B矩阵
四.程序运行操作过程与输出结果
操作时间
①给出所要求逆的矩阵A:
②执行inv_dm(A)
③执行inv(A)
④检验正确性
显然从数量级上我们可以容易判断这是一个单位阵,负号的出现是由于计算机默认误差造成细小误差。
[设计题二]
对于迭代法
,它显然有不动点
。
试不用判定收敛阶的定理,设计1至2个数值实验(其中必须有一个不是直接用收敛阶的定义)得到收敛阶数的大概数值。
1求出不动点,利用fixed.m函数:
确定包含不动点的区间[a,b],此处令a=-0.5,b=0.5,接着从b开始迭代,利用迭代公式,以x0=0.5开始迭代,终止条件为abs(x-x0)>
=1e-6
或者迭代次数超过了10000次,最终返回不动点
2计算收敛阶m,利用jie.m函数:
1.由①知道当
所以根据收敛阶公式
其中C为非零常数,转化为
2.从1开始找出满足
的p,如果p不满足,令p=p+1,直至找到满足条件的p.
3.返回收敛阶n=p.
1.求不动点函数fixed.m
functionx=fixed(x0,e)
%用途---求不动点
%x0-------初值,abs(x0)<
0.5
%e-----迭代精度
x=0.99*x0-x0^2;
%迭代公式
n=1;
while(abs(x-x0)>
=e)&
&
(n<
10000)
x0=x;
n=n+1;
%循环体
x=x0;
2.求收敛阶函数jie.m
functionn=jie(x0)
%用途---求阶函数
k=0;
symsx;
x1=0.99*x-x^2;
h=(abs(x0-x1))/(abs(x0-x))^k;
whilelimit(h,x,x0)==0
k=k+1;
h=(abs(x0-x1))/(abs(x0-x))^k;
n=k;
1.求不动点调用fixed.m
由执行不动点结果可以看出确定了迭代精度1e-6后,根据迭代精度接近0,所以
.
2.求收敛阶调用jie.m
所以收敛阶数为1,即线性收敛。
[设计题四]
某飞机头部的光滑外形曲线的型值点坐标由下表给出:
3
4
5
6
7
8
9
10
70
130
210
337
578
776
1012
1142
1462
1841
57
78
103
135
182
214
244
256
272
275
试建立其合适的模拟曲线(未必是用拟合方法),并求在点x=100,250,400,500,800处的函数值y及一阶、二阶导数值y’,y”。
绘出模拟曲线的图形。
运用cftool工具箱,根据散点图,认为接近对数函数。
故设定拟合函数为
f(x)=a*log(x+b)+c
都是在cftool工具箱上操作,无函数调用。
1.输入数据
2.打开cftool工具箱