Win8+Matlab7.1测试例子(20150109、0116、0124、0202、0207、0217)

20150403-20150412补充:
用到的函数文件mo.m
function rchamo=mo(r) %求向量r的模
sum=0;
for i=1:3
sum=sum+r(i)^2;
end
rchamo=simple(sum^(1/2));

求曲线在任一点处的曲率与挠率
空间曲线曲率与挠率的计算:
求曲线r=(t,t^2/2,t^3/3)在点t=1上的曲率向量k和曲率|k|。
>> syms t;r=[t t^2/2 t^3/3];r1=diff(r)
 
r1 =
 
[   1,   t, t^2]
 
 
>> r1mo=mo(r1)
 
r1mo =
 
(1+t^2+t^4)^(1/2)
 
 
>> T=r1/r1mo
 
T =
 
[   1/(1+t^2+t^4)^(1/2),   t/(1+t^2+t^4)^(1/2), t^2/(1+t^2+t^4)^(1/2)]
 
 
>> T1=diff(T)
 
T1 =
 
[                          -1/2/(1+t^2+t^4)^(3/2)*(2*t+4*t^3),     1/(1+t^2+t^4)^(1/2)-1/2*t/(1+t^2+t^4)^(3/2)*(2*t+4*t^3), 2*t/(1+t^2+t^4)^(1/2)-1/2*t^2/(1+t^2+t^4)^(3/2)*(2*t+4*t^3)]
 
 
>> k=T1/r1mo
 
k =
 
[                                                  -1/2/(1+t^2+t^4)^2*(2*t+4*t^3),     (1/(1+t^2+t^4)^(1/2)-1/2*t/(1+t^2+t^4)^(3/2)*(2*t+4*t^3))/(1+t^2+t^4)^(1/2), (2*t/(1+t^2+t^4)^(1/2)-1/2*t^2/(1+t^2+t^4)^(3/2)*(2*t+4*t^3))/(1+t^2+t^4)^(1/2)]
 
 
>> t=1;kzhi=eval(k)
kzhi =
   -0.3333    0.0000    0.3333 %曲率向量k=(-1/3,0,1/3)
>> kzhimo=sqrt(kzhi*kzhi')
kzhimo =
    0.4714 %曲率|k|=sqrt(2)/3
求曲线r=(3t-t^3,3t^2,3t+t^3)的曲率和挠率。
>> syms t;r=[3*t-t^3 3*t^2 3*t+t^3];r1=diff(r)
 
r1 =
 
[ 3-3*t^2,     6*t, 3+3*t^2]
 
 
>> r2=diff(r1)
 
r2 =
 
[ -6*t,    6,  6*t]
 
 
>> r1mo=mo(r1)
 
r1mo =
 
3*2^(1/2)*(1+t^2)
 
 
>> r1r2=cross(r1,r2)
 
r1r2 =
 
[                    18*t^2-18, -6*(3+3*t^2)*t-6*(3-3*t^2)*t,                    18+18*t^2]
 
 
>> r1r2mo=mo(r1r2)
 
r1r2mo =
 
18*2^(1/2)*(1+t^2)
 
 
>> k=r1r2mo/r1mo^3
 
k =
 
1/3/(1+t^2)^2
 
 
>> r3=diff(r2)
 
r3 =
 
[ -6,  0,  6]
 
 
>> r123=dot(cross(r1,r2),r3)
 
r123 =
 
216
 
 
>> tau=r123/r1r2mo^2
 
tau =
 
1/3/(1+t^2)^2 %注意,沿此曲线,|k|=tau=1/(3*(1+t^2)^2)

用符号积分求解二重积分∫(-1,2)∫(y*y,y+2)xydxdy
>> syms x y;%定义两个符号变量
>> a=int(int(x*y,x,y*y,y+2),y,-1,2);%积分限x:y*y,y+2   ,y:,-1,2
>> b=simple(a);%化简
>> c=vpa(b,4)%得到4位近似解,也可以任意N位解
 
c =
 
5.625
a =
 
45/8
b =
 
45/8
>> int(int(x*y,x,y*y,y+2),y,-1,2)
 
ans =
 
45/8
dblquad计算二重数值积分
>> f=@(x,y)x.*y;
>> dblquad(f,y*y,y+2,-1,2)
出错
>> dblquad(f,pi/4,1,2,4)
ans =
    1.1494

多重积分的MATLAB实现
http://wenku.baidu.com/link?url=hk9pQjn2em9epQpLXaKreqU3FwFKI7SB1g5-NE8klWTE2ywsOIY2u8s4pDy4w8LplEg_EFgtuza2dwZEu9_sGZn4bm59UVljxEkDSrEC-6m
将积分分为定积分、二重积分、三重积分、第一型曲线积分、第二型曲线积分、第一型曲面积分和第二型曲面积分等七种积分
例1计算二重积分,积分对象是(x^2+y^2-x)dxdy=(x^2+y^2-x)dx∧dy,积分区域是由直线y=2,y=x,y=2x所围成的闭区域
>> int(int(x^2+y^2-x,x,y/2,y),y,0,2)
 
ans =
 
13/6
例9计算三重积分,积分对象是xyzdxdydz=xyzdx∧dy∧dz,积分区域是球面x^2+y^2+z^2=1及三个坐标面所围成的在第一象限内的区域
>> syms x y z;int(int(int(x*y*z,z,0,sqrt(1-x^2-y^2)),y,0,sqrt(1-x^2)),x,0,1)
 
ans =
 
1/48
计算定积分,函数y=x^2在(1,2)区间内的投影面积
>> f=@(x)x.^2;quad(f,1,2) %算子(泛函)quad(f,a,b)表示在区间(a,b)内对x求积分
ans =
    2.3333
MATLAB积分
http://wenku.baidu.com/link?url=vyGVVVoPFxXtd-CLC7dwdqlX6S140Q0gAhDNnUwU3i6Ilm57aR7PnKrr5Ja6uiymFInaof6h0hzA1vhyiZCJGVx1nYzFqBFwGANTTz_gX7K
triplequad计算三重数值积分
>> f=@(x,y,z)(y*sin(x)+z*cos(x));triplequad(f,0,pi,0,1,-1,1)
ans =
    2.0000
实验七+曲线、曲面积分及其应用
http://wenku.baidu.com/link?url=NZJ54kMV82K117znxE62kN5UprabK758Xj0GfkH--NKU_aTeVYrLl-TYKIy0xXUIUQ_vWCaboouputuLfiRE7dPMh1S3FqG8HF48G9ufzlW
用第二型曲线积分求椭圆的面积(利用格林公式计算平面图形的面积)
>> syms x y t dx dy a b
>> x=a*cos(t);y=b*sin(t);
>> dx=diff(x);dy=diff(y);
>> int(x*dy-y*dx,t,0,2*pi)
 
ans =
 
2*a*b*pi
 
 
>> (1/2)*int(x*dy-y*dx,t,0,2*pi)
 
ans =
 
a*b*pi
——椭圆x^2/a^2+y^2/b^2=1的面积为abpi

用第一型曲线积分求椭圆的周长
>> ds=sqrt(dx^2+dy^2)
 
ds =
 
(a^2*sin(t)^2+b^2*cos(t)^2)^(1/2)
 
 
>> int(ds,t,0,2*pi)
 
ans =
 
4*EllipticE((-(-a^2+b^2)/a^2)^(1/2))*(b^2/a^2)^(1/2)*a^2/(b^2)^(1/2)
>> simple(ans)

 ans =
 
4*EllipticE(1/a*(a^2-b^2)^(1/2))*a
雅可比用q来表示模和周期,例如
k=4sqrt(q)[(1+q^2)(1+q^4)(1+q^6)…/((1+q)(1+q^3)(1+q^5)…)]^4。
k=kq(0.207879576350762)=0.985171431009416
>> syms kq1 q;kq1=maple('product(((1+q^(2*n))/(1+q^(2*n-1))),n=1..100)');q=0.207879576350762;kq=eval(kq1);k=4*sqrt(q)*kq^4
k =
    0.9852
Matlab在数论中的应用
>> ISPRIME(3)
ans =
     1
>> isprime(3)
ans =
     1
>> ISPRIME(30)
ans =
     0
>> isprime(30)
ans =
     0
isprime测试n是否为素数
>> maple('gcd(14, 21)')
ans =
7
>> maple('ithprime(3)')
ans =
5
ithprime计算第n个素数
>> maple('prevprime(100)')
ans =
97
prevprime计算比n小的最大的素数
>> maple('ifactor(100)')
ans =
``(2)^2*``(5)^2
ifactor求整数n的素幂分解
>> maple('ifactors(100)')
ans =
[1, [[2, 2], [5, 2]]]
ifactors求整数n的所有素因子
>> maple('numtheory[phi](5)')
ans =
4
numtheory[phi]计算欧拉phi函数在n处的值
>> maple('numtheory[fermat](5)')
ans =
4294967297
numtheory[fermat]计算第n个费马数
>> maple('numtheory[invphi](12)')
ans =
[13, 21, 26, 28, 36, 42]
numtheory[invphi]计算使得phi(m)=n的正整数m
>> maple('numtheory[tau](12)')
ans =
6
numtheory[tau]计算n的所有正因子的个数
>> maple('numtheory[bigomega](12)')
ans =
3
numtheory[bigomega]计算n的素因子个数omega(n)的值
>> maple('numtheory[primroot](12)')
ans =
FAIL
>> maple('numtheory[primroot](7)')
ans =
3
numtheory[primroot]计算模n的最小原根
>> maple('numtheory[legendre](5,7)')
ans =
-1
numtheory[legendre]计算勒让德符号的值
>> maple('numtheory[jacobi](5,7)')
ans =
-1
numtheory[jacobi]计算雅可比符号的值
>> maple('with(GaussInt);')
ans =
[GIbasis, GIchrem, GIdivisor, GIfacpoly, GIfacset, GIfactor, GIfactors, GIgcd, GIgcdex, GIhermite, GIissqr,
GIlcm, GImcmbine, GInearest, GInodiv, GInorm, GInormal, GIorder, GIphi, GIprime, GIquadres, GIquo, GIrem,
GIroots, GIsieve, GIsmith, GIsqrfree, GIsqrt, GIunitnormal]
>> maple('GaussInt[GIprime](5+7*i);')
ans =
false
>> maple('GaussInt[GIprime](5+7*i)')
ans =
false
GaussInt[GIprime]判断高斯整数m是否为高斯素数

纪岗:Matlab语言在初等数论中的应用
http://www.docin.com/p-970648613.html
1.1求两个自然数的最大公约数的Matlab程序
a=input('请输入正整数a=');
b=input('请输入正整数b=');
yue=1;
for i=1:1:a
c=mod(a,i);
d=mod(b,i);
if c==0 && d==0
yue=i;
end
end
disp(['正整数',num2str(a),'与',num2str(b),'的最大公约数是',num2str(yue)])
请输入正整数a=18
请输入正整数b=24
正整数18与24的最大公约数是6
 >> bei=a*b/yue
bei =
    72
2.1生成小于n的所有素数表的Matlab程序——应该是小于等于
n=input('请输入正整数n=');
prime=[2 3 5];
for i=6:n
p=1;
for j=2:floor(sqrt(i))
if mod(i,j)==0
p=0;
break;
end
end
if p
prime=[prime i];%生成素数表
end
end
disp(['小于正整数',num2str(n),'的素数有',num2str(prime)])
请输入正整数n=30
小于正整数30的素数有2   3   5   7  11  13  17  19  23  29
请输入正整数n=30
小于正整数30的素数有2   3   5   7  11  13  17  19  23  29
>> find(prime==n)
ans =
   Empty matrix: 1-by-0
>> if find(prime==n) disp('是素数');else disp('不是素数');end
不是素数
请输入正整数n=97
小于正整数97的素数有2   3   5   7  11  13  17  19  23  29  31  37  41  43  47  53  59  61  67  71  73  79  83  89  97
>> if find(prime==n) disp('是素数');else disp('不是素数');end
是素数
>> find(prime==n)
ans =
    25
请输入正整数n=91
小于正整数91的素数有2   3   5   7  11  13  17  19  23  29  31  37  41  43  47  53  59  61  67  71  73  79  83  89
>> if find(prime==n) disp('是素数');else disp('不是素数');end
不是素数
>> find(prime==n)
ans =
   Empty matrix: 1-by-0
又如2^19-1=524287是素数(梅森素数),1000001不是素数。

第六章 线性代数的应用以及Matlab实现
http://www.docin.com/p-777042231.html
det行列式
>> syms a b c d
>> D=[a b;c d]
 
D =
 
[ a, b]
[ c, d]
 
 
>> D1=det(D)
 
D1 =
 
a*d-b*c
inv矩阵的逆
>> D2=inv(D)
 
D2 =
 
[  d/(a*d-b*c), -b/(a*d-b*c)]
[ -c/(a*d-b*c),  a/(a*d-b*c)]
求矩阵X,使DX=D1
X=D\D1=inv(D)*D1
>> syms a1 b1 c1 d1
>> D1=[a1 b1;c1 d1]
 
D1 =
 
[ a1, b1]
[ c1, d1]
 
>> X=D2*D1
 
X =
 
[ -d/(-a*d+b*c)*a1+b/(-a*d+b*c)*c1, -d/(-a*d+b*c)*b1+b/(-a*d+b*c)*d1]
[  c/(-a*d+b*c)*a1-a/(-a*d+b*c)*c1,  c/(-a*d+b*c)*b1-a/(-a*d+b*c)*d1]
 
 
>> X1=D\D1
 
X1 =
 
[   (b*c1-a1*d)/(-a*d+b*c),   (b*d1-b1*d)/(-a*d+b*c)]
[ -(-c*a1+a*c1)/(-a*d+b*c),  -(a*d1-c*b1)/(-a*d+b*c)]
rank矩阵的秩
rref求矩阵A的列向量极大无关组
>> A=[1 -2 -1 0 2;-2 4 2 6 -6;2 -1 0 2 3;3 3 3 3 4];
>> b=rref(A)
b =
    1.0000         0    0.3333         0    1.7778
         0    1.0000    0.6667         0   -0.1111
         0         0         0    1.0000   -0.3333
         0         0         0         0         0
记A的5个列向量依次为a1,a2,a3,a4,a5,则a1,a2,a4是列向量组的一个最大无关组,且有a3=0.3333a1+0.6667a2,
a5=1.7778a1-0.1111a2-0.3333a4。
null返回齐次线性方程组Ax=0的一个基础解系
>> a=[1 1 -1 -1;2 -5 3 2;7 -7 3 1];
>> b=null(a,'r')%b的列向量为方程组的正交有理基
b =
    0.2857    0.4286
    0.7143    0.5714
    1.0000         0
         0    1.0000
>> b1=null(a)%b1的列向量为方程组的正交规范基
b1 =
    0.3090    0.1978
    0.6297    0.0857
    0.6529   -0.5341
    0.2858    0.8175
>> syms k1 k2
>> x=k1*b(:,1)+k2*b(:,2)
 
x =
 
 2/7*k1+3/7*k2
 5/7*k1+4/7*k2
            k1
            k2


何明高:在Matlab计算机语言程序中调用勒让德第一类完全椭圆积分
http://www.docin.com/p-1041230852.html
0前言
作者曾撰文介绍过矩阵实验以及能够方便、迅速、精确地在任意Matlab程序中调用雅可比椭圆正弦函数的程序和方法,其中的雅可比椭圆正弦函数sn(u,k)是勒让德第一类不完全正规椭圆积分的反演。
为此,作者编制了可以方便、迅速、精确地在矩阵实验室Matlab语言程序中调用第一类完全椭圆积分K(k)和K’(k)的程序K.m和KP.m。
1调用第一类完全椭圆积分两个M-文件
在文件K.m中,第一类完全椭圆积分K(k)的计算所采用的是算术几何平均法,式中的h是其辐角(amplitude),k为模数;而K的连带积分K’的计算则是根据其定义式:
K’=K(k’)求得,其中补模数k’定义为k’=sqrt(1-k^2)。
文件K.m如下:
function y=K(k)
%计算完全椭圆积分K(k)
%使用算术几何平均法
[m n]=size(k)
if m+n==2
k=[k k];
end
if m==1
k=k';
end
a(:,1)=ones(k);——这个Matlab函数文件压根跑不起来
b(:,1)=sqrt(ones(k)-k.*k);
c(:,1)=k;
i=1;
while max(c(:,i))>eps
a(:,i+1)=.5*(a(:,i)+b(:,i));
b(:,i+1)=sqrt(a(:,i).*b(:,i));
c(:,i+1)=.5*(a(:,i)-b(:,i));
i=i+1;
end
t=pi*ones(k)./(2*a(:,i));
if m+n==2
y=t(1,:);
elseif m==1
y=t;
else
y=t;
end
2、K(k)和K’(k)的调用方法及例证
两个函数的自变量k可以是标量(即1*1维矩阵),也可以是矢量。
>> K([0 .1 .2 .3 .4])
>>normcdf(-1) %正态分布的概率分布函数(正态分布累计概率密度函数),标准正态分布mu=0,sigma=1
ans=0.1587
>>normcdf(-1,0,1)
ans=0.1587
>>normcdf(0)
ans=0.5000
>>normcdf(1)
ans=0.8413
>>normcdf(2,1,1)
ans=0.8413
>>normcdf(2)
ans=0.9772
>>normcdf(7,3,2)
ans=0.9772
>>normpdf(-1) %正态分布的概率密度函数,标准正态分布mu=0,sigma=1
ans=0.2420
>>normpdf(-1,0,1)
ans=0.2420
>>normpdf(0)
ans=0.3989
>>normpdf(1)
ans=0.2420
>>normpdf(2,1,1)
ans=0.2420
>>normpdf(2)
ans=0.0540
>>normpdf(7,3,2)
ans=0.0270
>>besselj(0,0.05) %第一类整数阶贝塞尔函数
ans=0.9994
>>besselj(0,0.5)
ans=0.9385
>>besselj(0,5)
ans=-0.1776
>>besselj(0,50)
ans=0.0558

翟汝信:MATLAB在复变函数中的应用
http://www.docin.com/p-217996056.html
0引言
本论文较为全面的归纳总结了Matlab在复变函数论中的应用,用它的一些内部功能函数和自编函数来解决复变函数领域中的九个问题。它们是:
1、复数和复矩阵的生成
2、复数的七个方面的计算
3、复方程求根
4、复变函数的极限、连续、导数及解析性
5、复积分的计算
6、解析函数的构造
7、复变函数的图像
8、级数的展开
9、积分变换
 
1.1.1直接定义复数
>> syms i;
>> z=sym(3)+sym(2)*i
 
z =
 
3+2*i
 
 
>> syms i;
>> sym(-sqrt(5))+sym(sqrt(7))*i
 
ans =
 
-5^(1/2)+7^(1/2)*i
 
 
>> syms i;
>> sym(-5/6)+sym(-2/3)*i
 
ans =
 
-5/6-2/3*i
1.1.2用符号函数构造复数
可以利用subs函数构造一个复数,相关命令如下:
subs(z,{a,b},{m,n});把实数m和n赋值给复数z的实部a和虚部b。
>> syms a b i;
>> z=a+b*i
 
z =
 
a+b*i
 
 
>> subs(z,{a,b},{sym(3),sym(2)})
 
ans =
 
3+2*i
 
 
>> subs(z,{a,b},{sym(-sqrt(5)),sym(sqrt(7))})
 
ans =
 
-5^(1/2)+7^(1/2)*i
 
 
>> subs(z,{a,b},{sym(-5/6),sym(-2/3)})
 
ans =
 
-5/6-2/3*i
1.1.3用命令函数complex生成复数
>> z=sym(complex(3,2))
 
z =
 
(3)+(2)*sqrt(-1)
 
 
>> z=sym(complex(-sqrt(5),sqrt(7)))
 
z =
 
(-sqrt(5))+(sqrt(7))*sqrt(-1)
 
 
>> z=sym(complex(-5/6,-2/3))
 
z =
 
(-5/6)-(2/3)*sqrt(-1)
2.5复数的幂运算
>> z1=sym((1+i)^100)
 
z1 =
 
-1125899906842624
 
 
>> z1=sym((1-i)^101)
 
z1 =
 
(-1125899906842624)+(1125899906842624)*i
3复数方程求根
>> syms z;
>> solve('z^2+4*z+8=0')
 
ans =
 
 -2+2*i
 -2-2*i
4.1用Matlab计算复变函数的极限
>> syms z
>> f=z/(1+z)
 
f =
 
z/(1+z)
 
 
>> limit(f,z,1+i)
 
ans =
 
3/5+1/5*i
>> syms z;
>> f=z/(1+z^2);
>> limit(f,i)
 
ans =
 
NaN
故函数f(z)=z/(1+z^2)在z=i点的极限不存在。
4.2用Matlab判断复变函数的连续性
function lxpd(f,u0,v0)
syms z x y;
z0=input('z0=');%输入要判断的点
u0=input('u0=');%输入要判断的点处函数值的实部
v0=input('v0=');%输入要判断的点处函数值的虚部
f=input('f=');%输入要判断的函数
f=subs(f,z,x+i*y);
u=(f+conj(f))/2;
v=(f-conj(f))/(2*i);
u1=limit(limit(u,x,z0(1)),y,z0(2));
v1=limit(limit(v,x,z0(1)),y,z0(2));
if u1==u0 && v1==v0
disp('连续')
else
disp('不连续')
end
>> lxpd
z0=[0,1]
u0=0
v0=1
——分段函数,f(i)=i,f(-i)=-i,其他情况f(z)=z/(1+z^2)
f=z/(1+z^2)
不连续
由此可知函数f(z)=z/(1+z^2)在z=i点不连续。
>> lxpd
z0=[0,1]
u0=0
v0=-1
f=conj(z)
连续
由此可知函数f(z)=~z在z=i点连续。
——错误的输入:
>> lxpd
z0=[0,1]
u0=0
v0=1
f=conj(z)
不连续 
4.3用Matlab计算复变函数的导数
复变函数的导数求解用函数diff实现,其调用格式为:
diff(f):求函数f(z)的导数;
diff(f,'z')或diff(f,sym('z')):对自变量z求符号表达式f的微分;
diff(f,n):求函数f(z)的n阶导数。
>> syms z
>> f=(2*z^2+i)^5;
>> ds=diff(f,z)
 
ds =
 
20*(2*z^2+i)^4*z
>> j=subs(ds,z,i/2)
j =
 -15.0000 - 4.3750i
>> ds3=diff(f,3)
 
ds3 =
 
3840*(2*z^2+i)^2*z^3+960*(2*z^2+i)^3*z
 
 
>> j3=subs(ds3,z,i/2)
j3 =
 -3.6000e+002 +1.0200e+003i
>> syms z
>> f=(2*z^2+i)^5
 
f =
 
(2*z^2+i)^5
 
 
>> ds=diff(f);
>> syms i
>> j=subs(ds,z,i/2)
 
j =
 
10*(1/2*i^2+i)^4*i
 
 
>> ds3=diff(f,3)
 
ds3 =
 
3840*(2*z^2+i)^2*z^3+960*(2*z^2+i)^3*z
 
 
>> j3=subs(ds3,z,i/2)
 
j3 =
 
480*(1/2*i^2+i)^2*i^3+480*(1/2*i^2+i)^3*i
由此可知(2z^2+i)^5在z=i/2处的一阶导数和三阶导数分别为:
10(-1/2+i)^4i和480(-1/2+i)^2i+480(-1/2+i)^3i。
实验一 MATLAB计算留数和积分
http://www.docin.com/p-744253508.html
求孤立奇点处的留数
当z0是简单极点时,用Matlab语句R=limit(f*(z-z0),z,z0)求函数的留数。
当z0是m阶极点时,用Matlab语句R=limit(diff(f*(z-z0)^m,z,m-1)/prod(1:m-1),z,z0)求函数的留数。
试求函数f(z)=(1/(z^3(z-1)))sin(z+pi/3)e^(-2pi)的孤立奇点处的留数。
z=0是三阶极点,z=1是简单极点
使用下面的Matlab语句分别求出这两个奇点的留数。
 
>> syms z
>> f=sin(z+pi/3)*exp(-2*z)/(z^3*(z-1))
 
f =
 
sin(z+1/3*pi)*exp(-2*z)/z^3/(z-1)
 
 
>> R=limit(diff(f*z^3,z,2)/prod(1:2),z,0)
 
R =
 
-1/4*3^(1/2)+1/2
 
 
>> R1=limit(f*(z-1),z,1)
 
R1 =
 
1/2*exp(-2)*sin(1)+1/2*exp(-2)*cos(1)*3^(1/2)
对于有理函数的留数计算,在Matlab中用函数Residue。
调用格式如下:
[R,P,K]=residue(B,A)
说明:向量B为f(z)的分子系数;向量A为f(z)的分母系数;向量R为留数;向量P为极点位置;向量k为直接项:
直接项是指有理分式f(z)=B(z)/A(z)的展开式中的K(z),即为没有奇点的项。
求函数(z^2+1)/(z+1)在奇点处的留数。
>> [R,P,K]=residue([1,0,1],[1,1])
R =
     2

P =
    -1

K =
     1    -1
求函数f(z)=(z^3-z^2+1)/((z-1)(z-3))在奇点处的留数。
>> [R,P,K]=residue([1,-1,0,1],[1,-4,3])
R =
    9.5000
   -0.5000

P =
     3
     1

K =
     1     3
实验六、利用MATLAB计算复变函数在孤立奇点处的留数及进行复积分
http://www.docin.com/p-556074810.html
在孤立奇点处的留数——通过求极限的方法计算留数
已知奇点a和重数m
非闭合路径的积分,用函数int求解,方法同微积分部分的积分。
>> z1=int('exp(2*z)','z',-pi*i,3*pi*i)
 
z1 =
 
0
 
 
>> syms z
>> z2=int(cosh(3*z),z,pi/6*i,0)
 
z2 =
 
-1/3*i
说明:在z1中定义表达式为符号;在z2中,先定义符号变量,再进行积分。两种方法都可行,且结果一样。 
对沿闭合路径的积分,先计算闭区域内各孤立奇点的留数,再利用留数定理可得积分。
计算z/(z^4-1)沿正向圆周|z|=2的积分。
先求被积函数的留数。
>> [r,p,k]=residue([1,0],[1,0,0,0,-1])
r =
   0.2500         
  -0.2500 + 0.0000i
  -0.2500 - 0.0000i
   0.2500         

p =
   1.0000         
  -0.0000 + 1.0000i
  -0.0000 - 1.0000i
  -1.0000         

k =
     []
可见在圆周|z|=2内有四个极点,所以积分值等于2*pi*(0.25+0.25-0.25-0.25)=0。
定积分和广义积分

>> syms x;
>> int(exp(-x),0,inf)
 
ans =
 
1
 
 
>> int(1/(x*log(x)),2,inf)
 
ans =
 
Inf
 
 
>> int(1/(x*x+1),-inf,inf)
 
ans =
 
pi
 
 
>> int(x*exp(-x),0,inf)
 
ans =
 
1
>> int('t*exp(-t)','t',0,inf)
 
ans =
 
1
 
 
>> int(1/(x-1)^2,0,2)
 
ans =
 
Inf
 
 
>> int(1/(sqrt(x)+1),0,4)
 
ans =
 
-2*log(3)+4
不定积分
>> syms x
>> int(tan(x)^2)
 
ans =
 
tan(x)-x
 
 
>> int(sin(x/2)^2)
 
ans =
 
-cos(1/2*x)*sin(1/2*x)+1/2*x
 
 
>> int((x^2+1)/(x^3-2*x^2+x))
 
ans =
 
log(x)-2/(x-1)
 
 
>> int(1/x^2)
 
ans =
 
-1/x
 
 
>> int(1/x)
 
ans =
 
log(x)
MATLAB在级数中的应用
http://wenku.baidu.com/link?url=PnZ_aYl4ElaiatLZhs21gZF7i-z7Gbkp1v1opQKjG4FV2Zm5ew4Bm01gqsKGDe5nWsHVCnHFcBpJpvW0sNX-BbgOqSryTH_PV7bJ4dEwJES
用于级数求和的命令是symsum,该命令的应用格式为:
symsum(comiterm,v,a,b)
>> clear
>> syms n
>> f1=(2*n-1)/2^n;
>> f2=1/(n*(2*n+1));
>> I1=symsum(f1,n,1,inf)
 
I1 =
 
3
 
 
>> I2=symsum(f2,n,1,inf)
 
I2 =
 
2-2*log(2)
本例是收敛的情况,如果发散,则求得的和为inf,因此,本方法可以同时解决求和问题和收敛性问题。
>> clear
>> syms n x
>> f3=sin(x)/n^2
 
f3 =
 
sin(x)/n^2
 
 
>> f4=(-1)^(n-1)*x^n/n
 
f4 =
 
(-1)^(n-1)*x^n/n
 
 
>> I3=symsum(f3,n,1,inf)
 
I3 =
 
1/6*sin(x)*pi^2
 
 
>> I4=symsum(f4,n,1,inf)
 
I4 =
 
log(1+x)
从这个例子可以看出,symsum这个函数不但可以处理常数项级数,也可以处理函数项级数。
用于幂级数展开的函数为taylor,具体格式为:
taylor(function,n,x,a)
function是待展开的函数表达式,n为展开项数,缺省是展开至5次幂,即6项,x是function中的变量,a为函数的展开点,缺省为0,即麦克劳林展开。
>> clear
>> syms x
>> f=sin(x);
>> taylor(f)
 
ans =
 
x-1/6*x^3+1/120*x^5
 
 
>> taylor(f,20)
 
ans =
 
x-1/6*x^3+1/120*x^5-1/5040*x^7+1/362880*x^9-1/39916800*x^11+1/6227020800*x^13-1/1307674368000*x^15+1/355687428096000*x^17-1/121645100408832000*x^19
函数的傅里叶级数展开
求傅里叶系数
>> clear
>> syms x n
>> f=x^2
 
f =
 
x^2
 
 
>> a0=int(f,x,-pi,pi)/pi
 
a0 =
 
2/3*pi^2
 
 
>> an=int(f*cos(n*x),x,-pi,pi)/pi
 
an =
 
2*(n^2*pi^2*sin(pi*n)-2*sin(pi*n)+2*pi*n*cos(pi*n))/n^3/pi
 
 
>> bn=int(f*sin(n*x),x,-pi,pi)/pi
 
bn =
 
0
黄青群,罗日才:Matlab在微分几何教学中的应用研究
http://www.doc88.com/p-9428180599511.html
摘要:介绍Matlab在微分几何的向量计算,向量函数的微分,曲线弧长,曲线的曲率与挠率,曲面的第一、第二基本形式与面
积的计算以及图形的描绘等方面的应用,为微分几何的计算机辅助教学提供可借鉴的范例。
>> v1=[1 2 3];v2=[4 5 6];v1*v2'%求向量的内积
ans =
    32
>> syms i j k
>> A=[i j k;1 2 3;4 5 6];det(A)%求向量的叉积
 
ans =
 
-3*i+6*j-3*k
 
 
>> syms t;r=[t sin(t) cos(t)];diff(r)%求向量r的一阶导
 
ans =
 
[       1,  cos(t), -sin(t)]
 
 
>> limit(r,t,0)%求向量r的极限
 
ans =
 
[ 0, 0, 1]
 
 
>> syms a b;x=[a*cos(t) a*sin(t) b*t];y=diff(x);%求向量x的一阶导
>> int(mo(y),t,0,a)
 
sum =
 
a^2*sin(t)^2
 
 
 
sum =
 
a^2*sin(t)^2+a^2*cos(t)^2
 
 
 
sum =
 
a^2*sin(t)^2+a^2*cos(t)^2+b^2
 
 
 
rchamo =
 
(a^2+b^2)^(1/2)
 
 
 
ans =
 
(a^2+b^2)^(1/2)*a


精通Matlab6.5
矩阵的分行输入
指令的续行输入
>> A=[1,2,3;4,5,6;7,8,9]
A =
     1     2     3
     4     5     6
     7     8     9
>> A=[1,2,3
4,5,6
7,8,9]
A =
     1     2     3
     4     5     6
     7     8     9
>> S=1-1/2+1/3-1/4+...
1/5-1/6+1/7-1/8
S =
    0.6345
复数
>> z1=3+4i
z1 =
   3.0000 + 4.0000i
>> z1=3+4*i
z1 =
   3.0000 + 4.0000i
>> z2=1+2i
z2 =
   1.0000 + 2.0000i
>> z3=2*exp(i*pi/6)
z3 =
   1.7321 + 1.0000i
>> z=z1*z2/z3
z =
   0.3349 + 5.5801i
复数矩阵的生成及运算
>> A=[1,3;2,4]-[5,8;6,9]*i
A =
   1.0000 - 5.0000i   3.0000 - 8.0000i
   2.0000 - 6.0000i   4.0000 - 9.0000i
>> B=[1+5i,2+6i;3+8*i,4+9*i]
B =
   1.0000 + 5.0000i   2.0000 + 6.0000i
   3.0000 + 8.0000i   4.0000 + 9.0000i
>> C=A*B
C =
  1.0e+002 *
   0.9900             1.1600 - 0.0900i
   1.1600 + 0.0900i   1.3700
复数矩阵的实部、虚部、模和相角
>> C_real=real(C)
C_real =
    99   116
   116   137
>> C_imag=imag(C)
C_imag =
     0    -9
     9     0
>> C_magnitude=abs(C)
C_magnitude =
   99.0000  116.3486
  116.3486  137.0000
>> C_phase=angle(C)*180/pi
C_phase =
         0   -4.4365
    4.4365         0
>> a=-8;
>> r=a^(1/3)
r =
   1.0000 + 1.7321i
一元函数的数值积分
闭型数值积分
>> syms x;IS=int('exp(-x*x)','x',0,1)
 
IS =
 
1/2*erf(1)*pi^(1/2)
 
 
>> vpa(IS)
 
ans =
 
.74682413281242702539946743613185
Matlab积分
http://www.docin.com/p-35456542.html
符号积分
int(f,v)
int(f,v,a,b)
计算定积分
>> syms x
>> int(exp(-x^2),0,1)
 
ans =
 
1/2*erf(1)*pi^(1/2)
>> vpa(int(exp(-x^2),0,1))
 
ans =
 
.74682413281242702539946743613185
数值积分
quad(fun,a,b,tol)%采用递推自适应Simpson法计算积分
>> quad('exp(-x.^2)',0,1,1e-8)
ans =
    0.7468
trapz(x,y)%梯形法沿列方向求函数Y关于自变量X的积分
>> d=0.001;x=0:d:1;d*trapz(exp(-x.^2))
ans =
    0.7468

离散卷积
>> f1=[2 2 2];
>> f2=[1 4 9];
>> y=conv(f1,f2)
y =
     2    10    28    26    18

MATLAB入门教程
Win8+Matlab7.1测试例子:

  To get started, select MATLAB Help or Demos from the Help menu.
>>  (5*2+1.3-0.8)*10/25
ans =
    4.2000
>> x = (5*2+1.3-0.8)*10^2/25
x =
    42
>> y = sin(10)*exp(-0.3*4^2);
>> y
y =
   -0.0045
>> x = [1 3 5 2];
>> y = 2*x+1
y =
     3     7    11     5
>> y(3) = 2 % 更改第三个元素
y =
     3     7     2     5
>> y(6) = 10 % 加入第六个元素
y =
     3     7     2     5     0    10
>> y(4) = [] % 删除第四个元素
y =
     3     7     2     0    10
>> x(2)*3+y(4) % 取出x的第二个元素和y的第四个元素来做运算
ans =
     9
>> y(2:4)-1 % 取出y的第二至第四个元素来做运算
ans =
     6     1    -1
>> z = x'
z =
     1
     3
     5
     2
>> length(z) % z的元素个数
ans =
     4
>> max(z) % z的最大值
ans =
     5
>> min(z) % z的最小值
ans =
     1
>> A = [1 2 3 4; 5 6 7 8; 9 10 11 12];
>> A(2,3) = 5 % 改变位於第二列,第三行的元素值
A =
     1     2     3     4
     5     6     5     8
     9    10    11    12
>> B = A(2,1:3) % 取出部份矩阵B
B =
     5     6     5
>> A = [A B'] % 将B转置後以行向量并入A——行列说反了
A =
     1     2     3     4     5
     5     6     5     8     6
     9    10    11    12     5
>> A(:, 2) = [] % 删除第二行(:代表所有列)——行列说反了
A =
     1     3     4     5
     5     5     8     6
     9    11    12     5
>> A = [A; 4 3 2 1] % 加入第四列——行列说反了
A =
     1     3     4     5
     5     5     8     6
     9    11    12     5
     4     3     2     1
>> A([1 4], :) = [] % 删除第一和第四列(:代表所有行)——行列说反了
A =
     5     5     8     6
     9    11    12     5
Matlab R2010b 破解版
http://www.cr173.com/soft/21627.html
《MATLAB基础》实验讲义
http://www.docin.com/p-10049655.html
美国MathWorks公司推出的Matlab是一种集数值计算、符号、运算、可视化建模、仿真和图形处理等多种功能于一体的优秀编程、仿真工具。
Matlab是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。
指令窗Command Window,在该窗可键入各种送给Matlab运作的指令、函数、表达式,并显示除图形外的所有运算结果。
历史指令窗Command History,该窗记录已经运行过的指令、函数、表达式。允许用户对它们进行选择复制、重运行,以及产生M文件。
工作空间浏览器Workspace Browser,该窗口罗列出Matlab工作空间中所有的变量名、大小、字节数。并且在该窗中,可以对变量进行观察、编辑、提取和保存。
其它还有当前目录浏览器Current Directory Browser、M文件编辑/调试器Editor/Debugger以及帮助导航/浏览器Help Navigator/Browser等,但通常不随操作界面的出现而启动。
Matlab语言最基本的赋值语句结构为:变量名列表=表达式。表达式由操作符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量中并存放于工作空间中以备调用。
编写M脚本文件的步骤:
点击New File图标,就可打开Matlab文件编辑调试器Matlab Editor/Debugger,其窗口名为untitled。用户即可在空白窗口中编写程序。
Matlab使用变量前不需要声明数据类型,对于所有的数值型数据Matlab均以Double型存储。
Matlab提供了5种控制流的结构:for循环结构,while循环结构,if-else-end分支结构(单分支、双分支、多分支),switch-case结构,try-catch结构。
MATLAB应用技术
http://www.docin.com/p-100676076.html
1984年推出Matlab的正式版,1992年推出Matlab4.0版,1993年推出微机版,到2005年为止,先后推出了Matlab4.x、Matlab5.x、Matlab6.x、Matlab7.x等版本。
常见的Matlab工具箱:
1、通信工具箱Communications Toolbox
2、控制系统工具箱Control Systems Toolbox
3、数据获得工具箱Data Acquisition Toolbox
4、数据库工具箱Database Toolbox
5、滤波器设计工具箱Filter Design Toolbox
6、模糊逻辑工具箱Fuzzy Logic Toolbox
7、图像处理工具箱Image Processing Toolbox
8、神经网络工具箱Neural Network Toolbox
9、模型预测控制工具箱Model Predictive Control Toolbox
10、优化工具箱Optimization Toolbox
11、鲁棒控制工具箱Robust Control Toolbox
12、信号处理工具箱Signal Processing Toolbox
13、统计学工具箱Statistics Toolbox
14、系统辨识工具箱System Identification Toolbox
15、小波分析工具箱Wavelet Toolbox
16、偏微分方程工具箱Partial Differential Equation Toolbox
17、高阶谱分析工具箱High-order Spectral Analysis Toolbox
18、样条工具箱Spline Toolbox
19、定点运算模块集Fixed-Point Blockset
Matlab的安装需要定制选择工具箱
Matlab命令窗口:
工作空间窗口
历史命令窗口
当前工作路径窗口
当前工作路径选择
命令窗口
Matalb是一种类似BASIC语言的解释性语言,>>标志为Matlab的命令提示符,其后的内容才是用户输入的信息。每行命令
输入完后,只有用回车键进行确定后,命令才会被执行。
Matlab常用命令
1、空间管理命令
who、whos、clear、save、load、clc、exist
2、数据格式命令
format、sym、vpa
3、在线帮助
help、lookfor、从菜单中获得帮助

Matlab的M文件有两种形式:文本文件和函数文件。
1、文本文件
例如,建立一个正弦函数
在M文件编辑器中输入以下程序:
i=-pi:0.1:pi;
y=sin(i)
保存为myfile.m文件
在Matlab命令窗口中输入命令:
>>myfile回车
2、函数文件
函数文件允许有多个输入参数和多个输出参数值。其基本格式如下:
fuction[f1,f2,f3,…]=fun(x,y,z,…)
注释说明语句
函数体语句
其中,x,y,z,…是形式输入参数;f1,f2,f3,…是返回的形式输出参数值;fun是函数名。
M文件的管理
文件管理命令与功能
命令名,实现功能
cd,显示当前目录
x=cd,返回当前工作目录到目录x
cd path,改变目录到path
delete wq,删除文件wq.m
dir,列出当前目录的文件
matlabroot,返回到matlab根目录
path,显示或修改matlab的搜索路径
type wq,在命令窗口显示wq.m文件
what,显示当前目录的M文件和MAT文件
which wq显示wq.m所在目录
输入与输出函数
Input函数
函数的调用格式为:变量名=input(提示信息,选项)
disp函数
其调用格式为:disp(变量名)
fopen函数
打开文件函数fopen的语句格式为:文件句柄=fopen(文件名,文件类型)
其他相关函数
int2str
num2str
Matlab的矩阵运算
矩阵的实现
1、直接列出元素的形式
2、通过语句和函数产生
3、建立在文件中
4、从外部的数据文件中装入
特殊矩阵的实现
eye、eros、ones、rand、diag、compan、triu、tril
矩阵的运算
转置、加、减、乘、除、乘方、翻转、超越函数、关系运算、关系和逻辑运算函数
Matlab的向量运算
加、减、乘、除、乘方
Matlab的绘图功能
二维图形
1、基本形式
最基本的绘图函数为plot
>>y=[0 0.48 0.84 1 0.91 0.6 0.14]
plot(y)
则显示一条曲线。
2、多条线型
绘制多条线型,基本命令格式为plot(x1,y1,x2,y2,…,xn,yn)
>>x=0:0.12*pi;plot(x,sin(x),x,cos(x))
3、图形修饰及文本标注
带有物质基础的曲线绘制命令的调用格式为:
plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)
其中x1,x2,…xn为x轴变量,y1,y2,…yn为y轴变量。
颜色字符:b,g,r,c(青色),m(紫红色),y(黄色),k(黑色),w(白色)
线型字符:圆圈、叉号、加号、星号、方形、菱形、六角形、上三角、点、实线(默认)、点连线、点划线、虚线、五角星、下三角、左三角
4、图形控制
窗口分割命令的调用格式为:subplot(n,m,k)
5、特殊坐标图形
极坐标曲线绘制函数:
polar(theta,rho,选项)
对数和半对数曲线绘制函数的调用格式分别为:
semilogx(x,y,选项) %绘制x轴为对数标度的图形
semilogy(x,y,选项) %绘制y轴为对数标度的图形
loglog(x,y,选项) %绘制两个轴均为对数标度的图形
6、利用鼠标绘制图形
Matlab允许利用鼠标来点选屏幕点,命令格式为:[x,y,button]=ginput(n) 
7、三维图形
plot3函数调用格式为:plot3(x,y,z,选项)
>>t=0:pi/50:10*pi;plot3(sin(t),cos(t),t)
Matlab提供了绘制三维表面网格图的函数,调用格式为:mesh(x,y,z,c)
关于三维图形的绘制,常用的其他命令有:
surf(x,y,z) %绘制三维表面图形
surfc(x,y,z) %绘制带有等高线的三维表面图形
surf1(x,y,z) %绘制带有阴影的三维表面图形
coutour(x,y,z) %等高线图形
 
simulink仿真技术
simulink是一个用来对动态系统进行建模、仿真和分析的软件包。它支持线性和非线性系统连续和离散时间模型,或者是两者的混合。
simulink是否安装,由安装Matlab时的选项检录决定。
MATLAB基本教程
http://www.docin.com/p-25915542.html
Matlab程序主要由主程序和各种工具包组成。
Matlab以矩阵作为基本数据单位。
通用操作指令
cd,设置当前工作目录
clear,删除所有变量
clc,清除指令窗中显示的内容
clf,清除图形窗
edit,打开M文件编辑器
type,显示指定M文件的内容
exit,quit推出Matlab
变量命名规则
区分大小写
第一个字符必须是英文字母
最多包含31个字符(字母、数字、下划线)
不能包含空格和标点
Matlab预定义变量
ans,计算结果的缺省变量名
eps,返回机器精度
realmax,返回计算机能处理的最大浮点数
realmin,返回计算机能处理的最小的非零浮点数
pi,3.14159265
inf,定义为1/0
NaN,定义为Not a Number
>> a=[1,-i,-1,i]
a =
  Columns 1 through 2
   1.0000                  0 - 1.0000i
  Columns 3 through 4
  -1.0000                  0 + 1.0000i
>> b=[1,i,-1,-i]
b =
  Columns 1 through 3
   1.0000                  0 + 1.0000i  -1.0000         
  Column 4
        0 - 1.0000i
>> dot(a,b)
ans =
     0

>> syms x y z
>> jacobian([x*y*z; y; x+z],[x y z])
 
ans =
 
[ y*z, x*z, x*y]
[   0,   1,   0]
[   1,   0,   1]
 
 
>> syms u v
>> jacobian(u*exp(v),[u;v])
 
ans =
 
[   exp(v), u*exp(v)]
 
 
>> x=0:0.1:10;
>> y=sin(x);
>> z=cumsum(y)*0.1;
>> plot(x,y,'r-',x,z,'k*')
>> syms x y
>> jacobian([sin(x)+cos(y),x*y],[x,y])
 
ans =
 
[  cos(x), -sin(y)]
[       y,       x]

MATLAB与VC交互的研究与实现
http://www.doc88.com/p-218794634126.html
%test.m
%function test(n)
该函数生成一个正弦函数的信号,并对一维信号进行余弦变换,得到其变换系数,最后将信号和变换系数在图形窗口中显示。
参数n为产生离散正弦函数信号的采样点数。
n=4;
if isstr(n)
n=str2num(n);
end
signal=sin([1:n]/n*(16*pi));%产生一个正弦函数的信号
subplot(211);
plot(signal);
coff_dct=dct(signal);%对信号signal进行DCT变换,得变换系数
subplot(212);
plot(coff_dct);
>> x=pi/6;y=sin(x);plot(x,y,'*');
方程求根的二分法
方程的根的存在性:若f(x)在闭区间[a,b]上连续,且f(a)*f(b)<0,则f(x)在开区间(a,b)内至少有一实根。
>> s=solve('x^3-2*x-5=0')
 
s =
 
                                                                             1/6*(540+12*1929^(1/2))^(1/3)+4/(540+12*1929^(1/2))^(1/3)
 -1/12*(540+12*1929^(1/2))^(1/3)-2/(540+12*1929^(1/2))^(1/3)+1/2*i*3^(1/2)*(1/6*(540+12*1929^(1/2))^(1/3)-4/(540+12*1929^(1/2))^(1/3))
 -1/12*(540+12*1929^(1/2))^(1/3)-2/(540+12*1929^(1/2))^(1/3)-1/2*i*3^(1/2)*(1/6*(540+12*1929^(1/2))^(1/3)-4/(540+12*1929^(1/2))^(1/3))
 
 
>> vpa(s)
 
ans =
 
                                      2.0945514815423265914823865405794
 -1.0472757407711632957411932702897+1.1359398890889281862454926290296*i
 -1.0472757407711632957411932702897-1.1359398890889281862454926290296*i
求f(x)=x^3-2x-5=0在区间[2,3]之间的根
f(2)=-1,f(3)=16
所以(2,3)是f(x)的有根区间。
f(2.09375)=-0.008942<0,f(2.109375)=0.166836>0
所以(2.09375, 2.109375)是f(x)的有根区间。
>> x=0:0.5:3;y=[0 0.4794 0.8415 0.9975 0.9093 0.5985 0.1411];
>> [f,f0]=Language(x,y,1.6)
 
f =
 
-799/3125*t*(t-1)*(t-3/2)*(t-2)*(t-5/2)*(t-3)+561/500*t*(t-1/2)*(t-3/2)*(t-2)*(t-5/2)*(t-3)-133/75*t*(t-1/2)*(t-1)*(t-2)*(t-5/2)*(t-3)+3031/2500*t*(t-1/2)*(t-1)*(t-
3/2)*(t-5/2)*(t-3)-399/1250*t*(t-1/2)*(t-1)*(t-3/2)*(t-2)*(t-3)+1411/112500*t*(t-1/2)*(t-1)*(t-3/2)*(t-2)*(t-5/2)
 
 
f0 =
    0.9996
>> lagrange(x,sin(x),0:0.1:2*pi);
一般地说,二次插值要比一次插值来得更精确些,但是要特别注意:并不是插值多项式的次数愈高愈精确,反而随着插值多项式次数的增高,计算量的增大,舍入误差的影响就会增大.实践证
明,在大范围内使用高次插值,逼近效果往往是不理想的,因此,实践中常用的是分段线性插值或分段抛物插值。
>> x=[0.32,0.34,0.36];y=[0.314567,0.333487,0.352274];
>> [f,f0]=Language(x,y,0.3367)
 
f =
 
-25*(-141668382398305475/9007199254740992*t+96334500030847723/18014398509481984)*(t-9/25)-50*(75094596446645225/4503599627370496*t-3003783857865809/562949953421312)*
(t-9/25)+50*(19831263189153925/2251799813685248*t-793250527566157/281474976710656)*(t-17/50)
 
 
f0 =
    0.3304
节点x_0=1,x_1=1和x_0=0,x_1=1/2,x_2=1,对函数y=e^(-x)分别建立线性和抛物插值公式。
带入线性插值公式得y=e^(-x)的线性插值公式为
P_1(x)=1-0.6321206x
带入抛物插值公式得y=e^(-x)的抛物插值公式为
P_2(x)=1-0.9417568x+0.3096362x^2
>> x=[0,1];y=[1,exp(-1)]
y =
    1.0000    0.3679
>> [f,f0]=Language(x,y,0.2)
 
f =
 
-1423408956596761/2251799813685248*t+1
 
 
f0 =
    0.8736
>> x=[0,0.5,1];y=[1,exp(-0.5),exp(-1)]
y =
    1.0000    0.6065    0.3679
>> [f,f0]=Language(x,y,0.2)
 
f =
 
-(-2*t+1)*(t-1)-2731571253070597/1125899906842624*t*(t-1)+828390857088487/1125899906842624*t*(t-1/2)
 
 
f0 =
    0.8240
利用e^(-x)的线性插值和抛物插值公式分别计算e^(-x)在点x=0.2处的近似值,得
P_1(0.2)=0.87358,P_2(0.2)=0.82403
显见,P_2(0.2)要比P_1(0.2)更接近于e^(-x)在0.2处的值0.81873。

第六章 函数的插值方法
插值可以理解为,要根据一个用表格表示的函数,计算表中没有的函数值。
表中有的称为节点,要计算的称为插值点,结果为插值。
插值在数学发展史上是个古老问题。
它最初来源于天体计算——由若干观察值(即节点)计算任意时刻星球的位置(即插值点和插值)——的需要。
在这里我们把多项式f(x)按降幂排列的系数所构成的向量V称为多项式f(x)的系数向量。
poly2sym函数的功能是把多项式的系数向量转化为符号多项式
>> f=poly2sym([12 0 -22 -53])
 
f =
 
12*x^3-22*x-53
 
 
>> f1=poly2sym([12 0 -22 -53],'t')
 
f1 =
 
12*t^3-22*t-53
 
 
>> f2=poly2sym([12 0 -22 -53],sym('t'))
 
f2 =
 
12*t^3-22*t-53
polyval函数的主要功能是估计多项式的值
>> P=[12 0 -22 -53];Y=polyval(P,1.5)
Y =
  -45.5000
poly函数的主要功能是把根转换成多项式的系数向量
>> A=[2 0 1;0 3 2;0 4 7];P=poly(A),T=poly2sym(P)
P =
    1.0000  -12.0000   33.0000  -26.0000
 
T =
 
x^3-12*x^2+33*x-26
分段线性插值
>> X=[-5,-3,-2,5];Y=[2,3,4,5];XI=1.375;
>> YI=interp1(X,Y,XI)
YI =
    4.4821
分段三次埃尔米特插值
>> YI=interp1(X,Y,XI,'pchip')
YI =
    4.7517
三次样条插值
>> X=[-1.00 -0.54 0.13 1.12 1.89 2.06 2.54 2.82 3.50];
>> Y=[-2.46 -5.26 -1.87 0.05 1.65 2.69 4.56 7.89 10.31];
>> XI=2.56;
>> Y1=spline(X,Y,XI),Y2=interp1(X,Y,XI,'spline')
Y1 =
    4.7302

Y2 =
    4.7302
http://video.chaoxing.com/play_400004404_54134.shtml
江铭炎教授主讲
画图功能在科研中非常重要。
C语言的画图功能不行。
矩阵实验室
可以当计算器用
交互性很好
工具箱好比C语言的函数库
对语言本身的投入很低
整个工具箱的函数源代码是开放的
http://video.chaoxing.com/play_400004404_54131.shtml
分号在矩阵里表示换行,分号在命令中表示不显示,分号可以调试程序
变量大小写是区别的
矢量:单行或单列的矩阵
矢量的赋值
x=start:end,增量是1
其他语言赋值要用一个循环
点乘:对应元素相乘
逗号前面表示行,逗号后面表示列,逗号前面的冒号表示所有行
zeros(n)
zeros(m,n)
http://video.chaoxing.com/play_400004404_54132.shtml
矩阵的相连:放在一个中括号里面即可,用逗号或空格分隔
取子矩阵:放在小括号里,只有1个数表示单行或单列,矩阵是一个矢量
大图象A中取小图象B:
B=A(行首:行尾,列首:列尾)
s=linspace(-5,5,100);
coeff=[1 3 3 1];
A=polyval(coeff,s);
plot(s,A)
xlabel('s')
ylabel('A(s)')
Matlab画图
plot
stem
grid
xlabel
ylabel
title
subplot
figure
pause
x=0:pi/100:2*pi;
y=sin(x);
plot(x,y)
xlabel('x=0:2\pi')
ylabel('Sine of x')
title('Plot of the Sine Function')
t=0:pi/100:2*pi;
y1=sin(t);
y2=sin(t+pi/2);
plot(t,y1,t,y2)
grid on
t=0:pi/100:2*pi;
y1=sin(t);
y2=sin(t+pi/2);
subplot(2,2,1)
plot(t,y1)
subplot(2,2,2)
plot(t,y2)
http://video.chaoxing.com/play_400004404_54133.shtml
A=zeros(32);
A(14:16,14:16)=ones(3);
F=abs(fft2(A));
mesh(F)
rotate3d on
if和end对应
.m
.mat是数据文件
.mex
求平均
Function y=mean(x)
http://video.chaoxing.com/play_400004404_114503.shtml
DSP绪论
数字信号处理:其主要标志是两项重大进展:即FFT算法的提出和数字滤波器设计方法的完善。
对信号的分析、处理
>> x=-0.9:0.1:5;
>> y=exp(x)./(x+1);
>> plot(x,y)
x>-1时,f(x)>0,即图像在x轴上方,先减后增
>> x=-5:0.1:-1.1;
>> y=exp(x)./(x+1);
>> plot(x,y)
x<-1时,f(x)<0,即图像在x轴下方,单调递减
由于lim[x->-1]f(x)=无穷,所以x=-1为曲线y=f(x)的铅直渐近线。
又因为lim[x->-无穷]e^x/(1+x)=0,所以y=0为该曲线的水平渐近线。
x=-10:0.4:10;
x1=x+1;
x2=exp(x);
y=x2./x1;
或y=exp(x)./(x+1);
plot(x,y)
xlabel('x!=-1的全体实数')
ylabel('y')
title('一元实函exp(x)/(1+x)的图像')
对应元素相除是数组之间的运算,而非矩阵之间的运算
>> A=[1,2,3,4,5,6,7,8,9]
A =
     1     2     3     4     5     6     7     8     9
>> B=[2,4,5,7,8,9,5,8,6]
B =
     2     4     5     7     8     9     5     8     6
>> A./B
ans =
    0.5000    0.5000    0.6000    0.5714    0.6250    0.6667    1.4000    1.0000    1.5000
>> A.\B
ans =
    2.0000    2.0000    1.6667    1.7500    1.6000    1.5000    0.7143    1.0000    0.6667




你可能感兴趣的:(Win8+Matlab7.1测试例子(20150109、0116、0124、0202、0207、0217))