当前位置:文档之家› 第二章 matlab数值计算功能

第二章 matlab数值计算功能

Sin是变量名,而sin是正弦函数名
4.关键字(如 if,while 等)不能作为变量名。
2
永久变量
• eps — 容差变量,定义为1.0到最近浮点数的距离,在 pc机上= 2-52
• pi — 圆周率的近似值3.1415926
• inf或Inf — 表示正无穷大,定义为1/0
• NaN — 非数,它产生于0× ,0/0,/ 等运算
• i,j — 虚数单位
• ans — 对于未赋值运算结果,自动赋给ans 如果用户给永久变量赋值,原始默认值丢失,直至清除变量 或重启Matlab
3
2.1.2 MATLAB 的标点符号
1.百分号(注释符)%
与其它程序语言一样,为了方便其他人及日后自己对程序的阅读,
增加程序的可读性,需要在MATLAB文件中加入注释。注释行必须 以%号开始,执行文件时,%号后面的语句不予执行。
0 -1 -0.5 0 0.5 1 1.5 2
x
end
符号积分
syms x; 循环里的内容相当于sum(yt)*u u越小,积分越精确。
ans =
y=int(exp(-x^2),0,1);
c
vpa(y)c =
0.7475
40
40
数值解法2,以梯形之和逼近面积
u=1e-3;
t=0:u:1;
1.5
yt=exp(-t.^2); s=0;
importdata('bio_signal.txt');
其他方法
fopen, fread, textscan, fclose
14
数据存储
save
save filename 把全部内存变量保存为filename.mat文件。 save filename a b c 把a、b、c三个变量保存在文件名为 filename.mat的文件中。 save filename a b c –append 把a、b、c三个变量添加到文件 名为myfile.mat的文件中。
29Βιβλιοθήκη p( x) x 2 x 5 x 6
4 3
30
a( x) x 3 2 x 2 x 3
b( x ) x 2 2 x 4
求 : c ( x ) a ( x ) b( x )
c( x) x 5 4 x 4 9 x 3 13x 2 10 x 12
3 2
余子式 : r ( x) 4 x 10
27
表4-1
多项式运算函数
练习
例4-1
脚本文件,多项式运算
28
2.5.4 多项式的微分与赋值运算
1. 微分运算
多项式的微分由命令polyder完成 Polynomial differential
2. 赋值运算
给出x的范围,命令polyval可计算 多项式的值。 Polynomial evaluation
% 把rand_data.mat中的变量载入工作空间
16
2.1.4 向量的生成
1.利用冒号“:”创建等差数列:
t=[初值:增量:终值] 例如: x=1:5; y=0:pi/4:2*pi; z=6:-1:0;
17
2.利用函数linspace和logspace创建向量:
t=linspace(初值d1,终值d2,点数n)
y a3 x 3 a2 x 2 a1 x a0
x
3
x2
a3 a x 1 2 y a1 a0

P(k,1)=y(k);
end a=A\P; % coefficients Least square plot(x,sin(x), 'o',x,polyval(a,x), '-')
多项式乘法不要求阶数相同
31
p( x) x 2 x 5 x 6
4 3
dp( x) d ( x) dx
d ( x) 4 x 6 x 5
3 2
32
练习
例4-5
脚本文件,多项式拟合
33
另解 例4-5
clc; clear; x=0:pi/10:2*pi; y=sin(x); for k=1:length(x) A(k,:)=[x(k)^3 x(k)^2 x(k) 1];
1. 一元积分相当于求面积
2. 二元积分相当于求体积
38
求下列函数的积分
y e
0
1
x2
dx
1.5
1
y
0.5 0 -1
-0.5
0
0.5
1
1.5
2
x
39
39
数值解法1,以矩形之和逼近面积
1.5
u=1e-3;
t=0:u:1; yt=exp(-t.^2);
1
y
c=0;
0.5
for k=1:length(yt) c=c+u*yt(k);
ones(m,n) 元素全为 1 的mn矩阵 rand(m,n) 元素为在[0,1]上均匀分布的mn随机矩阵 randn(m,n) 元素为正态分布的mn随机矩阵 eye(n) 单位矩阵, nn阶的方阵 magic(n) 魔方矩阵,其特点是元素由1到n2的自然数组成,每行、每列及两 对角线上的元素之和均等于(n3+n)/2
2.逗号和分号
在赋值语句中,逗号(空格)用在同一行中各元素之间,分
号用在行与行之间。多条语句放在一行,用逗号分开表示要求显
示结果,由分号分开表示不要求显示结果。
4
3.续行标志(…)
当一条语句或矩阵太长,一行不能显示时,可用续行标志 … , 另起一行继续完成该条语句的书写。
4.中断键
在命令的执行过程中,可以随时按下CTRL+C键中断MATLAB的 运行。
2.5.1 多项式的表达与创建
多项式的系数按降幂次序排列而形成的行 向量来表征一多项式。 多项式: A( x ) a n x n a n 1 x n 1 a1 x a 0
多项式的行向量: A [ a n
a n 1 a1 a 0 ]
23
p( x) x 2 x 5 x 6
L= 1 0 0 0 0 0 0 0 1 1
%建立矩阵L %判断L中是否有逻辑1 %指出A中绝对值大于3的元素
X= -4 4
20
5
2.1.6 复数表示
z=[1+2i,3+4i;5+6i,7+8i]
将其实部和虚部矩阵分别赋值 如z=[1,3;5,7]+[2,4;6,8]*i (*号不能省略)
若在前面程序中曾经给i或j赋过值,则i或j就不再是虚数单位, 此时应把赋值的i或j清除再执行虚数赋值语句。
7
矩阵运算
矩阵加法、减法 矩阵乘法 矩阵求逆(除法)
Amn Bmn
Amn * Bnp
方阵(满秩)
非方阵(列满秩、行满秩)
8
练习
A=magic(4), B=rand(4,4), 求A+B, A-B, A*B, inv(A)*B, A*inv(B)
A=rand(3,6), B=rand(3,6), 求A+B, A-B, A*B’, A’*B, pinv(A)*B, A*pinv(B)
15
练习
clear; N=1000; x=rand(1,N); y=5; save rand_data x y; %产生一个随机向量 % % 把x y存入文件rand_data.mat中 %删除工作空间内的所有变量
save rand_data_txt.txt x -ascii clear load(‘rand_data.mat’); %删除工作空间内的所有变量
例:k=linspace(-pi,pi,4)
logspace 函数,创建对数等距的向量
例如: y=logspace(d1,d2) y=logspace(d1,d2,N)
从10的d1次幂到d2次幂之间按等比级数等分为N个点,N缺省时,默认为50。
18
2.1.5 矩阵的下标
A=
0.9501 0.4860 0.4565 0.2311 0.8913 0.0185
fplot() fminbnd()
fzero
fminsearch
36
二分法求函数的0解
f ( x) (0.5 sin(x)) * (0.4 sin(2 x))
x [ 0 2]
原理
A C
B
根据以上原理,自行练习一下,20分钟
37
一元函数的积分
• • • • quad 用法 quad(fun,a,b) 例 4-17 page78
1
for n=1:length(yt)-1 s=s+(yt(n)+yt(n+1))*u/2;
y
end
0.5
s
s=
0 -1 -0.5 0 0.5 1 1.5 2
0.7468
x
syms x; y=int(exp(-x^2),0,1);
ans =
vpa(y)
12
3、从外部数据文件调入矩阵:
load()
从磁盘读入.mat文件,或读入排列成矩阵的.txt文件
例如:当前目录下有生物医学信号的文本文件bio_signal.txt
load(‘bio_signal.txt’)
13
importdata
从文件中读入数据,能自动分析文件的格式。应用广泛
例如:当前目录下有生物医学信号的文本文件bio_signal.txt
21
练习
求解线性方程组
写成矩阵 Ax=b
相关主题