matlab实现数值计算功能源程序(个人整理)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab数值计算功能
1,基础运算
(1)多项式的创建与表达
将多项式(x-6)(x-3)(x-8)表示为系数形式
a=[6 3 8] % 写成根矢量
pa=poly(a)% 求出系数矢量
ppa=poly2sym(pa,'x') % 表示成符号形式
ezplot(ppa,[-50,50])
求3介方阵A的特征多项式
a=[6 2 4;7 5 6;1 3 6 ];
pa=poly(a)% 写出系数矢量
ppa=poly2sym(pa) %表示成符号形式
ezplot(ppa,[-50,50]) % 绘图
求x^3-6x^2-72x-27的根。
a=[1,-6,-72,-85]; % 写出多项式系数矢量
r=roots(a) % 求多项式的根
(2)多项式的乘除运算
c=conv(a,b) %乘法
[q,r]=deconv(c,a)% 除法
求a(s)=s^2+2s+3乘以b(s)=4s^2+5s+6的乘积
a=[1 2 3]
b=[4 5 6] % 写出系数矢量
c=conv(a,b)
c=poly2sym(c,'s') % 写成符号形式的多项式
展开(s^2+2s+2)(s+4)(s+1)并验证结果被(s+4),(s+3)除后的结果。c=conv([1,2,2],conv([1,4],[1,1]))
cs=poly2sym(c,'s')
c=[1 7 16 18 8]
[q1,r1]=deconv(c,[1,4])
[q2,r2]=deconv(c,[1,3])
cc=conv(q2,[1,3])
test=((c-r2)==cc)
其他常用的多项式运算命令
pa=polyval(p,s) % 按数组规则计算给定s时多项式的值
pm=polyvalm(p,s)% 按矩阵规则计算给定s时多项式的值
[r,p,k]=residue(b,a) % 部分分式展开,b,a分别是分子,分母多项式系数矢量。r,p,k分别是留数,极点和值项矢量。
p=poly(x,y,n) % 用n介多项式拟合给定的数据
polyder(p) %多项式微分
x=[1 2 3 4 5];
y=[5.5 43.1 128 290.7 498.4];
p=polyfit(x,y,3)
x2=1:0.1:5;
y2=polyval(p,x2);
plot(x,y,'o',x2,y2)
2,线性代数
1,求解方程的根
t=[0 0.3 0.8 1.1 1.6 2.3]';
y=[0.82 0.72 0.63 0.60 0.55 0.50]';
e=[ones(size(t)) exp(-t)]
c=e\y
t1=[0:0.1:2.5]';
y1=[ones(size(t1)),exp(-t1)]*c;
plot(t1,y1,'b',t,y,'ro')
2,逆矩阵及行列式
inv(a)
det(a)
pinv(a)
3,矩阵分解(略)
4,数据分析
max(x)求x各列的最大元素
mean(x)求x各列的平均值
median(x)找出x各列的中位元素
min(x)求出x各列的最小元素
S=cumsum(x)求x各列元素累计和
sort(x)使x的各列元素按递增排序。
std(x)求x各列的标准差。
sum(x)求x各列元素之和
prod(x)求x各列元素之积
cumprod(x)求x各列元素累计积
5,协方差和相关系数
C=cov(x) % 求协方差阵
C=cov(x,y)% 求两组随机变量的协方差
P=corrcorf(x)% 求相关阵
P=corrcorf(x,y)% 求两组随机变量的相关阵
6,微分与梯度
DX=diff(X,k) % 对x的列求k介微分矩阵
V=del2(U)% 求矩阵U的五点差分矩阵
dyx=diff(Y)./diff(X) % X,Y为同阶矩阵,差分计算按列进行
dyx=gradient(Y,dx) % Y是矢量,dx是X的梯度值
[GX,GY]=gradient(Z,dx,dy)% GX,GY分别为二元函数Z对x,y的偏导求x的微分
x=[1 ,10 ,20;2 ,12, 23;3, 14, 26;3 ,14 ,29]
diff(x)
二元函数的偏导数和梯度
x=-2:0.2:2;y=-2:0.2:2;
[xx,yy]=meshgrid(x,y);
Z=xx.*exp(-xx.^2-yy.^2);
[GX,GY]=gradient(Z,0.2,0.2);
contour(x,y,Z,'k'),hold on,
quiver(xx,yy,GX,GY,'r'),hold off
7,插值
编辑命令函数,计算四种插值函数,并用图形显示
x=0:10;y=sin(x);xi=0:.25:10;
%将插值方法定义为单元数组
strmod={'nearest','linear','spline','cubic'}
%将图标定义为单元数组
strlb={'(a) method=nearest','(b) method=linear','(c) method=spline','(d) method=cubic'};
for i=1:4
yi=interp1(x,y,xi,strmod{i});
subplot(2,2,i)
plot(x,y,'ro',xi,yi,'b'),xlabel(strlb(i))
end