数值分析报告.docx
- 文档编号:3570317
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:13
- 大小:761.24KB
数值分析报告.docx
《数值分析报告.docx》由会员分享,可在线阅读,更多相关《数值分析报告.docx(13页珍藏版)》请在冰豆网上搜索。
数值分析报告
数值分析
实验报告
学院
专业
班级学号
姓名
实验一:
实验题目:
编写一个拉格朗日插值函数,对不多于9个点的插值节点都可以求出插值函数,任意给定输入x值都可以求出y值。
例如:
(0,1),(1,1),(4,2),(9,3),(16,4),(25,5),(36,6),(49,7),(64,8),这实际上是一个平方根函数随意输入x在[0,64]上的值都可以输出一个y值。
进一步可以在这区间上画出图像。
程序代码:
拉格朗日函数:
functionyi=Lagrange(x,y,xx)
%Lagrange插值多项式,其中,
%x为向量,全部的插值节点;
%y为向量,插值节点处得函数值;
%xi为标量,被估计函数自变量;
%yi为xi处的函数估计值。
n=length(x);m=length(y);
%输入的插值点与它的函数值应有相同的个数
ifn~=m
error('ThelengthsofXandYmustbeequal!
');
return;
end
p=zeros(1,n);
fork=1:
n
t=ones(1,n);
forj=1:
n
ifj~=k
%输入的插值点必须互异
ifabs(x(k)-x(j)) error('theDATAiserror! '); return; end t(j)=(xx-x(j))/(x(k)-x(j)); end end p(k)=prod(t); end yi=sum(y.*p); 测试数据: >>x=[01491625364964] >>y=[112345678] >>xx=8 >>yi=Lagrange(x,y,xx) 实验结果: >>x=[01491625364964] x=01491625364964 >>y=[112345678] y=112345678 >>xx=8 xx=8 >>yi=Lagrange(x,y,xx) yi=2.9036 截图如下: 实验二: 实验题目: 用不同的方法计算积分 取不同的步长h,分别用复合梯形公式及复合辛普森公式计算积分,给出误差中关于h的函数,并与积分精确值比较两个公式的精度,是否存在一个最小的h,使得精度不能再被改善。 程序代码: 复合梯形公式: functionI=T_quad(x,y) n=length(x);m=length(y); ifn~=m error('ThelengthsofXandYmustbeequal'); return; end h=(x(n)-x (1))/(n-1);a=[12*ones(1,n-2)1]; I=h/2*sum(a.*y); 复合辛普森公式: functionI=S_quad(x,y) n=length(x);m=length(y); ifn~=m error('ThelengthsofXandYmustbeequal'); return; end ifrem(n-1,2)~=0 I=T_quad(x,y); return; end N=(n-1)/2;h=(x(n)-x (1))/N;a=zeros(1,n); fork=1: N a(2*k-1)=a(2*k-1)+1;a(2*k)=a(2*k)+4; a(2*k+1)=a(2*k+1)+1; end I=h/6*sum(a.*y); 测试数据: 复合梯形测试数据: >>x=0.00001: 0.0001: 0.99999 >>y=sqrt(x).*log(x) >>I=T_quad(x,y) 复合辛普森测试数据: >>x=0.00001: 0.0001: 0.99999 >>y=sqrt(x).*log(x) >>I=S_quad(x,y) 实验结果: 复合梯形实验结果: >>x=0.00001: 0.0001: 0.99999 x=Columns1through8 0.00000.00010.00020.00030.00040.00050.00060.0007 Columns9through16 ………… Columns9993through10000 0.99920.99930.99940.99950.99960.99970.99980.9999 >>y=sqrt(x).*log(x) y=Columns1through8 -0.0364-0.0956-0.1227-0.1422-0.1579-0.1712-0.1828-0.1932 ………… Columns9993through10000 -0.0008-0.0007-0.0006-0.0005-0.0004-0.0003-0.0002-0.0001 >>I=T_quad(x,y) I=-0.4444 I=-0.4444 复合辛普森实验结果: >>x=0.00001: 0.0001: 0.99999 x=Columns1through8 0.00000.00010.00020.00030.00040.00050.00060.0007 ………… Columns9993through10000 0.99920.99930.99940.99950.99960.99970.99980.9999 >>y=sqrt(x).*log(x) y=Columns1through8 -0.0364-0.0956-0.1227-0.1422-0.1579-0.1712-0.1828-0.1932 ………… Columns9993through10000 -0.0008-0.0007-0.0006-0.0005-0.0004-0.0003-0.0002-0.0001 >>I=S_quad(x,y) I=-0.4444 I=-0.4444 实验三: 实验题目: 用LU分解和列主元消去法解线性方程组 输出Ax=b中系数A=LU分解的矩阵L和U,解向量x及detA;列主元法的行交换次序,解向量x及detA;比较两种方法所得的结果。 程序代码: LU分解: function[L,U,x]=lux(A,b) [n,n]=size(A); p=eye(n); fork=1: n-1 [r,m]=max(abs(A(k: n,k))); m=m+k-1; if(A(m,k)~=0) if(m~=k) A([km],: )=A([mk],: ); p([km])=p([mk]); end fori=k+1: n A(i,k)=A(i,k)/A(k,k); j=k+1: n; A(i,j)=A(i,j)-A(i,k)*A(k,j); end end end L=tril(A,-1)+eye(n,n); U=triu(A); newb=p*b; y=zeros(n,1); fork=1: n j=1: k-1; y(k)=(newb(k)-L(k,j)*y(j))/L(k,k); end x=zeros(n,1); fork=n: -1: 1 j=k+1: n; x(k)=(y(k)-U(k,j)*x(j))/U(k,k); end 高斯列主元消去法: functionx=gauss_lie(A,b) %UNTITLED5Summaryofthisfunctiongoeshere %Detailedexplanationgoeshere %采用高斯列主元法求解方程组Ax=b n=length(b); p=1: n;lu=A; y=[]; fork=1: n [c,i]=max(abs(lu(k: n,k))); ik=i+k-1; ifik~=k m=p(k);p(k)=p(ik);p(ik)=m; ck=lu(k,: );lu(k,: )=lu(ik,: );lu(ik,: )=ck; end ifk==n break; end lu(k+1: n,k)=lu(k+1: n,k)/lu(k,k); lu(k+1: n,k+1: n)=lu(k+1: n,k+1: n)-lu(k+1: n,k)*lu(k,k+1: n); end l=diag(ones(n,1))+tril(lu,-1); u=triu(lu); y (1)=b(p (1)); fori=2: n y(i)=b(p(i))-l(i,1: i-1)*y(1: i-1)'; end x(n)=y(n)/u(n,n); fori=n-1: -1: 1 x(i)=(y(i)-u(i,i+1: n)*x(i+1: n)')/u(i,i); end x=x'; end 测试数据: LU分解测试数据: >>A=[10,-7,0,1;-3,2.099999,6,2;5,-1,5,-1;2,1,0,2] >>b=[8;5.900001;5;1] >>[l,u,x]=lux(A,b) >>det(A) 高斯列主元消去法测试数据: >>A=[10,-7,0,1;-3,2.099999,6,2;5,-1,5,-1;2,1,0,2] >>b=[8;5.900001;5;1] >>x=gauss_lie(A,b) >>det(A) 实验结果: LU分解实验结果: >>A=[10,-7,0,1;-3,2.099999,6,2;5,-1,5,-1;2,1,0,2] A=10.0000-7.000001.0000 -3.00002.10006.00002.0000 5.0000-1.00005.0000-1.0000 2.00001.000002.0000 >>b=[8;5.900001;5;1] b= 8.0000 5.9000 5.0000 1.0000 >>[l,u,x]=lux(A,b) l= 1.0000000 0.50001.000000 -0.3000-0.00001.00000 0.20000.9600-0.80001.0000 u= 10.0000-7.000001.0000 02.50005.0000-1.5000 006.00002.3000 0005.0800 x= 0.1949 -0.7661 0.9695 0.6882 >>det(A) ans= -762.0001 高斯列主元分解实验结果: >>A=[10,-7,0,1;-3,2.099999,6,2;5,-1,5,-1;2,1,0,2] A= 10.0000-7.000001.0000 -3.00002.10006.00002.0000 5.0000-1.00005.0000-1.0000 2.00001.000002.0000 >>b=[8;5.900001;5;1] b= 8.0000 5.9000 5.0000 1.0000 >>x=gauss_lie(A,b) x= 0.0000 -1.0000 1.0000 1.0000 >>det(A) ans= -762.0001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)