1.分别把a=215/3的结果显示成小数点后15位和15位科学记数的格式(P15)
format long
a=215/32.分别计算当t=-4,t=45时,的解(结果显示成小数点后15位的格式)
t=-4y=exp(-sqrt(3)*t/2)*sin(4*sqrt(3)*t+pi/3)t=45y=exp(-sqrt(3)*t/2)*sin(4*sqrt(3)*t+pi/3)
1-4a=-8w1=a^(2/3)w2=(a^2)^(1/3)w3=(a^(1/3))^2w1=-1.999999999999999+3.4101615137754i w2=4.000000000000000w3=-1.999999999999999+3.4101615137754i
方根是多象限的,直接计算时得到的是第一象限的方根
1-6
(1)matlab 提供了控制数据显示格式的控制指令format,该指令并不改变matlab 内存变量
中的精度,中改变显示精度
实验2符号运算
2.1符号对象的建立
定义符号对象的指令:sym 和syms
调用格式:
sym(A)—把数字、字符串或表达式A 定义为符号对象
sym(A,B)—把数字或数值表达式A 定义为B 格式的符号对象
sym('C',D)—把D 指定的要求把字符串C 定义为符号对象
syms('C1','C2',...,'Cn',D)—把'C1','C2',...,'Cn'定义为符号对象
syms C1C2...Cn D—简洁形式
B—'d'、'f'、'e'、'r'
D—'positive'、'real'、'unreal'
2.2符号表达式的代数运算
1.符号数值的任意精度控制和运算P56
digits—显示当前环境下符号数值“十进制浮点”表示的有效数值位数
digits(n)—设定有效位数
xs=vpa(x)—根据表达式x 得到digits 指定精度下的符号数值xs
xs=vpa(x,n)—根据表达式x 得到n 位有效数字的符号数值xs
334sin(|23|4π+-=-t e t y t
2.符号对象与数值对象的转换
double(Num_sym)—把符号数值Num_sym 转换成双精度数值
3.自由符号变量P42
symvar(f)findsym(f)
symvar(f,n)findsym(f,n)
1.多种方法创建符号表达式:f1=sym('a*x^2+b*x+c')syms a b c x f2=a*x^2+b*x+c syms('a','b','c','x')f3=a*x^2+b*x+c
2.不同的办法创建符号数组:Syms a b c d e f F1=[a,b;c,d;e,f]F2=[a b;c d;e f]F3=[a,b
c,d
e,f]
3.对π+sin5分别创建数值类常量、符号类常量和字符串,并观察之间差异。(whos )clear f1=pi+sin(5)f2=sym('pi+sin(5)')f3='pi+sin(5)'
结果:
f1=2.1827f2=pi +sin(5)f3=pi+sin(5)
4.分别把数值表达式π+sin5定义为浮点数和十进制数格式符号对象。
clear f1=sym(pi+sin(5),'f')f2=sym(pi+sin(5),'d')5.确定符号数中的自变量clear syms a b w t e z v u ;f=[a+b*w cos(t)+u;w*exp(-t)log(z)+sin(v)]findsym(f,1)
2-1clear f1=3/7+0.1a1=class(f1)
2-2symvar(sym('sin(w*t)'),1)symvar(sym('a*exp(-X)'),1)symvar(sym('z*exp(j*th)'),1)2.3符号表达式的基本操作
c bx ax ++2⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡f e d c b a ,,,⎪⎪⎭⎫ ⎝⎛+++-v z we u t bw a t sin log ,cos ,
2.符号表达式的替换[RS,v]=subexpr(S,v)—用变量V 置换S 中重复出现的字符串,重写S 为RS 。RS=subs(S,old,new)—用new 替换S 中的old 后产生RS 2.4符号的微积分运算1.极限和导数的符号运算limit(f,v,a)limit(f,v,a,'right')limit(f,v,a,'left')diff(f,v,n)2.序列|级数的符号求和运算symsum(f,v,a,b)
3.符号积分运算int(f,v)int(f,v,a,b 7.化简syms y f=(sin(y))^2+(cos(y))^2simple(f)8.分别用新的变量t 替换x+2y 和sin(x)+cos(y)中的x syms x y t f1=subs(x+2*y,x,t)f2=subs(sin(x)+cos(y),x,t)9.求syms x f=(2^x)*exp(x)s=int(f,x)10.已知求syms a b x y f=[a b*(x^2);x*sin(y)log(x*y)]f1=diff(f,x,1)f2=diff(f,y,2)f3=diff(diff(f,x),y)11.求(求和运算后化简)syms k x f=[1/(2*k-1)^2,(-1)^k/k]s=simple(symsum(f,1,inf))
2-6(新书)syms x k f=x^(k);Z1=symsum(f,k,0,inf)subs(Z1,x,{sym(-1/3),sym('1/pi'),sym(3)})2-7syms k
)
(cos )(sin 22y y f +=⎰dx
e x x 2⎪⎪⎭⎫ ⎝⎛)ln(),sin(,2xy y x bx a dxdy
f d dy f d dx df 222,,∑∞=--12])1(,)
12(1[k k k k
syms x positive f=2/(2*k+1)*((x-1)/(x+1))^(2*k+1)s=simple(symsum(f,k,0,inf))2-9syms x clear syms x y=exp(-abs(x))*abs(sin(x))si=vpa(int(y,-5*pi,1.7*pi),)2-10syms x y f=x^2+y^2;r=int(int(f,y,1,x^2),x,1,2)
2.4符号矩阵分析det(A)—行列式|A|inv(A)—矩阵逆[RS,v]=subexpr(S,v)—用变量V 置换S 中重复出现的字符串,重写S 为RS 。2-5syms a11a12a13a21a22a23a31a32a33d A=[a11,a12,a13;a21,a22,a23;a31,a32,a33]A1=det(A)A2=inv(A)[A3,d]=subexpr(A2,d)2.5符号方程的求解1.符号代数方程的求解
S=solve('f','v')—求方程f 关于指定变量v 的解1)若不含等号则默认f=02)变量应以字符串形式S=solve('f1','f2',...'fn','v1','v2',...'vn')1)S.v1S.v2......S.vn 2)disp('S.v1='),disp(S.v1)
2.符号微分方程的求解S=dsolve('f','g','v')—'f '为微分方程;'g'为初始条件;'v'为指定自变量S=dsolve('f1','f2',...'fn','g1','g2',...'gn','v')1)不对自变量加以专门定义的话,默认t 为自变量2)Dny—表示‘y 的n 阶导数’;Dy 表示dy/dt 3)y(a)=b,Dy(c)=d 为初始条件的格式4)常数符C1,C25)S.y 6)输入量必须以字符串形式编写1
3.求解:syms a b c x f1=solve(a*x^2+b*x+c,x)1)2cos()sin(,2)2(,02=+=+=++x x x c bx ax x
f2=solve('(x+2)^x=2','x')f3=solve('sin(x)+cos(2*x)-1','x')14.求方程组:关于y,z 的解
s=solve('u*y^2+v*z+w=o,y+z+w=o','y,z')disp('s.y'),disp(s.y),disp('s.z'),disp(s.z)15.求微分方程组的通解以及在初始条件时的特解。s=dsolve('Dy=3*y-2*z,Dz=2*y-z','x')disp('s.y='),disp(s.y)disp('s.z='),disp(s.z)s1=dsolve('Dy=3*y-2*z,Dz=2*y-z','y(0)=1,z(0)=0','x')disp('s1.y='),disp(s1.y)disp('s1.z='),disp(s1.z)
2-3syms x positive s=solve('x^3-44.5=0','x')syms x clear syms a positive s1=solve(x^2-a*x+a^2,x)2-20s=solve('x^2+y^2=1,x*y=2','x,y')disp(s.x)disp(s.y)2-24x=dsolve('Dx=a*t^2+b*t','x(0)=2','t')pretty(x)2-25[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','f(0)=0,g(0)=1')
2.6符号计算结果的可视化常有的二维符号函数绘制指令格式:
ezplot(f,[tmin,tmax])—在指定t 的范围内,绘制f(t)描述的二维图形。subplot(m,n,t)17.绘制和在区间[0,10]上的图形。(在同
一个图中绘制,subplot)
syms t y=exp(-t)*sin(t/2)s=int(y,t,0,t)subplot(2,1,1)ezplot(y,[0,10])⎩⎨⎧=++=++002w z y w vz uy ⎪⎪⎩⎪⎪⎨⎧-=-=z y dx dz z y dx dy
223⎩⎨⎧==0)0(1)0(z y )2sin()(t e t y t -=⎰=t dt t y t s 0)()(
ezplot(s,[0,10])
2-11
clear
clf
syms t x
s=sin(t)/t
y=int(s,t,0,x)
y5=subs(y,x,sym('4.5'))
ezplot(y,[0,2*pi])
实验3数值数组及其运算
3.1数值数组的创建、标识、查询和定位
1.数值数组的创建
1)逐个元素输入法(real imag abs angle)2)冒号‘:’生成法
x=a:inc:b
3)定数线性采样法x=linspace(a,b,n)
4)定数对数采样法x=logspace(a,b,n)
5)利用MATLAB函数创建数组
diag()eye()ones()zeros()rand()P124
2.数组的标识P125
全下标A(m,n)A(m,:)A(:,n)单下标A(t)A(:)
3.数组的查询与定位
[m,n]=find(A>t)
l=length(A)查最大维数
[m,n]=size(A)
length(A)等价于max(size(A))
3.2数组运算和操作
1.P130A*B A.*B
2.数组的块操作
A(:,:)=t替换A(m,:)=B第M行用B代替
A(m,n)=t扩大矩阵A(m1:m2,n1:n2)缩小矩阵
3.数组的翻转操作P127
flipud(A)上下fliplr(A)左右rot90(A)逆时针
4.数组运算的常用数学函数P131
3.3"无穷大"、"非数","空"数组NaN
1.以0为初值,0.2为步距,1.76为终值,产生一个“行”数组
X=0:0.2:1.76
2.A=[1,2,3;4,5,6;7,8,9],用单下标标识,提取A阵中第7个元素,提取第二行的元素
A=[1,2,3;4,5,6;7,8,9]A(7)A(2,:)
3.找出A阵中大于5的元素的行、列位置,求出A的向量和维数
[m,n]=find(A>5)
x=length(A)[m,n]=size(A)4.产生一个2*5的全1数组,产生4*4的单位阵,取A 的对角元素B=ones(2,5)C=eye(4)D=diag(A)3-1x=0:2*pi/9:2*pi y=linspace(0,2*pi,10)
综合题:clf
t=0:0.1:10x=sin(t)y=cos(t)z=sin(2*t)w=cos(2*t)subplot(2,2,1),plot(t,x)subplot(2,2,2),plot(t,y)subplot(2,2,3),plot(t,z)subplot(2,2,4),plot(t,w)
实验4数值计算
4.1多项式运算P1771.多项式的表达和创建例:2.多项式的乘法和除法c=conv(a,b)[q,r]=deconv(a,b)3.多项式的微分polyder 4.多项式求解、求根y=polyvar(p,x)r=roots(p)p=poly(r)
5.部分分式展开[r,p,k]=residue(b,a)[b,a]=residue(r,p,k)1.多项式对两个多项式进行乘法、除法和微分运算
a=[1,2,0,-5,5]b=[1,2,3]c=conv(a,b)[q,r]=deconv(a,b)polyder(b)2.求a(x)在[-1,4]区间分布的5个离散点上的值x=linspace(-1,4,5)V=polyval(a,x)3.求出a(x)的根以及由多项式的根得出的系数m=roots(a)a=poly(m)4.有多项式为求部分分式展开,并将结果转回到原来的多项式b=[5,3,-2,7]a=[-4,0,8,3][r,p,k]=residue(b,a)[b1,a2]=residue(r,p,k)4.2数值微积分P1471.近似数值导数
x x x x x p 652)(234+-+=32)(,552)(234++=+-+=x x x b x x
x x a 3
847235)()(323++-+-+=x x x x x x a x b
dx=diff(x)—求差分df=gradient(f)—求一元(函数)差值[dx,dy]=gradient(f)—求二元(函数)差值2.数值求和与近似数值积分S=sum(X)S=cumsum(X)S=trapz(x,y)S=cumtrapz(x,y)
4-3dx=pi/2000x=0:dx:pi s=trapz(exp(sin(x).^3))*dx syms x f=exp(sin(x)^3)ss=int(f,x,0,pi)
实验5数据和函数的可视化
5.1二维曲线绘制的基本指令plot(x,y,‘s’)‘s’是字符串,用来修饰曲线,’r:o’,r 表示红色,:表示曲线的线型采用虚线,o 表示曲线上的离散点用圆圈标记P192
5.2坐标轴控制和图形标识1.坐标轴的控制P196axis auto axis equal axis normal axis on axis square axis([x1,x2,y1,y2])2.坐标刻度标识set(gca,’xtick ’,xs,’ytick ’,ys)set(gca,’xticklabel’,’s1’,’yticklabel’,’s2’)5.2坐标轴控制和图形标识3.网格和坐标框grid-网格box-封闭4.图形标识title(‘s’)—图形标题xlabel(‘s’)—横坐标名ylabel(‘s’)—纵坐标名text(x,y,’s’)—在坐标(x,y)处标注说明文字gtext(‘s’)—用鼠标在特定处标注说明文字注:1)输入特定文字用‘\\’开头;2)上下标和字体设置
5.图例注释legend(‘s1’,’s2’,…’sn ’,ps)ps=0,1,2,3,4,-11.绘制如下图形y(t)=1-2E-tsin(t)0≤t ≤8并在横坐标上标注“Time”,纵坐标标注“Amplitude”,图形标题为“Decaying-oscillating Exponential”(调整标题的字体大小)
t=0:0.1:8,y=1-2*exp(-t).*sin(t)plot(t,y,'r')title('\\fontsize{18}Decaying-oscillating Exponential')xlabel('\\fontsize{18}Time')ylabel('\\fontsize{18}Amplitude')2.在同一个图中绘制0<=t<=30,
t t e t e y 22.08.0)309.0cos(5--+-=
clf
clear
t=0:0.1:30
y=5*exp(-0.2*t).*cos(0.9*t-30)+0.8*exp(-2*t)
plot(t,y,'r')
hold on
z=cos(0.8*t)
plot(t,z,'bp','markersize',5)
legend('y','z')
3.在同一张图中用不同颜色绘制下列函数曲线:y(t)=0.625,
z(t)=1.23cos(2.83t+240)+0.65,其中0≤t≤10,并用鼠标在曲线z的最高点处用15号字标注‘→Max’并控制坐标轴的范(x=[1,5],y=[-1,2.5])
clf,clear
t=linspace(0,10,200)
y=0.625
plot(t,y)
axis([1,5,-1,2.5])
hold on
z=1.23*cos(2.83*t+240)+0.625
plot(t,z,'r')
gtext('\\fontsize{15}\\rightarrowmax')
4.在一个图形窗中绘制两个子图,分别为:y1(t)=sin(2x)sin(3x),y2(t)=0.4x,要求给出x,y轴加上标注,每个子图加上题标,并标注y1(t)的最大值和最小值
clear
clf,x=0:0.1:10
y1=sin(2*x).*sin(3*x)
subplot(2,1,1)
plot(x,y1,'g:*')
title('\\fontsize{18}y1=sin(2*x).*cos(3*x)')
xlabel('\\fontsize{18}x')
ylabel('\\fontsize{18}y1')
gtext('\\fontsize{15}\\rightarrowMax')
gtext('\\fontsize{15}\\rightarrowMin')
hold on
y2=0.4*x
subplot(2,1,2)
plot(x,y2,'b')
title('\\fontsize{18}y2=0.4*x')
xlabel('\\fontsize{18}x')
ylabel('\\fontsize{18}y2')
5-1
clf,a=4,b=2,t=0:pi/80:2*pi
x=a*cos(t)plot(x,y,'r:.'),axis equal
xlabel('x')
ylabel('y')
5.3图形的控制、表现和双纵坐标
1.多次叠绘hold on hold off hold
2.图形窗的创建、选择和删除figure(m)clf shg close(m)
3.多子图subplot(m,n,t)
4.双纵坐标图plotyy(x1,y1,x2,y2)
说明:1)legend指令不能正常执行
2)text根据左纵轴决定,ylabel仅能标注左纵轴
5.4常用二维绘图指令和从图形中取数据
常用二维图形指令
area bar stem stairs semilogx polar
1.极坐标图形polar(theta,r,’s’)
2.二维杆图和阶梯曲线stem(t,y,’s’)stairs(t,y,’s’)
3.获取二维图形数据的指令[x,y]=ginput(n)
5-2
clf
a=0:pi/50:2*pi;
r=1-cos(a);
h=polar(a,r,'-r');
set(h,'LineWidth',4)
axis square
title('\\rho=1-cos\heta')
5.5三维曲线和曲面
1.plot3(X,Y,Z,’s’)
2.三维曲面/网线图
surf(X,Y.Z)mesh(X,Y,Z)——[x,y]=meshgrid(x,y) 3.修饰:
view([az,el])colormap(CM)
shading options—flat/interp/faceted
alpha(t)t=[0,1]
light(‘color’,a,’style’,b,’position’,c) lighting options—flat/gouraud/phong/none material options—shiny/dull/metal/default
4.图形的透视
hidden off hidden on
5.图形的镂空
NaN
5-5
t=0:0.01*pi:4*pi;y=cos(t);
z=t;
plot3(x,y,z,'-b','linewidth',3) box on
5-6
clf
x=-3:0.1:3;
y=x;
[X,Y]=meshgrid(x,y);
Z=4*X.*exp(-X.^2-Y.^2);
mesh(X,Y,Z)
hidden off
axis([-3,3,-3,3,-2,2])
5-7
clf
x=-4*pi:pi/10:4*pi;
y=x;
[X,Y]=meshgrid(x,y);
Q=X+Y;
Z=sin(Q)./Q;
surf(X,Y,Z)
shading interp
view([27,30])
xlabel('x'),ylabel('y'),zlabel('z') title('z=sin(x+y)/(x+y)')