MATLAB软件与基础数学实验.docx
- 文档编号:5361653
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:39
- 大小:227.34KB
MATLAB软件与基础数学实验.docx
《MATLAB软件与基础数学实验.docx》由会员分享,可在线阅读,更多相关《MATLAB软件与基础数学实验.docx(39页珍藏版)》请在冰豆网上搜索。
MATLAB软件与基础数学实验
MATLAB软件与基础数学实验
实验1MATLAB基本特性与基本运算
例1-1求[12+2×(7-4)]÷32的算术运算结果。
►(12+2*(7-4))/3^2
◄ans=2
例1-2计算5!
,并把运算结果赋给变量y
►y=5*4*3*2*1
◄y=120
例1-3
►sqrt
(2)%计算2开平方
◄ans=1.4142
例1-4
►x=sqrt
(2);%计算2开平方并赋值给变量x(不显示)
►x%查看x的赋值情况
◄x=1.4142
例1-5设
,计算
的值。
►a=pi/180*(-24);%转换为弧度值且不显示
►b=pi/180*75;%转换为弧度值且不显示
►z=sin(abs(a)+abs(b))/sqrt(tan(abs(a+b)))%计算结果并显示
◄z=0.8888
例1-6设三角形三边长为
,求此三角形的面积。
►a=4;b=3;c=2;%输入边长值且不显示
►s=(a+b+c)/2;
►A=s*(s-a)*(s-b)*(s-c);%计算面积平方且不显示
►A=sqrt(A)%计算面积并显示
◄A=2.9047
例1-7设
,
,计算
,
。
►A=[1,2,3;4,5,6;1,0,1];
►B=[-120;113;211];
►
◄ans=043
569
312
►
◄Ans=779
131921
131
►
%det为求方阵的行列式命令
◄ans=-6
►
%inv为方阵的求逆命令
◄ans=-0.83330.33330.5000
-0.33330.3333-1.0000
0.8333-0.33330.5000
例1-8显示上例中矩阵A的第2行第3列元素,并对其进行修改.
►A(2,3)
◄A(2,3)=6
若想把该元素改为-1,只要输入下列语句:
►A(2,3)=-1;
例1-9分别画出函数
和
在区间[-6
6
]上的图形。
►x=(-6:
0.1:
6)*pi;%从-6pi到6pi以0.1pi为步长生成向量x
►y=x.^2.*cos(x);%产生与x对应的函数值向量y(两向量对应元素乘积,用.*)
►z=sin(x)./(x+eps);%产生与x对应的函数值向量z(两向量对应元素相除,用./)
►subplot(1,2,1)%分图形窗口为1行2列,并在第一个子窗中绘图
►plot(x,y,'linewidth',2)%画函数y的曲线,默认为蓝色(参看实验2)
►grid%在第一个子窗中加坐标网格
►subplot(1,2,2)%在第二个子窗中绘图
►plot(x,z,'linewidth',2)%画函数z的曲线,默认为蓝色(参看实验2)
►grid%在第二个子窗中加坐标网格
例1-10试求方程组
的解。
►a=[1,2,1;4,2,-6;-1,0,2];%输入系数矩阵a
►b=[2;3;4];%输入右端列向量b
►d=det(a)%求系数矩阵的行列式
◄d=2
►c=inv(a)%求系数矩阵的逆阵
◄c=2.0000-2.0000-7.0000
-1.00001.50005.0000
1.0000-1.0000-3.0000
►x=c*b%矩阵左逆乘,结果为方程组的解
◄x=-30.0000
22.5000
-13.0000
►X=a\b%用\除法直接求方程组的解X(与上述x相同)
◄X=-30.0000
22.5000
-13.0000
►disp([a,b,x])%显示增广矩阵及解向量
◄1.00002.00001.00002.0000-30.0000
4.00002.0000-6.00003.000022.5000
-1.000002.00004.0000-13.0000
例1-11试求矩阵方程
的解。
►a=[1,2,1;4,2,-6;-1,0,2];%输入系数矩阵a
►b=[123;111];%输入右端矩阵b
►X=b/a%用/除法直接求方程组的解X
◄X=3.0000-2.0000-6.0000
2.0000-1.5000-5.0000
例1-12建立同时计算
,
的函数。
即任给a,b,n三个数,返回y1,y2.
function[y1,y2]=fun1(a,b,n)
%fun1isafunctionusedbyDEMOy1=(a+b)^n,y2=(a-b)^n
%CopyrightbyXJTU
y1=(a+b).^n;
y2=(a-b).^n;
例1-13设
,试画出在[0,2]上的曲线段。
►x=0:
0.01:
2;%生成自变量x
►y=1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6;%生成函数值y,注意点运算
►plot(x,y,'linewidth',2)%画函数曲线
►grid%加坐标网格
►f=inline('1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6');%生成数值函数f(x)
►fplot(f,[0,2])%画函数f在[0,2]上的曲线
►grid%加坐标网格
例如:
对于例题1-13中所定义的f(x),求其零点c.
►f=inline('1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6');%生成数值函数f(x)
►c=fzero(f,[0,2])%求函数f在[0,2]上的零点c,此处要求f(0)f
(2)<0
◄c=1.2995
►fzero(f,1)%求函数f在x=1附近的零点
◄ans=1.2995
例如:
求一元函数最小值(fminbnd命令)
►fy=inline('1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6');
►[xmin,fmim]=fminbnd(fy,0.2,0.8)%函数fy在[0.2,0.8]上最小值点及最小值
◄xmin=0.6370
◄fmim=11.2528
►ff=inline('-1./((x-0.3).^2+0.01)-1./((x-0.9).^2+0.04)+6');%函数ff=-fy
►[x,y]=fminbnd(ff,0.2,0.8);%函数ff在[0.2,0.8]上最小值点及最小值
►xmax=x
◄xmax=0.3004
►fmax=-y
◄fmax=96.5014
例如:
求例题1-13中所定义f(x)在[0,1]上的定积分
.
►f=inline('1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6');
►I=quad(f,0,1)%求f(x)在[0,1]上定积分
◄I=29.8583
例1-14求二重积分
及三重积分
。
►g=inline('x.*y','x','y');%建立二元函数g(x,y)=xy
►I=dblquad(g,0,1,1,2)%求g(x,y)在[0,1]×[1,2]上的二重积分
◄I=0.7500
►h=inline('x.*exp(y)+z.^2','x','y','z');%建立三元函数
►I=triplequad(h,0,1,0,1,0,1)%求h(x,y,z)在[0,1]×[0,1]×[0,1]上的三重积分
◄I=1.1925
例1-15已知
,设该曲线在区间[0,x]上所围曲边梯形面积为s,试求当s分别为5,10时的x的值。
分.
(1)对于s=5
►f=inline('1/4*x^4-5/3*x^3+3*x^2+5*x-5');%建立函数
►x=fzero(f,[0,5])%求解方程
在[0,5]上的根
◄x=0.7762
(2)对于s=10
►g=inline('1/4*x^4-5/3*x^3+3*x^2+5*x-10');
►x=fzero(g,[0,10])%求解方程
在[0,10]上的根
◄x=1.5179
例1-16利用MATLAB命令求解无理数的近似值。
(1)用函数零点命令(fzero)求无理数
的近似值;
(2)用定积分计算命令(trapz,quad,quadl)求无理数
的近似值。
(提示:
e=2.…,
=0.…)
(1)无理数
可以看成是方程
在x=2附近的实根,于是可以用fzero来求解。
►f=inline('log(x)-1');%建立函数
►x0=fzero(f,2);%求解方程
在x=2附近的根
►e=vpa(x0,10)%显示x0小数点后10位
◄e=2.
(2)由于无理数
,于是可以用trapz,quad,quadl命令分别来求解。
用梯形法(trapz)近似计算
►X=0:
0.01:
1;%产生[0,1]区间上的划分向量
►Y=1./(1+X);%求对应的分点处的函数值向量
►a=trapz(X,Y);%求用梯形法求出积分近似值
►ln2=vpa(a,10)%显示a小数点后10位
◄ln2=0.(注意:
已精确到小数点后4位)
用高阶方法(quad,quadl)近似计算
►f=inline('1./(1+x)');%建立被积函数f(x)
►a=quad(f,0,1);%用辛浦生方法求f在[0,1]上的积分近似值
►ln2=vpa(a,10)%显示a小数点后10位
◄ln2=0.(注意:
已精确到小数点后7位)
►a=quadl(f,0,1);%用高阶方法求f在[0,1]上的积分近似值
►ln2=vpa(a,10)%显示a小数点后10位
◄ln2=0.(注意:
已精确到小数点后9位)
例1-17求极限
。
►symsh
►fx=sym('(sin(x+h)-sin(x))/h');%建立符号函数fx
►limit(fx,h,0)%求fx:
h->0的极限
◄ans=cos(x)
例1-18:
设
,求
►symsxyn%声明符号变量,注意变量间必须用空格分开
►fx=x^n*y+sin(y);%建立符号函数
►diff(fx)%对变量x(默认)求一阶导数(偏导数)
◄ans=x^n*n/x*y即
►diff(fx,y)%对变量y求一阶导数(偏导数)
◄ans=x^n+cos(y)
►diff(fx,y,2)%对变量y求二阶导数(偏导数)
◄ans=-sin(y)
►diff(diff(fx,x),y)%先对x求导再对y求导(二阶混合偏导数)
◄ans=x^n*n/x即
例1-19:
求
,
,
,
►symsxyz%声明符号变量,注意变量间必须用空格分开
►f1=x*y/(1+x^2);%建立符号函数
►f2=x+y+z;
►int(f1)%对f1关于变量x(默认)求不定积分
◄ans=1/2*y*log(1+x^2)%即
►symst
►int(f1,0,t)%对f1关于变量x(默认)在[0,t]上求定积分
◄ans=1/2*log(1+t^2)*y%即
►int(int(f1,y,0,sqrt(x)),x,0,1)%对f1先求对y的积分再求对x的积分(二重积分)
◄ans=1/2-1/8*pi%即
►int(int(int(f2,z,0,1-x-y),y,0,1-x),x,0,1)%对f2先对zy的积分再求对x的积分(二重积分)
◄ans=1/8
级数求和(symsum)
►symsak
►symsum(1/k,1,inf)%求级数
(ans=inf即
)
►symsum(1/(k*(k+1)),1,inf)%求级数
(ans=1)
►symsum(a*1/3^k,k,0,inf)%求级数
(ans=3/2*a)
泰勒展开(taylor)
►symsx
►fy=1/(1+x+x^2)
►f=taylor(fy)%求fx对自变量x(默认)在x=0点(默认)泰勒展开前6项(默认)
►f=taylor(fy,8,1)%求fx对自变量x(默认)在x=1点泰勒展开式前8项
方程求根(solve)
►fx=sym('a*x^2+b*x+c');%建立符号函数
►solve(fx)%求方程fx=0的符号解
◄ans=[1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[1/2/a*(-b-(b^2-4*a*c)^(1/2))]
►symsb
►solve(fx,b)%求方程fx=0关于变量b的符号解
◄ans=-(a*x^2+c)/x
微分方程(组)求解(dsolve)
►dsolve('Dy=5')%求方程y'=5的通解,默认自变量为t
◄ans=5*t+C1
►dsolve('Dy=x','x')%求方程y'=x的通解,指定自变量为x
◄ans=1/2*x^2+C1
►dsolve('D2y=1+Dy','y(0)=1','Dy(0)=0')%求方程y''=1+y'满足y(0)=1,y'(0)=0的特解
◄ans=-t+exp(t)即
►[x,y]=dsolve('Dx=x+y,Dy=2*x')%求方程组
的通解,默认自变量为t
◄x=1/3*C1*exp(-t)+2/3*C1*exp(2*t)+1/3*C2*exp(2*t)-1/3*C2*exp(-t)
y=2/3*C1*exp(2*t)-2/3*C1*exp(-t)+2/3*C2*exp(-t)+1/3*C2*exp(2*t)
即
实验2MATLAB绘制二维、三维图形
例2-1在子图形窗口中画出
上正弦、余弦曲线。
►x=0:
0.1*pi:
2*pi;%按步长赋值生成x向量
►y=sin(x);z=cos(x);%生成正弦、余弦函数值y、z向量
►subplot(2,1,1)%分图形窗口为2行1列,并在第一个子窗中绘图
►plot(x,y,x,z)%在第一个子窗中画出正弦、余弦曲线
►subplot(2,1,2)%在第二个子窗中绘图
►plot(x,y,'k:
',x,z,'r-')%在第二个子窗中用不同颜色画两条曲线
►holdon%保持第二个子窗中绘图
►plot(x,y,'bo',x,z,'k+')%用'o'和'+'标记曲线上分点
►holdoff%取消图形保持
例2-2画出
上正弦、余弦曲线并对线型加粗、点型加大,重新定置坐标系以及加注相关说明和注释。
►x=0:
0.1*pi:
2*pi;%按步长赋值生成x向量
►y=sin(x);%生成正弦、余弦函数值y、z向量
►z=cos(x);
►plot(x,y,'b-',x,z,'k.-','linewidth',3,'markersize',15)
►axis([-0.2*pi2.2*pi–1.21.2])%重新设置图形窗口坐标轴范围
►grid%加注坐标网格
►xlabel('Variable\it{x}')%标记横坐标轴,\it{x}表示x为斜体
►ylabel('Variable\it{y}')%标记纵坐标轴
►title('SineandCosineCruves')%标记图名
►text(2.5,0.7,'Sin(x)')%在(2.5,0.7)位置,标记曲线名称
►text(1.5,0.1,'Cos(x)')%在(1.5,0.1)位置,标记曲线名称
►holdon%图形保持,在同一图形窗口中叠加图形
►plot([0,2*pi],[0,0],'r-.')%叠加一条红色的点划直线:
(0,0)到(2pi,0)
►holdoff%图形保持取消,再画图时将另辟窗口
例2-3分别在两个图形窗口画出填充一正方形和极坐标方程
的图形。
►h1=figure;%打开第一个图形窗口,返回其图标识号(句柄)h1
►x=[01100];%闭合图形的顶点横坐标向量
►y=[00110];%闭合图形的顶点纵坐标向量
►fill(x,y,'y')%填充闭合图形(用黄颜色)
►axis([-12-12])%重新设置坐标轴
►h2=figure;%打开第二个图形窗口,返回其图标识号(句柄)h2
►theta=linspace(0,2*pi);%对theta角的范围进行划分,生成分点向量
►rho=sin(2*theta).*cos(2*theta);%生成相应极坐标方程的极径rho向量
►polar(theta,rho,'r')%绘制相应的极坐标方程图形(用红颜色)
►title('Polarplotofsin(2*theta)cos(2*theta)')%添加图形标题
►set(h2,'linewidth',3)%对第二个窗口中曲线加粗
例2-4在[-2.5,2.5]上画出函数
的直方图和阶梯图。
►x=linspace(-2.5,2.5,20);%产生横坐标x向量
►y=exp(-x.*x);%生成函数值向量
►h1=subplot(1,2,1);%分图形窗口并在第一个子窗中绘图,返回其句柄h1
►bar(x,y)%画出直方图
►title('BarChartofaBellCurve')%添加图形标题
►h2=subplot(1,2,2);%在第二个子窗中绘图,返回其句柄h2
►stairs(x,y)%画出阶梯图
►title('StairsPlotofaBellCurve')%添加图形标题
例2-5采用不同形式(直角坐标、参数、极坐标),画出单位圆
的图形。
(1)直角坐标系
►x=-1:
0.01:
1;%对x的范围进行划分,生成分点向量
►y1=sqrt(1-x.^2);%生成上半单位圆的函数值向量
►y2=-y1;%生成下半单位圆的函数值向量
►plot(x,y1,x,y2);%同时画出上半圆和下半圆
►axisequal%让坐标系中两个坐标轴取值相同
(2)参数方程
►t=0:
0.01*pi:
2*pi;%对t的范围进行划分,生成分点向量
►x=cos(t);y=sin(t);%生成单位圆上的函数值向量
►plot(x,y);%画出单位圆
►axisequal%让坐标系中两个坐标轴取值相同
(3)极坐标系
►t=0:
0.01*pi:
2*pi;%对t的范围进行划分,生成分点向量
►r=1+0*t;%生成单位圆的极径r向量
►polar(t,r)%绘制相应的极坐标方程图形
例2-6画出螺旋线:
x=sin(t),y=cos(t),z=t,
上一段曲线。
►t=0:
pi/50:
10*pi;%生成参数t数组
►X=sin(t);%生成螺旋线X数组
►Y=cos(t);%生成螺旋线Y数组
►Z=t;%生成螺旋线Z数组
►plot3(X,Y,Z,'k-','linewidth',3)%画螺旋线
►grid
例2-7画出矩形域[-1,1]×[-1,1]上旋转抛物面:
。
►x=linspace(-1,1,100);%分割[-1,1]区间生成x
►y=x;%y与x相同
►[X,Y]=meshgrid(x,y);%生成矩形域[-1,1]×[-1,1]网格节点坐标矩阵
►Z=X.^2+Y.^2;%生成
函数值矩阵
►subplot(1,2,1)
►mesh(X,Y,Z);%在第一个子图中画
网格曲面
►subplot(1,2,2)
►surf(X,Y,Z);%在第二个子图中画
光滑曲面
►shadingflat;%对曲面
平滑并除去网格
例2-8在圆形域
上绘制旋转抛物面:
。
►x=linspace(-1,1,300);%分割[-1,1]区间生成x
►y=x;%生成y
►[X,Y]=meshgrid(x,y);%生成矩形域[-1,1]X[-1,1]网格节点坐标矩阵
►Z=X.^2+Y.^2;%生成
函数值矩阵
►i=find(Z>1);%找出圆域
之外的函数值(z>1)坐标点i
►Z(i)=NaN;%对圆域
之外的坐标点i处函数值进行“赋空”
►subplot(1,2,1)
►mesh(X,Y,Z);%在第一个子图中画
网格曲面
►subplot(1,2,2)
►surf(X,Y,Z);%在第二个子图中画
光滑曲面
►shadingflat;%对曲面
平滑并除去网格
例2-9画出
在
上的图形。
►x=-7.5:
0.5:
7.5;
►y=x;
►[X,Y]=meshgrid(x,y);
►u=sqrt(X.^2+Y.^2)+eps;%加eps使得u不等于0,保证z有意义
►Z=sin(u)./u;
►surf(X,Y,Z)
例2-10有一组实验数据如下表所示,试绘图表示。
时间
123456789
数据1
12.5113.5415.6015.9220.6424.5330.2450.0036.34
数据2
9.8720.5432.2140.5048.3164.5172.3285.9889.77
数据3
10.118.1414.1710.1440.5039.4560.1170.1340.90
►t=1:
9;
►d1=[12.5113.5415.6015.9220.6424.5330.2450.0036.34];
►d2=[9.8720.5432.2140.5048.3164.5172.3285.9889.77];
►d3=[10.118.1414.1710.1440.5039.4560.1170.1340.90];
►plot(t,d1,'r+-',t,d2,'kx:
',t,d3,'b*-','linewidth',2,'markersize',
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 软件 基础 数学 实验