MATLAB数值运算(六)

目录

实验目的

实验内容


原创代码,仅供参考,不要直接CV呀 ~_~

MATLAB数值运算(六)_第1张图片

实验目的

1)掌握定义符号对象和创建符号表达式的方法;

2)掌握符号运算基本命令和规则;

3)掌握符号表达式的运算法则以及符号矩阵运算;

4)掌握符号微积分和符号方程求解的基本方法。

实验内容

2-1)、10个学生5门功课的成绩统计如下表所示:

数学

语文

外语

物理

化学

1

90

89

91

82

75

2

88

82

85

89

95

3

79

89

93

82

76

4

91

89

87

79

85

5

90

79

78

91

82

6

86

85

84

89

88

7

89

91

79

90

94

8

75

85

95

90

87

9

85

78

75

90

89

10

98

89

87

86

80

1)求每门课的最高分、最低分和平均分;

2)求每位学生5门课总分的最高分、最低分和平均分;

3)绘制带有平均分数线的各科成记分布曲线(要求:给曲线加图例且各科平均分数线颜色与相应课程成记曲线的颜色相同)。

% (1) 求每门课的最高分、最低分和平均分
Grade = [90 89 91 82 75; 88 82 85 89 95; 79 89 93 82 76; 91 89 87 79 85; 90 79 78 91 82; 86 85 84 89 88; 89 91 79 90 94; 75 85 95 90 87; 85 78 75 90 89; 98 89 87 86 80;];
Max  = max(Grade, [], 1) %每一科成绩最高分
Min  = min(Grade, [], 1) %每一科成绩最低分
Mean = mean(Grade, 1)    %每科成绩的平均分
% (2) 求学生总分的最高分、最低分和平均分
Student_sum  = sum(Grade,2);
Student_Max  = max(Student_sum)    %学生总分的最高分
Student_Min  = min(Student_sum)    %学生总分的最低分
Student_mean = mean(Student_sum)   %学生总分的平均分
% (3) 绘制带有平均分数线的各科成记分布曲线
X = 1:10; %10个学生
plot(X, Grade(:,1), 'r'); hold on; %数学成绩 红色 r   Grade(:,1)是第一列
plot(X, Grade(:,2), 'g'); hold on; %语文成绩 绿色 g
plot(X, Grade(:,3), 'b'); hold on; %外语成绩 蓝色 b   Grade(:,3)是第三列
plot(X, Grade(:,4), 'c'); hold on; %物理成绩 青色 c
plot(X, Grade(:,5), 'k'); hold on; %化学成绩 黑色 k   
plot(X, 0*X + Mean(1), 'r'); hold on;  %数学平均分 红色 r
plot(X, 0*X + Mean(2), 'g'); hold on;  %语文平均分 绿色 g
plot(X, 0*X + Mean(3), 'b'); hold on;  %外语平均分 蓝色 b
plot(X, 0*X + Mean(4), 'c'); hold on;  %物理平均分 青色 c
plot(X, 0*X + Mean(5), 'k'); hold off; %化学平均分 黑色 k
legend('数学','语文','外语','物理','化学'); %加图例

MATLAB数值运算(六)_第2张图片

2-2)、

a = [0 1 0 1]; b = [1 3]; c = [1 1]; d = [1 0 2 1];
t = conv(a, b)   %先a*b 赋值给 temp
t = conv(t, c)   %用temp变量与c相乘
[Q, r] = deconv(t, d)    

2-3)

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

2)求P(x)的根

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

p1 = [1 2 4 0 5]; p2 = [1 2]; p3 = [1 2 3];
t = conv(p2, p3);    %p2*p3
px = p1 + [0, t]     %多项式加减运算,低次多项式系数前补0
root = roots(px)        %求根
A = [-1 1.2 -1.4; 0.75 2 3.5; 0 5 2.5];
y = polyval(px, A)  %多项式求值,将A带入

2-4)、某观测站测得某日6:00时至18:00时之间每隔2小时的室内外温度(℃),用3次样条插值分别求得该日室内外6:30至17:30时之间每隔2小时各点的近似温度(℃),并绘制出室内外温度曲线图(左上角添加图例和轴标签)。

时   间

6

8

10

12

14

16

18

室内温度(℃)

18

20

22

25

30

28

24

室外温度(℃)

15

19

24

28

34

32

30

T = 6 : 2 : 18;  %时间
x1 = [18 20 22 25 30 28 24];
x2 = [15 19 24 28 34 32 30];
t1 = 6.5 : 2 : 17.5;    %该日室内外6:30至17:30时之间每隔2小时各点的近似温度(℃)
y1 = interp1(T, x1, t1, 'spline');   %3次样条插值法 spline
plot(T, x1, t1,  y1); hold on;
y2 = interp1(T, x2, t1, 'spline');   
plot(T, x2, t1,  y2);
legend('室内外温度');        %添加图例
% legend('室内外温度',2);    %左上角添加图例
xlabel('时间'); ylabel('温度'); %x y 轴标签

2-5)、求函数在点的数值导数。

clear all;
x = [pi/6, pi/4, pi/3, pi/2];
y1 = sin(x).^3 + cos(x).^3  %点乘 按(数组)元素求幂
h = 0.0000001;
y2 = sin(x+h).^3 + cos(x+h).^3
Y = (y2-y1)/h    %导数

2-6)、求函数在(0,1)内的最小值。

x = 0 : 0.0001 : 1;  % x取值
fun = x.*3 + cos(x) + x.*log(x) ./ exp(x);
Min = min(fun)  %求最小值

2-7)、求解定积分

注意:新版本的被积表达式要加@(x)

x = 0:0.01:log(2);
px = @(x) exp(x).*(1+exp(x).^2);    %被积分表达式
I1 = quad(px, 0, log(2))    %输出结果

lMATLAB数值运算(六)_第3张图片

你可能感兴趣的:(MATLAB,matlab,开发语言)