1、通过行列变换把矩阵C的前n*n部分化成单位阵;把C的后n*n部分赋给B,则B就是所求的逆矩阵。三程序清单function B=inv_dm(A)%用途:列主元高斯消去法求逆矩阵%A-原矩阵%B-逆矩阵n,n=size(A);B=zeros(n,n);C=zeros(n,2*n);for i=1:n for j=1: C(i,j)=A(i,j); end for k=n+1:2*n if k=n+i C(i,k)=0; else C(i,k)=1;end%构造C=A+Eflag=1:n;%记录行顺序向量n-1 t=find(abs(C(i:n,i)=max(abs(C(i:n,i); %寻找最大
2、元素 t=t(1)+i-1; flag(i)=t; if t=i p=C(i,:);C(i,:)=C(t,:C(t,:)=p; %换位 if C(i,i)=0 error(矩阵不可逆 C(i,:)=C(i,:)/C(i,i); for j=i+1: C(j,:)=C(j,:)-C(i,:)*C(j,i);C(n,:)=C(n,:)/C(n,n);%因为循环结构问题,所以Cn,:并没有化一,所以在最后才把最后一行化一for i=n:-1:2i-1%通过行变换,使得C的前n列为单位阵形式1 t=flag(i); p=C(:,t);C(:,t)=C(:,i);,i)=p;%通过行变化矩阵还原行的顺序
3、 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或者
4、迭代次数超过了10000次,最终返回不动点2计算收敛阶m,利用jie.m函数:1.由知道当,所以根据收敛阶公式,其中C为非零常数,转化为2.从1开始找出满足的p,如果p不满足,令p=p+1,直至找到满足条件的p.3.返回收敛阶n=p.1.求不动点函数fixed.mfunction x=fixed(x0,e)%用途-求不动点%x0-初值,abs(x0)=e)&(n10000)x0=x; n=n+1;%循环体x=x0;2.求收敛阶函数jie.mfunction n=jie(x0)%用途-求阶函数k=0;syms x;x1=0.99*x-x2;h=(abs(x0-x1)/(abs(x0-x)k;wh
5、ile limit(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,即线性收敛。设计题四 某飞机头部的光滑外形曲线的型值点坐标由下表给出:3456789107013021033757877610121142146218415778103135182214244256272275试建立其合适的模拟曲线(未必是用拟合方法),并求在点x100,250,400,500,800处的函数值y及一阶、二阶导数值y,y”。绘出模拟曲线的图形。运用cftool工具箱,根据散点图,认为接近对数函数。故设定拟合函数为 f(x) = a*log(x+b)+c都是在cftool工具箱上操作,无函数调用。1.输入数据2.打开cftool工具箱
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1