matlab实现数值计算功能源程序(个人整理)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档