2.4478 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.5604 + 0.3177i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.5604 - 0.3177i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.0946 + 0.0000i 4.分别用直接求解法、Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法求解方程组
?12x1?3x2?3x3?15??18x1?3x2?x3?15 ??x?2x?x?623?1直接法:[x1 x2 x3]=solve('12*x1-3*x2+3*x3=15','18*x1-3*x2+x3=15','-x1+2*x2+x3=6') 结果:x1 = 1 x2 = 2 x3 = 3
Jacobi迭代法:.m文件
function [x,k,index]=Jacobi(A,b,ep,it_max) if nargin<4 it_max=100000; end if nargin<3 ep=1e-5; end
n=length(A); k=0;
x=zeros(n,1); y=zeros(n,1); index=1; while 1 for i=1:n y(i)=b(i); for j=1:n if j~=i
y(i)=y(i)-A(i,j)*x(j); end end
if abs(A(i,i))<1e-10 || k==it_max index=0; return; end
y(i)=y(i)/A(i,i); end
if norm(y-x,inf) 命令:A=[12 -3 3;18 -3 1;-1 2 1]; b=[15;15;6]; [x, k, index]=Jacobi(A, b, 1e-5, 100) 结果:x = 1.0e+20 * -0.7371 -2.2790 2.4051 k = 100 index = 0 Gauss-Seidel迭代法:.m文件 function [v,sN,vChain]=gaussSeidel(A,b,x0,errorBound,maxSp) step=0; error=inf; s=size(A); D=zeros(s(1)); vChain=zeros(15,3); k=1; fx0=x0; for i=1:s(1) D(i,i)=A(i,i); end; L=-tril(A,-1); U=-triu(A,1); while error>=errorBound & step error=norm(x0-fx0); fx0=x0; step=step+1; end v=x0; sN=step; 命令:A=[12 -3 3;18 -3 1;-1 2 1]; b=[15 ;15; 6]; x0=[0;0;0]; [v,sN,vChain]=gaussSeidel(A,b,x0,0.00001,11) 结果:v = -125.1885 -158.2497 359.0649 sN = 11 vChain = 1.2500 -5.0000 6.0000 -1.5000 4.5000 17.2500 -1.9375 -8.2500 -4.5000 0.3125 -18.1250 20.5625 -8.4219 3.7292 42.5625 -8.4583 -41.3438 -9.8802 -6.6159 -59.0434 80.2292 -33.5681 -17.9523 117.4709 -32.6058 -167.2519 8.3364 -42.6471 -197.8560 307.8980 -125.1885 -158.2497 359.0649 0 0 0 0 0 0 0 0 0 0 0 0 SOR迭代法:.m文件 function [x,k,index]=SOR(A,b,ep,w,it_max) if nargin<5 it_max=150000; end if nargin<4 w=1; end if nargin<3 ep=1e-5; end n=length(A); k=0; x=zeros(n,1); y=zeros(n,1); index=1; while 1 y=x; for i=1:n z=b(i); for j=1:n if j~=i z=z-A(i,j)*x(j); end end if abs(A(i,i))<1e-10 || k==it_max index=0; return; end z=z/A(i,i); x(i)=(1-w)*x(i)+w*z; end if norm(y-x,inf) 命令:A=[12 -3 3;18 -3 1;-1 2 1]; b=[15 ;15; 6]; x0=[0;0;0]; [x,k,index]=SOR(A,b) 结果:x = 1 2 3 k = 150000 index = 0 实验六 数理统计 【实验学时】2学时 【实验目的和要求】 实验目的:熟练掌握常见基本数据分析函数,能熟练运用命令计算方差和标准方差、协 方差和相关系数。 实验要求: 1.熟练演习书上例题; 2.能运用所学的各种命令求解完成课后习题。 【实验步骤】 1.常见基本数据分析函数; 2.方差与标准方差; 3.协方差和相关系数。 【实验主要仪器及材料】 WindowsXP计算机、Matlab软件 【实验内容】 1.列举一些统计工具箱中玉概率密度函数、分布函数有关的函数; 概率密度函数 : betapdf 贝塔分布的概率密度函数 binopdf 二项分布的概率密度函数 chi2pdf 卡方分布的概率密度函数 exppdf 指数分布的概率密度函数 fpdf f分布的概率密度函数 gampdf 伽玛分布的概率密度函数 geopdf 几何分布的概率密度函数 hygepdf 超几何分布 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2015数学建模-实验指导书(3)在线全文阅读。
相关推荐: