MATLAB语言及应用-第三章(2)
MATLAB基础及其应用教程-周开利-邓春晖课后答案,第三章
第三章习题答案1.代码:a=[1 -1 -1]; roots(a)结果:ans =-0.61801.61802.代码:x=0:10;y=sin(x);xi=0:0.15:10; %选取了67个插值点,要增加n,只需减小步长即可y0=sin(xi); %算精确值y1=interp1(x,y,xi); %分段线性插值y2=interp1(x,y,xi,'spline'); %三次样条插值plot(xi,y0,'o',xi,y1,xi,y2,'-.')legend('精确值','分段线性插值','三次样条插值')结果:3.理论公式为:p=1.0332*exp(-(x+500)/7756),所以拟合模型可写为:p=a*exp(-k*x+b) 式中,a, k, b为常数,两边同时取自然对数,得:log(p)=-k*x+b+log(a)问题转化为线性模型。
注意:自然对数是log(x), 以10为底的对数是log10(x)代码:clear;x=[0 300 600 1000 1500 2000];p=[0.9689 0.9322 0.8969 0.8519 0.7989 0.7491];lnp=log(p); %转化为 p 的自然对数值,模型转化为线性模型pk=polyfit(x,lnp,1); % 线性拟合,得到模型的斜率pk(1)和常数pk(2) 模型为: p=exp(pk(1)*x)*exp(pk(2))xi=0:50:2000;p0=1.0332*exp(-(xi+500)/7756); %理论值p1=exp(pk(1)*xi+pk(2)); %拟合模型值p2=interp1(x,p,xi,'spline'); %三次样条插值plot(x,p,'p',xi,p0,xi,p1,'--',xi,p2,'-.');legend('测量值','理论值','拟合值','三次样条值');format long % 数据显示格式为15位有效数字x2=0:200:2000 % 取10个点,比较差异pp1=1.0332*exp(-(x2+500)/7756) %理论值pp2=exp(pk(1)*x2+pk(2)) % 拟合值pp3=interp1(x,p,x2,'spline') % 样条插值err1=sum(abs(pp2-pp1).^2) % 拟合值的误差绝对值总和err2=sum(abs(pp3-pp1).^2) % 样条值的误差绝对值总和结果:0200400600800100012001400160018002000从图像上,都符合得很好,但很难看出差异。
MATLAB应用第三章-符号计算
3. 1 数据类型 3.2 符号运算
数学运算中除了数值运算外,还有大量抽象运算(计算式中带有符号变 量、表达式的运算)。Matlab就是利用maple软件的符号运算功能来实 现这些符号运算的。 Maple : 通用的数学和工程软件,是世界上最值得信赖、最完整的数学 软件之一,被高等院校、研究机构和公司广泛应用,用户渗透超过97% 的世界主要高校和研究所,超过81%的世界财富五百强企业。 Maple提供世界上最强大的符号计算,无与伦比的数值计算,支持 用户界面开发和网络发布,内置丰富的数学求解库,覆盖几乎所有的数 学分支,所有的操作都是在一个所见即所得的交互式技术文档环境中完 成,完成计算的同时也生成了专业技术文件和演示报告。 Maple不仅仅提供编程工具,更重要的是提供数学知识。Maple是 教授、研究员、科学家、工程师、学生们必备的科学计算工具,从简单 的数字计算到高度复杂的非线性问题,Maple都可以帮助您快速、高效 地解决问题。用户通过Maple产品可以在单一的环境中完成多领域物理 系统建模和仿真、符号计算、数值计算、程序设计、技术文件、报告演 示、算法开发、外部程序连接等功能,满足各个层次用户的需要,从高 中学生到高级研究人员。
格 Eg 3-2 补充。 补充。 2)char函数创建:char(‘string1’,’string2’, …); Eg 3-3 各个字符串不须同大小, 各个字符串不须同大小,该函数自动补充空白 字符。 字符。 Eg 3-4
字符串与单元 1)cellstr将字符数组转换成单元数组。 2)char函数将单元数组转换成字符数组。 数组的转换 字符串的比较 1)strcmp(a,b):比较两个字符串所有字符是
Grand total is 33 elements using 462 bytes
matlab第三章课后部分答案
matlab第三章课后部分答案习题三3-2 从键盘输入一个三位整数,将它反向输出。
如输入639,输出为936程序如下:m=input('请输入一个三位整数:');m1=fix(m/100);%求m的百位整数m2=rem(fix(m/10),10);%求m的十位数字m3=rem(m,10);%求m的个位数字m=m3*100+m2*10+m1%反向输出m3-3 输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。
其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
程序如下:(1)if语句c=input('请输入成绩:');if c>=90&c<=100disp('A 成绩合理');elseif c>=80&c<=89disp('B 成绩合理');elseif c>=70&c<=79disp('C 成绩合理'); elseif c>=60&c<=69disp('D 成绩合理'); elseif c<60disp('E 成绩合理');elsedisp('成绩错误');end(2)switch语句c=input('请输入成绩:'); switch fix(c)case num2cell(90:100)disp('A 成绩合理'); case num2cell(80:89)disp('B 成绩合理'); case num2cell(70:79)disp('C 成绩合理'); case num2cell(60:69)disp('D 成绩合理'); case num2cell(0:59)disp('E 成绩合理');x=fix(rand(1,20)*89)+10;x1=fix(sum(x)/20);disp(['平均数是:',num2str(x1)])m=(rem(x,2)==0&x<x1);n=find(m);disp(['小于平均数的数是:',num2str(x(n))]); 3-6 输入20个数,求其中最大数和最小数。
matlab课后习题答案第三章
第3章数值数组及其运算习题3及解答1 要求在闭区间]2,0[ 上产生具有10个等距采样点的一维数组。
试用两种不同的指令实现。
〖目的〗●数值计算中产生自变量采样点的两个常用指令的异同。
〖解答〗%方法一t1=linspace(0,2*pi,10)%方法二t2=0:2*pi/9:2*pi %要注意采样间距的选择,如这里的2*pi/9.t1 =Columns 1 through 70 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 Columns 8 through 104.88695.58516.2832t2 =Columns 1 through 70 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 Columns 8 through 104.88695.58516.28322 由指令rng('default'),A=rand(3,5)生成二维数组A,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。
〖目的〗●数组下标的不同描述:全下标和单下标。
●sub2ind, int2str, disp的使用。
●随机发生器的状态控制:保证随机数的可复现性。
〖解答〗rng('default')A=rand(3,5)[ri,cj]=find(A>0.5);id=sub2ind(size(A),ri,cj);ri=ri';cj=cj';disp(' ')disp('大于0.5的元素的全下标')disp(['行号 ',int2str(ri)])disp(['列号 ',int2str(cj)])disp(' ')disp('大于0.5的元素的单下标')disp(id')A =0.8147 0.9134 0.2785 0.9649 0.95720.9058 0.6324 0.5469 0.1576 0.48540.1270 0.0975 0.9575 0.9706 0.8003大于0.5的元素的全下标行号 1 2 1 2 2 3 1 3 1 3列号 1 1 2 2 3 3 4 4 5 5大于0.5的元素的单下标1 2 4 5 8 9 10 12 13 153 采用默认全局随机流,写出产生长度为1000的“等概率双位(即取-1,+1)取值的随机码”程序指令,并给出 -1码的数目。
第三章 matlab程序设计基础
3. 程序控制流 3.多分支if语句
• 多分支if语句格式为:
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组m+1
end
3. 程序控制流
• 例 输入一个字符,若为大写字母,则输出其后继字符,若为 小写字母,则输出其前导字符,若为数字字符则输出其对应 的数值,若为其他字符则原样输出。 – 程序如下:
c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+1)); elseif c>='a'& c<='z' disp(setstr(abs(c)-1)); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end
分类:脚本文件(Script File)和函数文件(Function File)。 主要区别。
1. M文件 脚本文件
没有输入和输出 由一系列指令组成 可在命令窗口直接运行 产生的所有变量存储在workspace中。 例 test.m。
1. M文件 例 脚本M文件实例
脚本M文件实例,查找10 ~100所有素数。
1. M文件
• 函数文件examp.m: function fout=charray(a,b,c) %举例说明函数文件名与函数名不同 if nargin==1 fout=a; elseif nargin==2 fout=a+b; elseif nargin==3 fout=(a*b*c)/2; end • 命令窗口: x=[1:3];y=[1;2;3]; examp(x) examp(x,y') examp(x,y,3)
MATLAB语言及其应用教案
MATLAB语言及其应用教案第一章:MATLAB简介1.1 课程目标让学生了解MATLAB的发展历程及其在工程领域的应用让学生熟悉MATLAB的工作环境让学生掌握MATLAB的基本命令和操作1.2 教学内容MATLAB的发展历程MATLAB的工作环境MATLAB的基本命令和操作1.3 教学方法讲授结合实例演示学生上机操作练习1.4 课后作业熟悉MATLAB的工作环境掌握MATLAB的基本命令和操作第二章:MATLAB基本语法2.1 课程目标让学生了解MATLAB的基本语法规则让学生掌握MATLAB的数据类型和变量让学生熟悉MATLAB的数学运算2.2 教学内容MATLAB的基本语法规则MATLAB的数据类型和变量MATLAB的数学运算2.3 教学方法讲授结合实例演示学生上机操作练习2.4 课后作业熟悉MATLAB的基本语法规则掌握MATLAB的数据类型和变量熟练运用MATLAB的数学运算第三章:MATLAB编程技巧3.1 课程目标让学生了解MATLAB的编程技巧让学生掌握MATLAB的循环和条件语句让学生熟悉MATLAB的函数编程3.2 教学内容MATLAB的编程技巧MATLAB的循环和条件语句MATLAB的函数编程3.3 教学方法讲授结合实例演示学生上机操作练习3.4 课后作业熟悉MATLAB的编程技巧掌握MATLAB的循环和条件语句熟练运用MATLAB的函数编程第四章:MATLAB绘图功能4.1 课程目标让学生了解MATLAB的绘图功能让学生掌握MATLAB的基本绘图命令让学生熟悉MATLAB的绘图技巧4.2 教学内容MATLAB的绘图功能MATLAB的基本绘图命令MATLAB的绘图技巧4.3 教学方法讲授结合实例演示学生上机操作练习4.4 课后作业熟悉MATLAB的绘图功能掌握MATLAB的基本绘图命令熟练运用MATLAB的绘图技巧第五章:MATLAB在信号处理中的应用5.1 课程目标让学生了解MATLAB在信号处理领域的应用让学生掌握MATLAB信号处理的基本方法让学生熟悉MATLAB信号处理的实例5.2 教学内容MATLAB在信号处理领域的应用MATLAB信号处理的基本方法MATLAB信号处理的实例5.3 教学方法讲授结合实例演示学生上机操作练习5.4 课后作业熟悉MATLAB在信号处理领域的应用掌握MATLAB信号处理的基本方法熟练运用MATLAB信号处理的实例第六章:MATLAB在控制系统设计中的应用6.1 课程目标让学生了解MATLAB在控制系统设计领域的应用让学生掌握MATLAB控制系统设计的基本方法让学生熟悉MATLAB控制系统设计的实例6.2 教学内容MATLAB在控制系统设计领域的应用MATLAB控制系统设计的基本方法MATLAB控制系统设计的实例6.3 教学方法讲授结合实例演示学生上机操作练习6.4 课后作业熟悉MATLAB在控制系统设计领域的应用掌握MATLAB控制系统设计的基本方法熟练运用MATLAB控制系统设计的实例第七章:MATLAB在图像处理中的应用7.1 课程目标让学生了解MATLAB在图像处理领域的应用让学生掌握MATLAB图像处理的基本方法让学生熟悉MATLAB图像处理的实例7.2 教学内容MATLAB在图像处理领域的应用MATLAB图像处理的基本方法MATLAB图像处理的实例7.3 教学方法讲授结合实例演示学生上机操作练习7.4 课后作业熟悉MATLAB在图像处理领域的应用掌握MATLAB图像处理的基本方法熟练运用MATLAB图像处理的实例第八章:MATLAB在仿真建模中的应用8.1 课程目标让学生了解MATLAB在仿真建模领域的应用让学生掌握MATLAB仿真建模的基本方法让学生熟悉MATLAB仿真建模的实例8.2 教学内容MATLAB在仿真建模领域的应用MATLAB仿真建模的基本方法MATLAB仿真建模的实例8.3 教学方法讲授结合实例演示学生上机操作练习8.4 课后作业熟悉MATLAB在仿真建模领域的应用掌握MATLAB仿真建模的基本方法熟练运用MATLAB仿真建模的实例第九章:MATLAB在优化计算中的应用9.1 课程目标让学生了解MATLAB在优化计算领域的应用让学生掌握MATLAB优化计算的基本方法让学生熟悉MATLAB优化计算的实例9.2 教学内容MATLAB在优化计算领域的应用MATLAB优化计算的基本方法MATLAB优化计算的实例9.3 教学方法讲授结合实例演示学生上机操作练习9.4 课后作业熟悉MATLAB在优化计算领域的应用掌握MATLAB优化计算的基本方法熟练运用MATLAB优化计算的实例第十章:MATLAB在工程实践中的应用10.1 课程目标让学生了解MATLAB在工程实践领域的应用让学生掌握MATLAB工程实践的基本方法让学生熟悉MATLAB工程实践的实例10.2 教学内容MATLAB在工程实践领域的应用MATLAB工程实践的基本方法MATLAB工程实践的实例10.3 教学方法讲授结合实例演示学生上机操作练习10.4 课后作业熟悉MATLAB在工程实践领域的应用掌握MATLAB工程实践的基本方法熟练运用MATLAB工程实践的实例重点解析本文教案主要介绍了MATLAB语言及其在各个领域的应用。
MATLAB第三章
第三章微积分问题的计算机求解一、实验内容:题目1.试求出如下极限。
①limx→∞(3x +9x )1/ x,②lim x→∞[(x+2)x+2(x+3)x+3 ]/(x+5)2x+5【分析】:该题为单变量函数的极限。
极限问题可以用limit()函数直接求出。
要注意该函数的调用格式为:L=limit(fun,x,x0)(求极限),L=limit(fun,x,x0,’left’或’right’)(求极限)。
还需注意一开始要对函数的字符进行申明。
【解答】:(1)输入如下语句:>> syms x;f=(3^x+9^x)^(1/x);L=limit(f,x,inf)语句运行后显示如下:L =9(2)输入如下语句:>>syms x;f=(x+2)^(x+2)*(x+3)^(x+3)/(x+5)^(2*x+5);>> L=limit(f,x,inf)语句运行后显示如下:L =exp(-5)题目2.试求下面的双重极限。
①lim x→−1y→2 (x2y+xy3)/(x+y) 3,②limx→0 y→0 xy /√(xy+1)−1,③limx→0y→0 [1−cos(x2+y2)]/(x2+y2)e x2+y2。
【分析】:该题为多变量函数的极限问题。
他可以用嵌套使用limit()函数来解决。
在MATLAB上可以用L=limit(limit(f,x,x0),y,y0)或者L=limit(f,y,y0),x,x0)来解决。
其思想是所有的先关于X求导,再所有的关于y求导。
【解答】:(1)输入如下语句:>> syms x y>> f=(x^2*y+x*y^3)/(x+y)^3;>> L=limit(limit(f,x,-1),y,2)语句运行后显示如下:L =-6(2)输入如下语句:>> syms x yf=(x*y)/(sqrt(x*y+1)-1);L=limit(limit(f,x,0),y,0)按ENTER键,语句运行后显示如下:L =2(3)输入如下语句:>> syms x yf=(1-cos(x^2+y^2))/(sqrt(x^2+y^2)*exp(x^2+y^2));L=limit(limit(f,x,0),y,0)按ENTER键,语句运行后显示如下:L =题目3.求出下面函数的导数。
第三章MATLAB有限元分析与应用
第三章MATLAB有限元分析与应用有限元分析(Finite Element Analysis, FEA)是一种工程计算方法,用于解决结构力学和流体力学等问题。
它将一个复杂的结构分割成多个简单的离散单元,通过建立数学模型和求解方程组,得到结构的力学、热力学和流体力学等性能参数。
MATLAB是一种功能强大的数学计算软件,具有直观的用户界面和丰富的工具箱,可以方便地进行有限元分析。
本章将介绍在MATLAB中进行有限元分析的基本步骤和方法,以及一些常见的应用例子。
首先,进行有限元分析需要将结构进行离散化。
常用的离散化方法有节点法和单元法。
节点法是将结构的几何形状划分为小的节点,并在节点上进行计算。
单元法是将结构划分为多个小的单元,并在每个单元内进行计算。
在MATLAB中,可以通过创建节点和单元的矩阵来描述结构和单元的关系。
例如,创建一个2D结构形式的节点矩阵:nodes = [0 0; 1 0; 0 1; 1 1];然后,通过创建描述节点连接关系的矩阵,来定义结构的单元:elements = [1 2 3; 2 4 3];这里的每一行代表一个单元,数字表示节点的编号。
接下来,需要定义材料的力学参数和边界条件。
材料的力学参数包括弹性模量、泊松比等。
边界条件包括支座约束和加载条件。
在MATLAB中,可以通过定义力学参数和边界条件的向量来描述。
例如,定义弹性模量和泊松比的向量:E=[200e9200e9];%弹性模量nu = [0.3 0.3]; % 泊松比定义支座约束的向量(1表示固定,0表示自由):constraints = [1 1; 0 0; 0 1; 0 1];定义加载条件的向量(包括点力和面力):最后,通过求解方程组得到结构的应力和位移等结果。
在MATLAB中,可以利用有限元分析工具箱中的函数进行计算。
例如,可以使用“assem”函数将节点和单元的信息组装成方程组,并使用“solveq”函数求解方程组。
MATLAB语言与控制系统仿真_参考题答案_第3章
3.5 MATLAB 绘图实训3.5.1 实训目的1.学会MATLAB 绘图的基本知识;2.掌握MATLAB 子图绘制、图形注释、图形编辑等基本方法;3.学会通过MATLAB 绘图解决一些实际问题;4.练习二维、三维绘图的多种绘图方式,了解图形的修饰方法;5.学会制作简单的MATLAB 动画。
图3-46 炮弹发射示意图3.5.2 实训内容1. 炮弹发射问题〔1炮弹发射的基础知识炮弹以角度α射出的行程是时间的函数,可以分解为水平距离)(t x 和垂直距离)(t y 。
)cos()(0αtv t x = %水平方向的行程; 205.0)sin()(gt tv t y -=α %垂直方向的行程;其中,0v 是初速度;g 是重力加速度,为9.82m/s ;t 是时间。
〔2炮弹发射程序举例:分析以下程序以及图3-47各个图形的实际意义。
a=pi/4; v0=300; g=9.8;t=0:0.01:50; x=t*v0*cos<a>;y=t*v0*sin<a>-0.5*g*t.^2;subplot<221>;plot<t,x>;grid;title<‘时间-水平位移曲线'>; subplot<222>;plot<t,y>;grid;title<‘时间-垂直位移曲线'>; subplot<223>;plot<x,y>;grid;title<‘水平位移-垂直位移曲线'>; subplot<224>;plot<y,x>;grid;title<‘垂直位移-水平位移曲线'>; 图3-4745角发射曲线 〔3编程解决炮弹发射问题①假设在水平地面上以垂直于水平面的角度向上发射炮弹,即发射角90=α,假设初速度分别为[310,290,270]m/s,试绘制时间-垂直位移曲线,编程求取最高射程;绘图要求:◆ 标题设为"炮弹垂直发射问题";◆ 在图上通过添加文本的方式表明初速度; ◆ 在x 轴标注"时间";◆ 在y 轴上标注"垂直距离"; ◆ 添加网格线;◆ 将310m/s 的曲线改为线粗为2的红色实线; ◆ 将290m/s 的曲线改为线粗为3的绿色点划线;◆ 将270m/s 的曲线改为线粗为2的蓝色长点划线;a=pi/2; v1=310; g=9.8;t=0:0.01:50; x1=t*v1*cos<a>;y1=t*v1*sin<a>-0.5*g*t.^2;plot<t,y1>;grid; title<'炮弹垂直发射问题'>; xlabel<'时间'>; ylabel<'垂直距离'>; hold on; v2=290;x2=t*v2*cos<a>;y2=t*v2*sin<a>-0.5*g*t.^2; plot<t,y2>; v3=270;x3=t*v3*cos<a>;y3=t*v3*sin<a>-0.5*g*t.^2; plot<t,y3>;zgsc=[max<y1>; max<y2>; max<y3>] %三次发射的最高射程 运行结果如下: zgsc =1.0e+003 * 4.9031 4.29083.7194最高射程分别为:4903.1米,4290.8米,3719.4米。
第三章 matlab图形绘制
指定
grid 图形中加网格
例3.在同一坐标系下画出sinx和cosx的图形,并适当加 标注.
x=linspace(0,2*pi,30);y=[sin(x);cos(x)]; plot(x,y);grid;xlabel (‘x’);ylabel (‘y’); title(‘sine and cosine curves’); text(3*pi/4,sin(3*pi/4),’\leftarrowsinx’); text(2.55*pi/2,cos(3*pi/2),’cos\rightarrow’)
结果见下图.
4.多幅图形
subplot(m,n,p)可以在同一个图形窗口中画出多个图 形,用法见下例.
x=linspace(0,2*pi,30);y=sin(x);z=cos(x);u=2*sin(x).* cos(x);v=sin(x)./cos(x); subplot(2,2,1),plot(x,y),title(‘sin(x)’) subplot(2,2,2),plot(x,z),title(‘cos(x)’) subplot(2,2,3),plot(x,u),title(‘2sin(x)cos(x)’) subplot(2,2,4),plot(x,v),title(‘sin(x)/cos(x)’)
plot(x1,y1,x2,y2, …) 在此格式中,每对x,y必须符合 plot(x,y)中的要求,不同对之间没有影响,命令对每 一对x,y绘制曲线.
例1.做出y=sinx在[0,2π]上的图形,结果见下图.
x=linspace(0,2*pi,30); sin(x);plot(x,y)
例2.在同一坐标系下做出两条曲线y=sinx和y=cosx 在[0,2π]上的图形.结果见下图.
第三章-matlab求解微积分
第三章 微积分的数学实验3.1极限与一元微积分3.1.1 初等运算1.定义单个或多个符号变量:syms x y z t ;定义单个符号变量或者符号函数还可以用单引号定义,如x=’x ’,f=’sin(x^2)+2*x-1’。
符号表达式的反函数运算g=finverse(f),g 是返回函数f 的反函数。
例1 求sin(1)y x =-的反函数>>syms x>>y=sin(x-1); g=finverse(y),结果为 g=1+asin(t)2. f actor(f) 因式分解函数f3.Collect(f) 对函数f 合并同类项4. expand(f) 将函数f 表达式展开5. simple(f) 找出表达式的最简短形式(有时需要用2次)6. roots (p )对多项式p 求根函数。
7. solve(F) 一般方程的求根函数例2 解方程2510x x +-=解 >>syms x>>solve(x^2+5*x-1)结果为x =[ -5/2+1/2*29^(1/2) -5/2-1/2*29^(1/2)]8.fzero(f,x0)或fzero(f,[a,b]) 在初始点x0处开始或在区间[a,b]上搜索函数的零点,f(a)与f(b)需要符号相反。
3.1.2 Matlab计算函数的极限函数形式:1)limit(F,x,a),求函数F在 x ->a时的极限。
2)limit(F,a),默认其中的变量为极限变量.3)limit (F),默认其中的变量为极限变量且趋向于0.4)limit(F,x,a,'right')或limit(F,x,a,’left') 求函数F在x->a时的右、左极限.例3 >>syms x a t h; %syms作用是申明x,a,t,h是符号变量,不需先赋值再调用。
>>limit(sin(x)/x) %结果为 1>>limit((x-2)/(x^2-4),2) %结果为 1/4>>limit((1+2*t/x)^(3*x),x,inf) %结果为 exp(6*t)>>limit(1/x,x,0,'right') %结果为 inf>>limit(1/x,x,0,'left') %结果为 -inf>>limit((sin(x+h)-sin(x))/h,h,0) %结果为 cos(x)>>v = [(1 + a/x)^x, exp(-x)];limit(v,x,inf,'left') %结果为[exp(a),0]3.1.3 Matlab计算导数与微分1.一元导数和微分diff函数用以计算函数的微分和导数,相关的函数语法有下列4个:diff(f) 返回f对预设独立变量的一次导数值diff(f,'t')或diff(f,t) 返回f对独立变量t的一次导数(值)diff(f,n) 返回f对预设独立变量的n阶导数(值)diff(f,'t',n) 或diff(f,t,n)返回f对独立变量t的n阶导数(值)这里尽管自变量已经作为符号变量,可以不用syms说明,但是在具体执行diff(f)、diff(f,'t')和diff(f,t)会出现差异,有的能够执行,有的不能够,有的执行符号微分,有的执行数值微分,所以比较麻烦。
第三章 matlab数 据 类 型
Grand total is 45 elements using 108 bytes
第三章 数 据 类 型 使用logical函数、true函数和false函数的过程都比较简单, 通过最后的比较可以看出,逻辑类型的数组每一个元素仅占用 一个字节的内存空间,所以矩阵B尽管和矩阵A看上去一致,但 是内存占用上有相当大的差距,并且属于不同的数据类型,也 就有不同的操作函数和方法。 注意: 本书将MATLAB的logical array(逻辑数组)称为逻辑类型的 数组。在有些书籍上,将MATALB的这种数据类型直接叫做布 尔类型数组,请读者注意对比。
第三章 数 据 类 型 例子3-2 使用不同的数据类型。 例子 在MATLAB命令行窗口中,键入下面的指令: >> a = [ 1 2 3]; 由于MATLAB系统默认的运算都是 由于 系统默认的运算都是 针对双精度类型的数据或变量的, 针对双精度类型的数据或变量的, >> b = [ 3 4 5]; 所以在进行两个int16类型的变量加 所以在进行两个 类型的变量加 >> c = a+b; 法时, 报告了相应的错误。 法时,MATLAB报告了相应的错误。 报告了相应的错误 >> whos Name Size Bytes Class a 1x3 24 double array b 1x3 24 double array c 1x3 24 double array Grand total is 9 elements using 72 bytes >> int16(a)+int16(b) ??? Error using ==> + Function '+' is not defined for values of class 'int16'.
matlab第3章ppt课件
fplot('[sin(x),cos(x)]',[0,2*pi,-1.5,1.5],1e-3,'r.')
观察上述语句绘制的正余弦曲线采样点的分布,可发现
曲线变化率大的区段,采样点比较密集。
16
1.图形窗口的分割 分割后的图形窗口由若干个绘图区并绘制图形。同一图形窗口中的不同图形称 为子图。 subplot(m,n,p) 该函数将当前图形窗口分成m × n个绘图区,即每行n个,共m 行,区号按行优先编号,且选定第p个区为当前活动区。在每 一个绘图区允许以不同的坐标系单独绘制图形。
18
2.图形叠加
一般情况下,绘图命令每执行一次就刷新当前图形窗口,
图形窗口原有图形将不复存在。若希望在已存在的图 形上再叠加新的图形,可使用图形保持命令hold。 hold on/off命令控制是保持原有图形还是刷新原有图 形。例如:
x=0:pi/100:2*pi;
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
8
表 3.1 线型选项
选项
线型
-
实线(默 认值)
:
虚线
--
双画线
-.
点画线
表 3.2 颜色选项
选项 颜色
b( blue )
蓝色
g( green )
绿色
r(red)
红色
c(cyan)
青色
选项 颜色
m(magenta) 品红色
y(yellow)
黄色
k(black)
黑色
w( whit e)
白色
表 3.3 选项 . O(字母) X(字母) + * s(square )
令来控制。grid on/off命令控制是画还是不画网格 线,box on/off命令控制是加还是不加边框线。
Matlab图形绘制 (2)
②极坐标系函数polar,调用形式为:polar(theta,rho)或polar(theta,r h③o,双s)纵坐标(双y轴坐标系)函数plotyy,调用形式为: ➢plotyy(X1,Y1,X2,Y2) ➢plotyy(X1,Y1,X2,Y2,fun) fun可以是plot、semilogx、semilogy或log log 注➢:pl双ot坐yy标(X绘1,制Y1图,X形2,的Y2调,f用un过1,程fu中n2,) 不fu能n1够绘像制前(X面1,的Y1p)l,otf函un数2绘那制样(对X2曲,Y线2) 属性进行设置,需要使用句柄图形控制完成。
说明 填充绘图 条形图
barh 水平条形图 comet 彗星图 errorbar 误差带图
ezplot ezpolar
简单绘制函数 图
简单绘制极坐 标图
函数名 feather stem
fill stairs contour
contour f scatter
说明 矢量图 离散序列饼状 图 多边形填充 阶梯图 等高线图
Hist用来显示资料的分段情况和统 计特性,适合于大量数据的情况
示例:x=randn(9999,1);hist(x,50)
Rose与hist接近,将资料的大小视 为角度,资料的个数作为距离,采 示例:x=randn(9999,1);rose(x,50) 用极坐标绘图。
Stem产生针状图,常被用来绘制数 x=linspace(0,10,100);y=sin(x).*exp 位讯号。
(-x/4);stem(x,y);
Fill将资料点视为多边形顶点,并 x=linspace(0,10,100);y=sin(x).*exp 将此多边形涂上颜色。
(-x/4);fill(x,y,’c’);
MATLAB语言与应用(3)
—
s3 3s2 3s 1
H (s) (s 1)(s 2) (s 2 j)(s 2 j)(s 3)
三 根轨迹分析(1-4)
所谓根轨迹是指,当开环系统某一参数从零变到无穷大时,闭环系 统特征方程的根在s平面上的轨迹。一般来说,这一参数选作开环 系统的增益K,而在无零极点对消时,闭环系统特征方程的根就是 闭环传递函数的极点。
求按串联、并联、正反馈、负反馈连接时的系统状态方程及系统1按 单位负反馈连接时的状态方程。
3.模型的转换与连接(5-5)
例:求当K1=250/K1=1000时如图所示的系统的传递函数(表示成零极 增益型式)
二、控制系统的时域分析
时域分析的一般方法 求取系统单位阶跃响应:step() 求取系统的冲激响应:impulse()
频率特性是指系统在正弦信号作用下,稳态输出与输入之比对频率的关系 特性。频率特性函数与传递 X o ( jw) A(w)e j(w) Xi ( jw)
其中 A(w)
X o (w)为幅频特性 X i (w)
(w) o (w) i (w)为相频特性
通常将频率特性用曲线的形式进行表示,包括对数频率特性曲线和幅相频 率特性曲线(简称幅相曲线),MATLAB提供了绘制这两种曲线的函数。
(s 1)(s 3)
串联。
例:求闭环系统的传递函数:
3.模型的转换与连接(4-5)
控制系统工具箱LTI对象运算优先等级为“状态空间>零极增益>传 递函数”,合成系统的系统函数的对象特性应按照环节的最高等级 来确定。
例:已知系统1和系统2的状态方程分别为
x2
0 1
1 3
x2
10u2
y2 1 4x2
根轨迹分析(2-4)
第三章+matlab有限元分析与应用
在满足一定约束条件下,寻找使某个或多个设 计指标达到最优的设计方案的过程。
目标函数
用于衡量设计方案优劣的数学表达式,通常是 最小化或最大化的某个性能指标。
约束条件
限制设计方案选择的条件,包括设计变量的上下界、设计变量的关系等。
基于Matlab的有限元优化设计方法
MATLAB优化工具箱
提供了一系列用于求解各种优化问题的函数和算法,包括线性规划、非线性规划、混合 整数规划等。
有限元模型
由一组离散化的元素组成,每个 元素代表系统的一部分,并具有 特定的属性和行为。
节点
元素之间的连接点,用于传递力 和位移。
有限元分析的基本步骤
前处理
01
建立有限元模型,包括定义元素类型、几何形状、材料属性、
边界条件和载荷等。
Байду номын сангаас求解
02
应用数学方程求解有限元模型的节点位移和应力分布。
后处理
03
对于一些复杂模型,如具有非线性、大变形、多 材料等特性,建模难度大,需要发展更高级的建 模方法和技术。
数据安全与隐私保护
在进行有限元分析时,需要处理大量的数据,如 何保证数据的安全和隐私保护是一个重要的问题 。需要采取有效的数据加密和保护措施来确保数 据的安全性和隐私性。
未来发展方向与展望
跨学科融合
结果后处理
显示结果
使用Matlab的图形功能,如`plot`、`mesh`等,绘制 结果的可视化图像。
分析结果
对结果进行详细的分析,如查看位移分布、应力分布 等。
结果优化
根据分析结果,对模型进行优化设计,以提高性能或 降低成本。
03
有限元分析实例
Chapter
MATLAB有限元分析与应用可编辑全文
%
modulus of elasticity E, cross-sectional
%
area A, and length L. The size of the
%
element stiffness matrix is 2 x 2.
y = [E*A/L -E*A/L ; -E*A/L E*A/L];
2019/11/28
y = k * u/A;
2019/11/28
18
§3-2 线性杆元
3、实例计算分析应用
如图所示二线性杆元结构,假定E=210MPa,A=0.003m^2,P=10kN, 节点3的右位移为0.002m。
求:系统的整体刚度矩阵; 节点2的位移; 节点1、3的支反力; 每个杆件的应力
解:
步骤1:离散化域
%LinearBarElementStresses This function returns the element nodal
%
stress vector given the element stiffness
%
matrix k, the element nodal displacement
%
vector u, and the cross-sectional area A.
? ?
?
? ?
?
10??
630000 ????0.002?? ?? F3 ??
线性杆元也是总体和局部坐标一致的一维有限单元,用线性函数描述
每个线性杆元有两个节点(node)
? EA
单刚矩阵为:k
?
? ?
L
???
EA L
?
EA L
? ? ?
(完整版)matlab入门经典教程--第三章 字符串、元胞和构架数组
第三章字符串、元胞和构架数组MATLAB 6.x 版的内建数据类型(Built-in data type)就有5 种以上,此外还有许多其他专门设计的类(Class),如符号类、内联函数类、控制工具包中的线性时不变模型类、神经网络类等。
就程序设计而言,MATLAB 6.x 版采用了面向对象编程技术。
数据和编程的改变使用户能更简捷而自然地解决复杂的计算问题(如符号计算问题、多变量控制系统问题、神经网络问题)。
本章内容根据MATLAB6.5 编写,但绝大部分内容适用于其他MATLAB6.x 版本。
第二章介绍了数值数组(Numeric Array),这是读者比较熟悉的数据类型。
本章将集中讲述另外三类数据:字符串数组(Character String Array)、元胞数组(Cell array)和构架数组(Structure array)。
它们之间的基本差别见表3-1。
3.1字符串数组3.1.1字符串入门【例3.1.1-1】先请读者实际操作本例,以体会数值量与字符串的区别。
cleara=12345.6789class(a)a_s=size(a)a =1.2346e+004ans =doublea_s =1 1b='S'class(b)b_s=size(b)b =Sans =charb_s =1 1whosName Size Bytes Classa 1x1 8 double arraya_s1x216 double arrayans1x48 char arrayb1x1 2 char arrayb_s1x216 double arrayGrand total is 10 elements using 50 bytes3.1.2串数组的属性和标识【例3.1.2-1】本例演示:串的基本属性、标识和简单操作。
(1)a='This is an example.'a =This is an example.(2)size(a)ans =1 19(3)a14=a(1:4)ra=a(end:-1:1)a14 =Thisra =.elpmaxe na si sihT(4)ascii_a=double(a)ascii_a =Columns 1 through 1284 104 105 115 32 105 115 32 97 110 32 101Columns 13 through 19120 97 109 112 108 101 46char(ascii_a)ans =This is an example.(5)w=find(a>='a'&a<='z');ascii_a(w)=ascii_a(w)-32;char(ascii_a)ans =THIS IS AN EXAMPLE.(6)A='这是一个算例。
matlab编程基础与工程应用第三章课件
>> y=[1,2,3 4,5,6 7,8,9] y = 1 2 4 5 7 8
3 6 9
需要说明的是,在第一行“ 1,2,3 ”输入,并按 <Enter> 键后,光标下移 一 行 。 在 输 入 4 之 前 需 要 按 一 个 空 格 键 , 然 后 再 输 入 “ 4,5,6 ” 。 按 <Enter>键后,光标下移一行,先按一个空格键,然后再输入“7,8,9]”。
>> y=rand(1,5) y= 0.8147 0.9058 0.1270 0.9134 0.6324
全1数组ones(1,n) 由于 ones(m,n) 可以产生元素全为 1 的( mn )的矩阵,所以当 m=1 时, ones(1,n)产生元素全为1的行向量。
>> y=ones(1,7) y= 1 1 1 1 1 1 1
(1)冒号生成法。
a1=1:5 %缺省步长为1 a2=0:pi/3:pi %非整数步长 a3=1:-0.25:0 %负实数步长 a1 = 1 2 3 4 5 a2 = 0 1.0472 2.0944 3.1416 a3 = 1.0000 0.7500 0.5000 0.2500
(参看第2.3.3 MATLAB指令行中标j) 全下标法 A(I,:) A(:,j) A(I,J) A(:) 单下标法 A(k) A(L) 说明 访问矩阵A的第i行,第j列元素,其中i,j为标量 访问矩阵A的第i行的所有元素 访问矩阵A的第j列的所有元素 访问由向量I和J指定的矩阵A中的元素 访问矩阵A的所有元素,并按照列从左至右的次序, 首尾相接而生成一个向量 使用索引访问矩阵中的第k个元素
第三章Matlab的选择结构
第三章Matlab的选择结构第三章 Matlab的选择结构3.1 程序编写的⼀般步骤3.2 关系运算符 1) 0表⽰假,⾮0表⽰真; 2) ~=:不等于; 3) sin(pi) ~= 0:为1,⽐较a、b两个数是否相等⽅法:abs(a - b)<1.0e-143.3 逻辑运算 1) 先与&后或|3.4 逻辑函数与短路运算 1) 短路运算:&&、||;⾮短路运算:&、| 2) ischar(x)、isempty(x)、isinf(x)、isnan(x):是否不是数、isnumeric(x):是否是数 3) 1/0 = Inf 是数;0/0 = NaN 不是数3.5 if语句1) 语句结构:”if"开始,"end"结束if exp_1 block_1elseif exp_2 block_2... ...else block_nend3.6 流程图的绘制3.7 if语句的嵌套3.8 switch1)switch(value) case{1,3,5,7,9}, block_1; case{2,4,6,8}, block_2; ... ... otherwise, block_nend3.9 try_catch结构try block_1catch block_2end3.10 多个图像窗⼝与⼦窗⼝ 1) figure(n):图像窗⼝命令; 2) subplot(m,n,p):图像窗⼝中有m*n个⼦窗⼝,p是当前操作窗⼝;3.11 图像的增强控制 1) plot(x1,y1,LineSpec,...,xn,yn,LineSpec) 2) plot(x1,y1,LineSpec,'PropertyName',PropertyValue) 3) LineWidth:⽤来指定线的宽度 4) MarkerEdgeColor:⽤来指定标识表⾯的颜⾊ 5) MarkerFaceColor:填充标识的颜⾊ 6) MarkerSize:指定标识的⼤⼩例:x = -pi:pi/10:pi;y = tan(sin(x)) - sin(tan(x));plot(x,y,'--rs','LineWidth',3,...‘MarkerEdgeColor','k',...‘MarkerFaceColor','g',...‘MarkerSize',10)3.12 ⽂本的⾼级控制...。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章 MATLAB 在现代科学计算中的应用
3. 多项式求值
求多项式p(x)在某点或某些点的函数值的函数是 polyval(P,x)。若x为一数值,则求多项式在该点的 值;若x为向量或矩阵,则对向量或矩阵中的每个 元素求其多项式的值。
②U=max(A,n) n是一个标量。结果U是与A同型的向 量或矩阵,U的每个元素等于A对应元素和n中的较 大者。
min函数的用法和max完全相同。
第3章 MATLAB 在现代科学计算中的应用
例1求矩阵A的每行及每列的最大和最小元素,并求 整个矩阵的最大和最小元素。
命令如下:
A=[13,-56,78;25,63,-235;78,25,563;1,0,-1];
向量。
第3章 MATLAB 在现代科学计算中的应用
例7 用一个5次多项式在区间[0,2π]内逼近函数 sin(x)。
命令如下:
X=linspace(0,2*pi,50);Y=sin(X); [P,S]=polyfit(X,Y,5) %得到5次多项式的系数和误差 plot(X,Y,'k*',X,polyval(P,X),'k-')
和(0.6,0.5)点进行插值 interp2(x,y,Z,[0.5 0.6]',[0.4 0.5])%对函数在
(0.5,0.4),(0.6,0.4),(0.5,0.5)和(0.6,0.5)点进行插值
第3章 MATLAB 在现代科学计算中的应用
3. 三维数值插值 对三维函数插值的函数是interp3,其使用方法和
第3章 MATLAB 在现代科学计算中的应用
4. 矩阵元素累加和与累乘积 MATLAB中,使用cumsum和cumprod函数能方便地
求得向量和矩阵元素的累加和与累乘积向量,函数 的用法和sum及prod相同 例3 求向量X=(1!,2!,3!,…,10!)。 命令如下:
X=cumprod(1:10)
g(x) 3x2 5x 3 计算: (1)求f(x)+g(x)、f(x)-g(x)。 (2)求f(x)·g(x)、f(x)/g(x)。
第3章 MATLAB 在现代科学计算中的应用
在MATLAB命令窗口,输入命令:
f=[3,-5,2,-7,5,6];g=[3,5,-3];g1=[0,0,0,g];
平均值和标准方差,并求全体的平均值和标准方差。
第3章 MATLAB 在现代科学计算中的应用
6. 元素排序 MATLAB中对向量X是排序函数是sort(X),函数返回一
个对X中的元素按升序排列的新向量。 sort函数也可以对矩阵A的各列(或行)重新排序,其调用
格式为:
[Y,I]=sort(A,dim) 其中dim指明对A的列还是行进行排序,若dim=1,则按
第3章 MATLAB 在现代科学计算中的应用
例5 用不同的插值方法计算sin(x)在π/2点的值。 这是一维插值问题。在MATLAB命令窗口,输入命令: X=0:0.2:pi;Y=sin(X); %给出X、Y interp1(X,Y,pi/2) %用缺省方法计算sin(π/2) interp1(X,Y,pi/2,'nearest') %最近方法计算sin(π/2) interp1(X,Y,pi/2,'linear') %线性方法计算sin(π/2) interp1(X,Y,pi/2,'spline') %三次样条方法计算sin(π/2) interp1(X,Y,pi/2,'cubic') %三次多项式方法计算sin(π/2)
的函数是median。它们的调用方法和max函数完全 相同。
3. 矩阵元素求和与求积 矩阵和向量求和与求积的基本函数是sum和prod,其
使用方法和max类似。
第3章 MATLAB 在现代科学计算中的应用
例2 求矩阵A的每行元素的乘积和全部元素的乘积。 命令如下: A=[1,2,3,4;5,6,7,8;9,10,11,12]; S=prod(A,2) prod(S) %求A的全部元素的乘积
运算。其中Q返回多项式P1除以P2的商式,r返回 P1除以P2的余式。这里,Q和r仍是多项式系数向 量。
deconv是conv的逆函数,即有P1=conv(P2,Q)+r。
第3章 MATLAB 在现代科学计算中的应用
例9 设有两个多项式,
f (x) 3x5 5x4 2x3 7x2 5x 6
第3章 MATLAB 在现代科学计算中的应用
曲线拟合
MATLAB中,提供了解决使用最小二乘法进行曲线 拟合的函数。调用格式为:
[P,S]=polyfit(X,Y,m) 函数根据采样点X和采样点函数值Y,产生一个m次
多项式P及其在采样点的误差向量S。 其中X、Y是两个等长的向量,P是一个长度为m+1的
x=0:0.1:10;y=0:0.2:20;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2; interp2(x,y,Z,0.5,0.5) %对函数在(0.5,0.5)点进行插值 interp2(x,y,Z,[0.5 0.6],0.4) %对函数在(0.5,0.4)点和
(0.6,0.4)点进行插值 interp2(x,y,Z,[0.5 0.6],[0.4 0.5]) %对函数在(0.5,0.4)点
max(A,[],2) %求每行最大元素
min(A,[],2) %求每行最小元素
max(A)
%求每列最大元素
min(A)
%求每列最小元素
max(max(A)) %求整个矩阵的最大元素
min(min(A)) %求整个矩阵的最小元素
第3章 MATLAB 在现代科学计算中的应用
2. 求矩阵的平均值和中值 求矩阵和向量元素的平均值的函数是mean,求中值
命令如下:
P=[3,0,4,-5,-7.2,5];
X=roots(P)
%求方程f(x)=0的根
G=poly(X)
%求多项式g(x)
X0=[5,7.8,9.6,12.3];
f=polyval(P,X0)
练习:把1开5次方,并求其全部5个根。
第3章 MATLAB 在现代科学计算中的应用
4. 多项式的四则运算 (1)多项式的加减法 (2)多项式的乘法 函数conv(P1,P2)用于求多项式P1和P2的乘积。 (3)多项式的除法 函数[Q,r]=deconv(P1,P2)用于对多项式P1和P2作除法
第3章 MATLAB 在现代科学计算中的应用
MATLAB中有一个专门的三次样条插值函数 Y1=spline(X,Y,X1),其功能及使用方法与函数 Y1=interp1(X,Y,X1,'spline')完全相同。
第3章 MATLAB 在现代科学计算中的应用
2. 二维数值插值 MATLAB中,提供了解决二维插值问题的函数。其
第3章 MATLAB 在现代科学计算中的应用
5. 标准方差 MATLAB中,提供了计算数据序列的标准方差的函数
std。对于向量X,std(X)返回一个标准方差。对于矩 阵A,std(A)返回一个行向量,它的各个元素便是矩阵 A各列的标准方差。std函数的一般调用格式为:
std(A) 例3 产生8×6阶的正态分布随机数矩阵R,求其各列的
存入p,分母存入q。
第3章 MATLAB 在现代科学计算中的应用
函数的最大值与最小值
MATLAB中用于求最小值的函数是: fmin(f,a,b) 求单变量函数f(x)在区间(a,b)上的最小值。 fmins(F,X0) 求多变量函数F(x)在估计值X0附近的最
小值点。
第3章 MATLAB 在现代科学计算中的应用
元素的序号存入I。
第3章 MATLAB 在现代科学计算中的应用
(2)求矩阵的最大和最小元素 ①max(A) 返回一个行向量,向量的第i个元素是A矩
阵的第i列上的最大元素。 ②[Y,U]=max(A) 返回两个行向量,Y向量记录A的每
列的最大元素,U向量记录每列最大元素的行号。 ③max(A,[],dim) dim取1或2。dim取1时,该函数和
%对A按列排序,并将每个元素所在行
第3章 MATLAB 在现代科学计算中的应用
数值插值
1. 一维数值插值
interp1函数调用格式为:
Y1=interp1(X,Y,X1,'method')
函数根据X、Y的值,计算函数在X1处的值。X、Y是两 个等长的已知向量,分别描述采样点和样本值,X1是 一个向量或标量,描述欲插值的点,Y1是一个与X1 等长的插值结果。method是插值方法,允许的取值有 'linear'(线性插值)、'nearest'(最近插值)、'spline'(三次 样条插值)、'cubic'(三次多项式插值),缺省值是 'linear'。
max(A)完全相同。dim取2时,该函数返回一个列 向量,其第i个元素是A矩阵的第i行上的最大元素。
第3章 MATLAB 在现代科学计算中的应用
(3)两个向量或矩阵对应元素的比较
①U=max(A,B) A,B是两个同型的向量或矩阵。结果 U是与A,B同型的向量或矩阵,U的每个元素等于 A,B对应元素的较大者。
第3章 MATLAB 在现代科学计算中的应用
多项式计算
1. 多项式的建立 已知一个多项式的全部根X求多项式系数的函数是
poly(X),该函数返回以X为全部根的一个多项式P, 当X是一个长度为m的向量时,P是一个长度为m+1 的向量。
2. 多项式求根 求多项式p(x)的根的函数是roots(P),这里,P是p(x)的