MATLAB语言及应用-第三章(2)

合集下载

MATLAB基础及其应用教程-周开利-邓春晖课后答案,第三章

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应用第三章-符号计算

MATLAB应用第三章-符号计算
第三章 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第三章课后部分答案

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课后习题答案第三章

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程序设计基础

第三章 matlab程序设计基础
y
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语言及其应用教案第一章: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图形绘制

gtext 用于在图形中特定的位置加字符串,位置用鼠标
指定
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π]上的图形.结果见下图.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系数向量,该函数返回方程p(x)=0的全部根(含重根, 复根)。
第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)的
相关文档
最新文档