MATLAB实验 8

更新时间:2024-01-18 09:04:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

肇 庆 学 院

电子信息与机电工程 学院 MATLAB 课 实验报告 12电气(1) 班 姓名 李俊杰 学号 201224122119 实验日期2014年 月 日 老师评定 . 实验8

实验内容: 1、已知

?f1?1?f?0?2 ??f3?1?n?3?fn?fn?1?2fn?2?fn?3求f1~f100中:

(1)最大值、最小值、各数之和。(提示:可以考虑使用MATLAB有关函数来实现。)

(2)正数、零、负数的个数。(提示:if语句)

2、假设有一组实测数据,分别绘制出1-4次及10-13次的拟合曲线。

x y 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 2.3201 2.6470 2.9070 3.2885 3.6008 3.9090 4.2147 4.5191 4.8232 5.1275 4、课本86页4.5——4.9;(其中4.8附加:求输入为阶跃信号的输出y(t))

4.5 求代数方程3x5?4x4?7x3?2x2?9x?12?0的所有根。 4.6 把1开五次方,并求其全部五个根。(提示:解x5?1?0) 4.7 设方程的根为x=[-3,-5,-8,-9],求它们对应的x多项式的系数。

d4yd3yd2ydy?3?u,求(1)输入u(t)=?(t)的输出;4.8 设微分方程4?23?52?4dtdtdtdt(2)求输入为阶跃信号的输出y(t)。

4.9 产生4×6阶的正态随机数矩阵R1,求其各列的平均值和均方差,并求全体

的平均值和均方差。 代码:

format compact % 紧凑格式

fprintf('题1 \\n' ) f=[1 0 1]; for n=4:100,

f(n)=f(n-1)-2*f(n-2)+f(n-3);

n=n+1; end

fprintf('f1到f100中 最大值,最小值,求和 \\n' ) fmax=max(f),fmin=min(f),fsum=sum(f)

P=0;Z=0;N=0; for n=1:100, if f(n)==0 Z=Z+1; else if f(n)<0 N=N+1; else

P=P+1; end end n=n+1; end

fprintf('正数,零,负数的个数分别是 \\n' ) P,Z,N

fprintf('题2 \\n' ) x=0.1:0.1:1;

y=[2.3201 2.6470 2.9070 3.2885 3.6008 3.9090 4.2147 4.5191 4.8232 5.1275]; xi=linspace(0,1); %默认100个点

a1=polyfit(x,y,1);yi1=polyval(a1,xi);subplot(4,2,1),plot(x,y,'o',xi,yi1,'k') a2=polyfit(x,y,2);yi2=polyval(a2,xi);subplot(4,2,2),plot(x,y,'o',xi,yi2,'m') a3=polyfit(x,y,3);yi3=polyval(a3,xi);subplot(4,2,3),plot(x,y,'o',xi,yi3,'c') a4=polyfit(x,y,4);yi4=polyval(a4,xi);subplot(4,2,4),plot(x,y,'o',xi,yi4,'r')

a10=polyfit(x,y,10);yi10=polyval(a10,xi);subplot(4,2,5),plot(x,y,'o',xi,yi10,'g') a11=polyfit(x,y,11);yi11=polyval(a11,xi);subplot(4,2,6),plot(x,y,'o',xi,yi11,'b') a12=polyfit(x,y,12);yi12=polyval(a12,xi);subplot(4,2,7),plot(x,y,'o',xi,yi12,'b') a13=polyfit(x,y,13);yi13=polyval(a13,xi);subplot(4,2,8),plot(x,y,'o',xi,yi13,'k')

fprintf('题4.5 \\n' ) y=[3 4 7 2 9 12];

roots(y) %用roots函数求y的跟

fprintf('题4.6 \\n' ) y=[1 0 0 0 0 -1]; roots(y)

fprintf('题4.7 \\n' ) x=[-3 -5 -8 -9];

poly(x) %poly为roots的逆运算

fprintf('题4.8 输入为脉冲信号时输出 \\n' ) b=[1 0];a=[1 2 5 4 0 3];

[r p k]=residue(b,a) t=0:0.2:10;

yi=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t)+r(3)*exp(p(3)*t)+r(4)*exp(p(4)*t)+r(5)*exp(p(5)*t); plot(t,yi)

fprintf('题4.8 输入为单位阶跃信号输出 \\n' ) b=[1 0];a=[1 2 5 4 0 3 0]; [r p k]=residue(b,a); t=0:0.2:10;

yi=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t)+r(3)*exp(p(3)*t)+r(4)*exp(p(4)*t)+r(5)*exp(p(5)*t)+r(6)*exp(p(6)*t); pause,plot(t,yi)

fprintf('题4.9 \\n' )

R1=randn(4*6); %用randn构造4*6阶正态随机矩阵R1 fprintf('各列平均值和均方差 \\n' ) avg1=mean(R1)

var1=std(R1).*std(R1)

fprintf('全体平均值和均方差 \\n' )

avg2=sum(avg1)/24 %全体平均值 s=0;for i=1:24 %全体方差 for j=1:24

s=s+(R1(i,j)-avg2)^2; end end

var2=s/(24*24)

结果:

题1

f1到f100中 最大值,最小值,求和 fmax =

4.3776e+011 fmin =

-8.9941e+011 fsum =

-7.4275e+011

正数,零,负数的个数分别是 P = 49 Z = 2 N = 49 题2

题4.5 ans =

-0.8612 + 1.4377i -0.8612 - 1.4377i 0.6737 + 1.0159i 0.6737 - 1.0159i -0.9583 题4.6 ans =

-0.8090 + 0.5878i -0.8090 - 0.5878i 0.3090 + 0.9511i 0.3090 - 0.9511i 1.0000 题4.7 ans =

1 25 223 831 1080

题4.9

各列平均值和均方差 avg1 =

Columns 1 through 9

-0.0658 0.2633 -0.0828 0.0575 -0.0650 0.1501 -0.2032 0.0717 -0.0311

Columns 10 through 18

-0.2102 0.3134 -0.0717 0.1471 -0.0608 -0.0887 -0.0178 -0.2590 -0.1164

Columns 19 through 24

-0.0811 0.0628 0.2102 0.0256 -0.4989 0.0582 var1 =

Columns 1 through 9

1.0968 0.8885 0.6536 0.7690 0.7623 1.1501 0.9265 1.0368 0.9382

Columns 10 through 18

0.8047 0.8024 1.2311 0.6021 0.9939 0.9660 0.6935 0.7964 1.0036

Columns 19 through 24

0.9995 1.3598 1.8895 1.2124 1.2927 1.0830

全体平均值和均方差 avg2 = -0.0205 var2 = 0.9863

本文来源:https://www.bwwdw.com/article/z7to.html

Top