8、MATLAB程序设计与应用刘卫国(第三版)课后实验八:数据分析与多项式计算

目录

一、

二、

 三、

 四、

五、 


一、

利用MATLAB提供的rand函数生成30 000个符合均匀分布的随机数,然后检验随机数的性质。

(1)均值和标准差。

 ---------------------------------------示例代码---------------------------------------------

A=rand(1,30000);
b=mean(A)
std(A,0,2)

---------------------------------------运行结果---------------------------------------------

 (2)最大元素和最小元素。

 ---------------------------------------示例代码---------------------------------------------

A=rand(1,30000);
max(A)
min(A)

---------------------------------------运行结果---------------------------------------------

 (3)大于0.5的随机数个数占总数的百分比。

 ---------------------------------------示例代码---------------------------------------------

random_Number = 30000;
number_List = rand(random_Number,1);
n = 0;
for i=1:1:random_Number
	if(number_List(i)>0.5)
		n = n+1;
	end
end
percentage = (n/random_Number)*100
fprintf('大于0.5的随机数占有的比例为%.2f%%',percentage);

---------------------------------------运行结果---------------------------------------------

二、

将100个学生5门功课的成绩存入矩阵P中,进行如下处理。

(1)分别求每门课的最高分、最低分及相应学生序号。

(2)分别求每门课的平均分和标准差。

 ---------------------------------------示例代码---------------------------------------------

t=45+50*rand(100,5);
P=fix(t); 
[x,l]=max(P)  
[y,k]=min(P)
mu=mean(P)  %每门课的平均值行向量
sig = std(P)

---------------------------------------运行结果---------------------------------------------

(3)5门课总分的最高分、最低分及相应学生序号。

(4)将5门课总分按从大到小顺序存入 score中,相应学生序号存入num。

提示:上机调试时,为避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机矩阵来表示学生成绩。

  ---------------------------------------示例代码---------------------------------------------

P=45+50*round(rand(100,5));
S=sum(P,2);
Ma=max(S);
Mi=min(S);
kma=find(S==Ma);
kmi=find(S==Mi);
for i = 1:length(kma)
    fprintf('最高分:%d \t学生序号:%d\n',Ma,kma(i))
end
for i = 1:length(kmi)
    fprintf('最低分:%d \t学生序号:%d\n',Mi,kmi(i))
end
[score,num]=sort(S,'descend');
for i = 1:length(score)
    fprintf('总分:%d \t学生序号:%d\n',score(i),num(i))
end

---------------------------------------运行结果---------------------------------------------

 三、

有3个多项式P1(x)=x4+2x3+4x2+5,P2(x)=x+2,P3(x)=x2+2x+3,试进行下列操作。

(1)求P(x)=P1(x)+P2(x)P3(x)。

  ---------------------------------------示例代码---------------------------------------------

p1=[1,2,4,0,5];
p2=[1,2];
p3=[1,2,3];
p=p1+[0,conv(p2,p3)]   

---------------------------------------运行结果---------------------------------------------

 (2)求P(x)的根。

  ---------------------------------------示例代码---------------------------------------------

A=roots(p)

---------------------------------------运行结果---------------------------------------------

(3)当x取矩阵A的每一元素时,求P(x)的值。其中 

 (4)当以矩阵A为自变量时,求P(x)的值。其中A的值与(3)相同。

  ---------------------------------------示例代码---------------------------------------------

p1=[1,2,4,0,5];
p2=[1,2];
p3=[1,2,3];
p4=[0,conv(p2,p3)];
p = p1+p4	%求p(x)=p1(x)+p2(x)x=roots(p)%求p(x)的根
x = roots(p)
A = [-1 1.2 -1.4;0.75 2 3.5;0 5 2.5]; 
y1 = polyval (p,A)  %x 取矩阵A 的每一元素时的 p(x)值
y2 = polyvalm(p,A)	%当以矩阵A为自变量时

---------------------------------------运行结果---------------------------------------------

 

 四、

 某气观测站测得某日6:00至 18:00之间每隔2h的室内外温度(℃)如实验表1所示。

 试用三次样条插值分别求出该日室内外6:30至17:30之间每隔2h各点的近似温度(℃)

  ---------------------------------------示例代码---------------------------------------------

h=6:2:18;
x=6.5:2:17.5;
t1=[18,20,22,25,30,28,24];
t2=[15,19,24,28,34,32,30];
T1=spline(h,t1,x)
T2=spline(h,t2,x)

---------------------------------------运行结果---------------------------------------------

五、 

已知lgx 在[1,101]区间10个整数采样点的函数值如实验表2所示。

实验表2 lg(x)在10个采样点的函数值

x

1

11

21

31

41

51

61

71

81

91

101

lgx

0

1.0414

1.3222

1.4914

1.6128

1.7076

1.7854

1.8513

1.9085

1.9590

2.0043

试求1gx的5次拟合多项式p(x),并绘制出lgx和p(x)在[1,101]区间的函数曲线。

 ---------------------------------------示例代码---------------------------------------------

x=1:1:101;
y1=log10(x);
p=polyfit(x,y1,5)
y2=polyval(p,x);
plot(x,y1,':o',x,y2,'-*')

---------------------------------------运行结果---------------------------------------------

如对你有帮助,留下小小一赞,岂不是美哉 

如有侵权,请尽快与我联系!!!

猜你喜欢

转载自blog.csdn.net/weixin_46698113/article/details/128286366