matlab实验报告

时间:2024.4.21

MATLAB实验报告

1、在区间[-1,1]上分别取n=10、20用两组选中节点对龙格函数作多项式插值及三次样条插值,对每个n值,分别画出插值函数及f(x)的图形.

解:

n=10

在matlab命令窗口中键入:

>>x=-1:0.2:1;

y=1./(1+25*x.^2);

y1=interp1(x,y,'pchip');

y2=interp1(x,y,'spline');

plot(x,y1,'o',x,y1,'-',x,y2,'*',x,y2,'-.'),grid

legend('样本点','三次插值','三次样条插值')

回车得出:

n=20

在matlab命令窗口中键入:

>> x=-1:0.1:1;

y=1./(1+25*x.^2);

y1=interp1(x,y,'pchip');

y2=interp1(x,y,'spline');

plot(x,y1,'o',x,y1,'-',x,y2,'*',x,y2,'-.'),grid

legend('样本点','三次插值','三次样条插值')legend('样本点','三次插值','三次样条插值')

回车得出:

由结果可见,用两种方法画出的曲线在样本点之间取值并无太大差异,曲线亦基本上一致。

2、对于给定函数在区间[-1,1]上取,试求3次曲线拟合,试画出拟合曲线并打印出方程。

解:在matlab命令窗口中键入:

>> x=-1:0.2:1;y=1./(25*x.^2+1);

p=polyfit(x,y,3)

回车得出:

p =

   -0.0000   -0.5752    0.0000    0.4841

即拟合的多项式为:

键入:

x1=-1:0.1:1;y1=polyval(p,x1);

plot(x,y,'*',x1,y1),grid

legend('样本点','拟合曲线p3(x)')

回车得出:

由结果可看到,拟合曲线并未通过所有的样本点,它冲出了一些随机误差,更能真实地反映出两组量间关系变化的趋势。

3、用LU 分解及列主元高斯消去法解线性方程组

.

输入Ax=b中系数A=LU分解的矩阵L及U,解向量x及detA;列主元法的行交换次序,解向量x及detA;比较两种方法所得结果。

解:LU分解法

在matlab命令窗口中键入:

>> 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]=lu(A)

x=U\(L\b)

回车得出:

L =

    1.0000         0         0         0

   -0.3000   -0.0000    1.0000         0

    0.5000    1.0000         0         0

    0.2000    0.9600   -0.8000    1.0000

U =

   10.0000   -7.0000         0    1.0000

         0    2.5000    5.0000   -1.5000

         0         0    6.0000    2.3000

         0         0         0    5.0800

x =

    0.0000

   -1.0000

    1.0000

1.0000

即解向量x=[0 -1 1 1]’

键入:

>>det(A)

回车得出:

ans =

 -762.0001

即行列式det(A)=-762.0001.

列主元高斯消去法

在matlab命令窗口中键入:

>> 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(A,b)

回车得出:

x =

0.0000   -1.0000    1.0000    1.0000

即解向量x=[0 -1 1 1]’

键入:

>> det(A)

回车得出:

ans =

 -762.0001

即行列式det(A)=-762.0001.

由结果可见,用LU分解法与列主元消去法所得到的结果一致。

4、 线性方程组Ax=b的A及b为

则解用MATLAB内部函数求detA及A的所有特征值和cond(A)­2.

解:在matlab命令窗口中键入:

>>A=[10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10];

det(A)

[V,L]=eig(A)

c=cond(A)

回车得出:

ans =

     1

V =

    0.5016   -0.3017    0.6149    0.5286

   -0.8304    0.0933    0.3963    0.3803

    0.2086    0.7603   -0.2716    0.5520

   -0.1237   -0.5676   -0.6254    0.5209

L =

    0.0102         0         0         0

         0    0.8431         0         0

         0         0    3.8581         0

         0         0         0   30.2887

c =

  2.9841e+003

由结果可知,det(A)=1,A的四个特征值为0.0102,0.8431,3.8581,30.2887。cond(A)2=2.9841e+003。

5、给出线性方程组,其中系数矩阵为希尔伯特矩阵:

假设,若取n=6,8,10,分别用雅可比迭代法及SOR迭代(ω=1,1.25,1.5)求解.比较计算结果.

解:n=6

在matlab命令窗口中键入:

>>H=hilb(6);

x0=[1 1 1 1 1 1]';

b=H*x0

回车得出:

b =

    2.4500

    1.5929

    1.2179

    0.9956

    0.8456

0.7365

jacobi迭代法:

>>H=hilb(6);

b=[2.4500 1.5929 1.2179 0.9956 0.8456 0.7365]';

x0=[1 1 1 1 1 1]';

[x,n]=jacobi(H,b,x0)

回车得出:

Warning:迭代次数太多,可能不收敛!

x =

  1.0e+122 *

    0.3290

    0.7099

    0.9462

    1.1118

    1.2354

    1.3317

n =

   200

SOR迭代法:(ω=1

>> [x,n]=SOR(H,b,x0,1)

回车得出:

Warning:迭代次数太多,可能不收敛!

x =

    0.9991

    0.9958

    1.0392

    0.9383

    1.0265

    1.0001

n =

   200

由结果可见,SOR法所给出的解为x=[0.9991,0.9958,1.0392,0.9383,1.0265,1.0001]’,误差比jacobi迭代法要小得多。

n=8

在matlab命令窗口中键入:

>> H=hilb(8);

x0=[1 1 1 1 1 1 1 1]';

b=H*x0

回车得出:

b =

    2.7179

    1.8290

    1.4290

    1.1865

    1.0199

    0.8968

    0.8016

0.7254

jacobi迭代法:

>> H=hilb(8);

x0=[1 1 1 1 1 1 1 1]';

b=[2.7179 1.8290 1.4290 1.1865 1.0199 0.8968 0.8016 0.7254]';

[x,n]=jacobi(H,b,x0)

回车得出:

Warning:迭代次数太多,可能不收敛!

x =

  1.0e+151 *

   -0.8233

   -1.8632

   -2.5551

   -3.0629

   -3.4556

   -3.7700

   -4.0281

   -4.2441

n =

   200

SOR迭代法:(ω=1.25

>>[x,n]=SOR(H,b,x0,1.25)

回车得出:

Warning:迭代次数太多,可能不收敛!

x =

    0.9982

    1.0124

    1.0177

    0.8680

    1.1630

    0.8808

    1.1393

    0.9211

n =

   200

由结果可见,SOR法所给出的解为x=[0.9982,1.0124,1.0177,0.8680,1.1630,0.8808,1.1393,0.8211]’,误差比jacobi迭代法要小得多。

n=10

>> H=hilb(10);

x0=[1 1 1 1 1 1 1 1 1 1]';

 b=H*x0

回车得出

b =

    2.9290

    2.0199

    1.6032

    1.3468

    1.1682

    1.0349

    0.9307

    0.8467

    0.7773

0.7188

jacobi迭代法:

在matlab窗口中键入:

>> H=hilb(10);

x0=[1 1 1 1 1 1 1 1 1 1]';

b=[2.9290 2.0199 1.6032 1.3468 1.1682 1.0349 0.9307 0.8467 0.7773 0.7188]';

[x,n]=jacobi(H,b,x0)

回车得出:

x =

  1.0e+173 *

   -0.2452

   -0.5736

   -0.8029

   -0.9770

   -1.1151

   -1.2280

   -1.3223

   -1.4024

   -1.4715

   -1.5316

n =

   200

SOR迭代法:(ω=1.5

>> H=[x,n]=SOR(H,b,x0,1.5)

回车得出:

Warning:迭代次数太多,可能不收敛!

x =

    0.9977

    1.0191

    0.9711

    1.0367

    0.8891

    1.1433

    0.7735

    1.2451

    1.0809

    0.8423

n =

   200

由结果可见,SOR法所给出的解为x=[0.9977,1.0191,0.9711,1.0367,0.8891,1.1433,0.7735,1.2451,1.0809,0.8423]’,误差比jacobi迭代法要小得多。

6、已知矩阵

(1)       用MATLAB函数“eig”求矩阵全部特征值.

(2)       用基本QR算法求全部特征值(可用MATLAB函数“qr”实现矩阵的QR分解).

解:(1)

矩阵A

在MATLAB命令窗口中输入:

>> A=[10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10];

>> [V,L]=eig(A)

回车得出:

V =

    0.5016   -0.3017    0.6149    0.5286

   -0.8304    0.0933    0.3963    0.3803

    0.2086    0.7603   -0.2716    0.5520

   -0.1237   -0.5676   -0.6254    0.5209

L =

    0.0102         0         0         0

         0    0.8431         0         0

         0         0    3.8581         0

         0         0         0   30.2887

由计算结果可知,矩阵A的四个特征值为0.0102,0.8431,3.8581,30.2887.

矩阵B

在MATLAB命令窗口中输入:

>> B=[2 3 4 5 6;4 4 5 6 7;0 3 6 7 8;0 0 2 8 9;0 0 0 1 0];

>> [V,L]=eig(B)

回车得出:

V =

    0.4801    0.4841    0.2507    0.4050   -0.2057

    0.6623    0.7574    0.5992   -0.7475    0.2129

    0.5252    0.3562   -0.7461    0.4928   -0.2385

    0.2340   -0.2525    0.1239    0.0673   -0.6295

    0.0178   -0.0385    0.0776   -0.1723    0.6776

L =

   13.1724         0         0         0         0

         0    6.5519         0         0         0

         0         0    1.5957         0         0

         0         0         0   -0.3908         0

         0         0         0         0   -0.9291

由计算结果可知,矩阵B的五个特征值为13.1724,6.5519,1.5957,-0.3908,-0.9291.

矩阵H6

在MATLAB命令窗口中输入:

>> H6=[1 1/2 1/3 1/4 1/5 1/6;1/2 1/3 1/4 1/5 1/6 1/7;1/3 1/4 1/5 1/6 1/7 1/8;1/4 1/5 1/6 1/7 1/8 1/9;1/5 1/6 1/7 1/8 1/9 1/10;1/6 1/7 1/8 1/9 1/10 1/11];

[V,L]=eig(H6)

V =

   -0.0012   -0.0111    0.0622    0.2403   -0.6145    0.7487

    0.0356    0.1797   -0.4908   -0.6977    0.2111    0.4407

   -0.2407   -0.6042    0.5355   -0.2314    0.3659    0.3207

    0.6255    0.4436    0.4170    0.1329    0.3947    0.2543

   -0.6898    0.4415   -0.0470    0.3627    0.3882    0.2115

    0.2716   -0.4591   -0.5407    0.5028    0.3707    0.1814

L =

    0.0000         0         0         0         0         0

         0    0.0000         0         0         0         0

         0         0    0.0006         0         0         0

         0         0         0    0.0163         0         0

         0         0         0         0    0.2424         0

         0         0         0         0         0    1.6189

由计算结果可知,矩阵H6的六个特征值为0.0000,0.0000,0.0006,0.0163,0.2424,1.6189.

(2)建立M-file,代码如下:

function l = qrtz(A,M)

for (i=1:M)

    [q,r]=qr(A);

    A=r*q;

    l=diag(A);

end

矩阵A

在MATLAB中键入:

>>A=[10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10];

l=qrtz(A,20)

回车得出:

l =

   30.2887

    3.8581

    0.8431

0.0102

即矩阵A的四个特征值为30.2887,3.8581,0.8431,0.0102.

矩阵B

在MATLAB中键入:

>>  B=[2 3 4 5 6;4 4 5 6 7;0 3 6 7 8;0 0 2 8 9;0 0 0 1 0];

 l=qrtz(B,20)

回车得出:

l =

   13.1723

    6.5519

    1.5957

   -0.9291

   -0.3908

即矩阵B的五个特征值为13.1723,6.5519,1.5957,-0.9291,-0.3908.

矩阵H

在MATLAB中键入:

>> H6=[1 1/2 1/3 1/4 1/5 1/6;1/2 1/3 1/4 1/5 1/6 1/7;1/3 1/4 1/5 1/6 1/7 1/8;1/4 1/5 1/6 1/7 1/8 1/9;1/5 1/6 1/7 1/8 1/9 1/10;1/6 1/7 1/8 1/9 1/10 1/11];

l=qrtz(H6,20)

回车得出:

l =

    1.6189

    0.2424

    0.0163

    0.0006

    0.0000

0.0000

即矩阵H6的六个特征值为1.6189,0.2424,0.0163,0.0006,0.0000,0.0000.

更多相关推荐:
matlab实验报告

MATLAB教程及实训班级学号姓名实验报告实验1熟悉matlab的开发环境及矩阵操作一实验的教学目标通过本次实验使学生熟悉MATLAB70的开发环境熟悉MATLAB工作界面的多个常用窗口包括命令窗口历史命令窗口...

matlab基本操作实验报告

实验一matlab基本操作一实验目的熟悉matlab的安装与启动熟悉matlab用户界面熟悉matlab功能建模元素熟悉matlab优化建模过程二实验设备与仪器1微机2matlab仿真软件三实验步骤1了解mat...

matlab实验报告

课程设计说明书(论文)题目带限数字基带传输系统的仿真课程名称Matlab通信仿真设计专业通信工程班级1203学生姓名徐xx学号2012xxxx20329指导教师文xx设计起止时间:20xx年12月18日至20x…

matlab音乐处理合成实验报告

MATLAB高级编程与工程应用语音合成综合实验姓名班级学号日期121简单的合成音乐1请根据东方红片断的简谱和十二平均律计算出该片断中各个乐音的频率在MATLAB中生成幅度为1抽样频率为8kHz的正弦信号表示这些...

东南大学几何与代数matlab实验报告

数学实验报告学号姓名吴雪松得分实验1求解线性方程组实验内容用MATLAB求解如下线性方程组Axb其中5100A00006510000006510000006510000006510000006510000006...

matlab实验报告

数学实验报告班级学号姓名实验序号1日期年月日实验名称特殊函数与图形问题背景描述绘图是数学中的一种重要手段借助图形可以使抽象的对象得到明白直观的体现如函数的性质等同时借助直观的图形使初学者更容易接受新知识激发学习...

Matlab实验报告一

数学与信息科学系实验报告实验名称程序设计所属课程数学软件与实验实验类型综合型实验专业信息与计算科学班级20xx级1班学号姓名指导教师1234567

matlab实验报告格式

数学实验报告实验序号:1日期:20XX年10月20日班级姓名学号实验名称:特殊函数与图形问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到明白直观的体现,如函数的性质等。同时,借助直观的图…

matlab实验报告

重庆交通大学学生实验报告实验课程名称专业综合实验开课实验室交通运输工程实验教学中心学院交通运输年级二年级专业班交通运输1班学生姓名学号63120xx20开课时间20xx至20xx学年第2学期

matlab实验报告

南京工程学院课程设计说明书论文题目课程名称院系部中心专业班级学生姓名学号设计地点指导教师设计起止时间20xx年12月8日至20xx年12月12日一课程设计目的和要求1综合运用信号与线性系统通信原理以及matla...

Matlab实验报告

程序设计训练报告题目学生姓名学生学号专业班级指导老师20xx年6月22日一实验名称用matlab处理基本运算与画图二实验目的1掌握二维曲线绘图的基本方法与命令2掌握一个窗口多个图形的画法分割子窗口的画法三实验说...

matlab实验报告

MATLAB实践课程设计学生姓名学号专业班级通信工程指导教师郑晓明二一二年四月二十二日目录1设计目的32题目分析33总体设计34具体设计35小结和心得106参考书目111设计目的MATLAB语言是集数值计算图形...

matlab实验报告(13篇)