当前位置:首页 >> 其它 >>

数值分析实习报告


数值分析实习报告

数值分析实习报告



目:

MATLAB 算法实习

学生姓名: 指导教师: 学 学 院: 号: 刘圣军

2016 年 12 月

数值分析实习报告

目录
一、拉格朗日插值法 ........................................................................................... 1 二、最小二乘拟合法 ........................................................................................... 3 三、复化辛普森法计算积分............................................................................... 5 四、LU 分解法 .................................................................................................... 6 五、Jacobi 迭代法 ............................................................................................... 8 六、牛顿迭代法 ................................................................................................... 9 七、幂法 ............................................................................................................. 11 八、欧拉法 ......................................................................................................... 13

数值分析实习报告

一、拉格朗日插值法
例题:根据下面的数据点求出其拉格朗日插值多项式。
x y 0 0 1 1 4 2 9 3 16 4

1、 建立 M 文件 function f=language(x,y,x0) syms t l; if (length(x)==length(y)) n=length(x); else disp('x 和 y 的维数不相等!') return; end h=sym(0); for i=1:n l=sym(y(i)); for j=1:i-1 l=l*(t-x(j))/(x(i)-x(j)); end; for j=i+1:n

l=l*(t-x(j))/(x(i)-x(j)); end; h=h+l; end simplify(h); if(nargin==3) f=subs(h,t,x0);
1 / 14

数值分析实习报告

else f=collect(h); f=vpa(f,6); end 2、在命令窗口输入指令并运行:

2 / 14

数值分析实习报告

二、最小二乘拟合法
例题:编制以函数

?x ?
k

n k ?0

为基的多项式最小二乘拟合程序,并用于对下列数

据作三次多项式最小二乘拟合(取权函数 wi≡1)
x y 1.0 -4.447 2.0 -0.452 3.0 0.551 4.0 0.048 5.0 -0.447 6.0 0.549 7.0 4.552

总共有 7 个数据点,令 m=6。 1、建立主程序文件 x=1.0:1.0:7.0; y=[-4.447,-0.452,0.551,0.048,-0.447,0.549,4.552]; plot(x,y,'*') xlabel 'x 轴' ylabel 'y 轴' title '散点图' hold on

m=6;n=3; A=zeros(n+1); for j=1:n+1 for i=1:n+1 for k=1:m+1 A(j,i)=A(j,i)+x(k)^(j+i-2) end end end;

B=[0 0 0 0]; for j=1:n+1 for i=1:m+1
3 / 14

数值分析实习报告

B(j)=B(j)+y(i)*x(i)^(j-1) end end B=B'; a=inv(A)*B; x=[1.0:0.0001:7.0]; z=a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3; plot(x,z) legend('离散点','y=a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3') title '拟合图' 2、 在命令窗口输入指令并运行:

4 / 14

数值分析实习报告

三、复化辛普森法计算积分

例题:利用复化辛普森公式计算积分:

?

1

0

x ln xdx

1、建立M文件 function y=f(x) y=sqrt(x)*log(x); 2、建立M文件 function Tn=simp(a,b,n) h=(b-a)/n; for k=0:n x(k+1)=a+k*h; if x(k+1)==0 x(k+1)=10^(-10); end end T1=h/2*(f(x(1))+f(x(n+1))); for i=2:n F(i)=h*f(x(i)); end T2=sum(F); Tn=T1+T2; 3、在命令窗口输入指令并运行:

5 / 14

数值分析实习报告

四、LU 分解法
例题:用 LU 分解法解方程组 Ax ? b, 其中
? 7 1 - 1? ?3 ? ? ? ? A ? ?2 4 2? b ? ? ?1 ? ? ? ?- 1 1 3 ? ?, ? 2? ?
1、建立 M 文件

function LU(A,b) [m,n]=size(A); n=length(b); L=eye(n,n); U=zeros(n,n); U(1,1:n)=A(1,1:n);

%A 为系数矩阵,b 为右端项矩阵 %初始化矩阵 A,b,L 和 U

%开始进行 LU 分解

L(2:n,1)=A(2:n,1)/U(1,1); for k=2:n U(k,k:n)=A(k,k:n)-L(k,1:k-1)*U(1:k-1,k:n); L(k+1:n,k)=(A(k+1:n,k)-L(k+1:n,1:k-1)*U(1:k-1,k))/U(k,k); end L U %输出 L 矩阵 %输出 U 矩阵 %开始解方程组 Ux=y

y=zeros(n,1); y(1)=b(1); for k=2:n

y(k)=b(k)-L(k,1:k-1)*y(1:k-1); end x=zeros(n,1); x(n)=y(n)/U(n,n); for k=n-1:-1:1 x(k)=(y(k)-U(k,k+1:n)*x(k+1:n))/U(k,k);
6 / 14

数值分析实习报告

end for k=1:n fprintf('x[%d]=%f\n',k,x(k)); end

2、在命令窗口输入指令并运行:

7 / 14

数值分析实习报告

五、Jacobi 迭代法
?10x1 ? 3 x 2 ? x3 ? 14 ? 例题:用 Jacobi 迭代法求解方程组: ?2 x1 ? 10x 2 ? 3 x3 ? ?5 ? x ? 3 x ? 10x ? 14 2 3 ? 1

1、建立 M 文件 function Jacobi(A,b,eps) [m,n]=size(A); D=diag(diag(A)); L=D-tril(A); U=D-triu(A); temp=1; x=zeros(m,1); k=0; while abs(max(x)-temp)>eps temp=max(abs(x)); k=k+1; %记录循环次数 %雅克比迭代公式 %求矩阵 D %求矩阵 L %求矩阵 U %A 为系数矩阵,b 为后端项矩阵,epe 为精度

x=inv(D)*(L+U)*x+inv(D)*b; end for k=1:n fprintf('x[%d]=%f\n',k,x(k)); end 2、在命令窗口输入指令并运行:

8 / 14

数值分析实习报告

六、牛顿迭代法
例题:求方程 x 4 ? 4 x 2 ? 4 ? 0 在 x=1.5 附近的根。 1、建立 M 文件 function [ x_star,index,it ] = newton( fun,x,eps,it_max ) if nargin<4 it_max=100; end if nargin<3 eps=1e-5; end index=0; k=1; while k<=it_max x1=x; f=feval(fun,x); if abs(f(2))<eps break; end x=x-f(1)/f(2); if abs(x-x1)<eps index=1; break; end k=k+1; end x_star=x; it=k;
9 / 14

数值分析实习报告

2、在命令窗口输入指令并运行:

10 / 14

数值分析实习报告

七、幂法
例题:求矩阵 A 的绝对值最大的特征值和对应的特征向量
3 ? 2? ?7 4 ? 1? A= ? ? 3 ? ? ? ? 2 ? 1 3 ? ?

给出

1、建立 M 文件 function[m,u,index]=pow(A,ep,N) %A 为矩阵; ep 为精度要求; N 为最大迭代次数; m 为绝对值最大的特征值; u 为对应最大特征值的特征向量。 N=100; ep=1e-6; n=length(A);u=ones(n,1); index=0;k=0;m1=0; while k<=N v=A*u;[vmax,i]=max(abs(v)); m=v(i);u=v/m; if abs(m-m1)<ep index=1;break; end m1=m;k=k+1; end

11 / 14

数值分析实习报告

2、在命令窗口输入指令并运行:

12 / 14

数值分析实习报告

八、欧拉法
? y' ? 2 x ? y 例题:利用程序对初值问题: ? ? y (0) ? 1
用欧拉法(h=0.025)计算 x=0.1,0.2,0.3,0.4,0.5 各处的数值解。 1、建立 M 文件 function Euler(x,y,h) for m=1:20, x=x+h; f=2*x+y; y=y+h*f; if mod(m,4)==0, disp('x='),disp(x); disp('y='),disp(y); end end end

13 / 14

数值分析实习报告

2、在命令窗口输入指令并运行:

14 / 14


赞助商链接
相关文章:
数值分析第二次实习报告
数值分析第二次实习报告_理学_高等教育_教育专区。实验报告 一、实习目的:(1)通过编程计算实践,体会和理解 Lagrange 插值公式、Newton 插值公式、 分段插值公式和 ...
西南交大数值分析上机实习报告
西南交大数值分析上机实习报告_理学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档西南交大数值分析上机实习报告_理学_高等教育_教育专区。研究生课程上机...
数值分析上机实习报告
, n-2. 第 15 页 数值分析上机实习报告 2012 年 12 月 (2)程序主体 #include <stdio.h> #include <math.h> void main( ) { int i,j,m,r,sign;...
数值分析实习报告
数值分析实习报告 - 数值分析实习报告 数值分析实习报告 题 目: MATLAB 算法实习 学生姓名: 指导教师: 学学院: 号: 刘圣军 2016 年 12 月 数值分析实...
数值分析第四次实习报告
学生学号 实验课成绩 武汉理工大学学 生实验报告书 实验课程名称: 实验课程名称: 数值分析( 第四次实习) 开课名称:计算机科学与技术学院 指导老师姓名: 指导老师...
谷根代数值分析--上机实习报告
谷根代数值分析--上机实习报告_理学_高等教育_教育专区。《数值分析》谷根代、杨晓忠等编著,科学出版社。 此为课后练习的部分上机实习内容的实习报告。华北...
数值分析上机实习报告
数值分析》上机实习题 if(fabs(k)>=1.5) h=0; else if(fabs(k)<=0.5) h=-k*k+3.0/4; else h=(k*k)/2-(3*fabs(k))/2+9.0/8; ...
西南交大数值分析上机实习报告
2014 数值分析上机实习报告 姓名:吴朋朋 学号:2014200328 专业:车辆工程 联系电话:13908218424 I 序言数值分析方法在工程技术领域中的应用越来越广泛, 作为连接工程...
西南交通大学研究 数值分析上机实习报告2012
数值分析上机实习报告数值分析上机实习报告隐藏>> 数值分析上机实习报告要求 1.应提交一份完整的实习报告。具体要求如下: (1)要有封面,封面上要标明姓名、学号、专...
数值分析第三次实习报告
学生学号 实验课成绩 武汉理工大学学 生实验报告书 实验课程名称: 实验课程名称: 数值分析( 第三次实习) 开课名称:计算机科学与技术学院 指导老师姓名: 指导老师...
更多相关标签: