§1 MATLAB 公式

18. 例如:
x=linspace(0,2*pi,30); y=sin(x); plot(x,y)
先画好图5-2,然后用下述命令增加cos(x)的图形,也可得到图5-3。
hold on
z=cos(x); plot(x,z)
hold off
图5-3 图5-2
19. 线型 线方式: - 实线 :点线 -. 虚点线 - - 波折线。 线型 点方式: . 圆点 +加号 * 星号 x x形 o 小圆 颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青. 以下面的例子说明用法:
x=0:pi/15:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,’b:+’,x,y2,’g-.*’) 19. 网格和标记 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) grid xlabel(‘Independent Variable X’) ylabel(‘Dependent Variables Y and Z’) title(‘Sine and Cosine Curves’) 它们产生图5-5:
图5-5
也可以在图形的任何位置加上一个字符串,如用:
text(2.5,0.7,’sinx’) 20. 坐标系的控制 axis([xmin xmax ymin ymax]) [ ]中分别给出x轴和y轴的最大值、最小值 axis equal 或 axis(‘equal’) x轴和y轴的单位长度相同 axis square 或 axis(‘square’) 图框呈方形 axis off 或 axis(‘off’) 清除坐标刻度 还有axis auto axis image axis xy axis ij axis normal axis on axis(axis) 21. 多幅图形 如 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),axis([0 2*pi –1 1]),title(‘sin(x)’) subplot(2,2,2),plot(x,z),axis([0 2*pi –1 1]),title(‘cos(x)’) subplot(2,2,3),plot(x,u),axis([0 2*pi –1 1]),title(‘2sin(x)cos(x)’) subplot(2,2,4),plot(x,v),axis([0 2*pi –20 20]),title(‘sin(x)/cos(x)’) 共得到4幅图形,见图5-6. 22 三维图形 带网格的曲面 例 作曲面z=f(x,y)的图形 用以下程序实现:
x=-7.5:0.5;7.5; y=x; [X,Y]=meshgrid(x,y); (3维图形的X,Y数组) R=sqrt(X.^2+Y.^2)+eps; (加eps是防止出现0/0) Z=sin(R)./R; mesh(X,Y,Z) 23.图形的输出首先,在MATLAB图形窗口中选择【File】菜单中的【Export】选项,将打开图形输出对话框,在该对话框中可以把图形以emf、bmp、jpg、pgm等格式保存。然后,再打开相应的文档,并在该文档中选择【插入】菜单中的【图片】选项插入相应的图片即可。 24. 程序设计 例如: %命令窗口中定义矩阵a,b a=pascal(3) a= 1 1 1 1 2 3 1 3 6 b=magic(3) b= 8 1 6 3 5 7 4 9 2 % 在编辑器中编写下述命令 a=a+b b=a-b a=a-b 在编辑器中编辑完上例的脚本文件后,保存至文件scripts—example中,然后在工作窗口中调用该脚本文件, scripts—example
a a= 8 1 6 3 5 7 4 9 2 b b= 1 1 1 1 2 3 1 3 6 其中矩阵a、b均是在工作空间中已定义完毕的,脚本运行时直接使用该变量,并对其进行操作,然后在命令窗口中调用该脚本,可以看到变量a、b已经进行了相互交换。 25.函数文件例如: function[output,output2]=function—example(input1,input2) % 函数题头 %This is function to exchange two matrices % HI行 %input1,input2 are input variables % 帮助信息 %output1,output2 are output variables % 帮助信息 output1=input2; % 函数体 output2=input1; % 函数体 %The end of this example function [a,b]=function—example(a,b) a= 8 1 6 3 5 7 4 9 2 b= 1 1 1 1 2 3 1 3 6 26. for语句 for循环语句的调用形式为: for 循环控制变量=〈循环次数设定〉 循环体 end 例如: for i=1:2:12 s=s+i; end 27.while语句while循环语句的一般形式为: while〈循环判断的语句〉 循环体 End 28. if-else-end语句 if-else-end语句的一般形式为: if〈逻辑判断语句〉 逻辑值为“真”时执行的语句 else 逻辑值为“假”时执行的语句 end 例如: if a=1 a=a+1 else a=a+2 end 29. MATLAB在数值分析中的应用 分段线性插值;ATLAB自身提供了内部函数interp1其主要用法如下: interp1(x,y,xi) 一维插值 ◆ yi=interp1(x,y,xi) 对一组点(x,y) 进行插值,计算插值点xi的函数值。x为节点向量值,y为对应的节点函数值。如果y 为矩阵,则插值对y 的每一列进行,若y 的维数超出x 或 xi 的维数,则返回NaN。 ◆ yi=interp1(y,xi) 此格式默认x=1:n ,n为向量y的元素个数值,或等于矩阵y的size(y,1)。 ◆ yi=interp1(x,y,xi,’method’) method用来指定插值的算法。默认为线性算法。其值常用的可以是如下的字符串。 ● nearest 线性最近项插值。 ● linear 线性插值。 ● spline 三次样条插值。 ● cubic 三次插值。 所有的插值方法要求x是单调的。x 也可能并非连续等距的。 正弦曲线的插值示例: x=0:0.1:10; y=sin(x); xi=0:0.25:10; yi=interp1(x,y,xi); plot(x,y,’0’,xi,yi) 30. 最小二乘法拟合函数polyfit是指用一个多项式函数来对已知数据进行拟合,我们以下列数据为例介绍这个函数的用法: x=0:0.1:1; y=[ -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2 ] 我们选择二阶多项式进行拟合。 P= polyfit (x, y, 2) P= -9.8108 20.1293 -0.0317 函数返回的是一个多项式系数的行向量,写成多项式形式为: 为了比较拟合结果,我们绘制两者的图形:
xi=linspace (0, 1, 100); %绘图的X-轴数据。 Z=polyval (p, xi); %得到多项式在数据点处的值。 当然,我们也可以选择更高幂次的多项式进行拟合,如10阶: p=polyfit (x, y, 10); xi=linspace (0, 1,100); z=ployval (p, xi); 31. 符号工具箱及其应用;符号变量与符号表达式 格式1: sym (‘变量名’) 或 sym (‘表达式’) 功能: 定义一个符号变量或符号表达式。 例如: sym (‘x’) % 定义变量x为符号变量 sym(‘x+1’) % 定义表达式x+1为符号表达式 格式2: syms 变量名1 变量名2 …… 变量名n 功能: 定义变量名1、变量2 ……、变量名 n为符号变量。 例如: syms a b x t % 定义a,b, x,t 均为符号变量 32. 微积分运算 例如:求极限 的命令及结果为: syms x t limit ((1+2*t/x)^(3*x) , x, inf ) ans= exp(6*t) syms x limit(x/abs(x), x, 0, ’left’) ans = -1 limit(x/abs(x),x, 0, ’right’) ans = 1 33. 导数 格式: diff (f,t,n) 例如:求函数f=a*x^2+b*x+c对变量 x的一阶导数, 命令及结果为 syms a b c x f=a*x^2+b*x+c; diff(f) ans= 2*a*x+b 求函数f 对变量b的一阶导数(可看作求偏导), 命令及结果为 diff(f,b) ans=x 求函数f 对变量x的二阶导数, 命令及结果为 diff(f,2) ans=2*a 34. 3、积分;格式: int(f,t,a,b) 例如:求函数f=a*x^2+b*x+c对变量x不定积分, 命令及结果为 syms a b c x f=a*x^2+b*x+c; int(f) ans= 1/3*a*x^3+1/2*b*x^2+c*x 求函数f 对变量b不定积分, 命令及结果为 int(f,b) ans= a*x^2*b+1/2*b^2*x+c*b 求函数f 对变量x 从 1到5的定积分, 命令及结果为 int(f,1,5) ans= 124/3*a+12*b+4*c 35.级数求和 格式: symsum (s,t,a,b) 例如: 求级数 的前三项的和, 命令及结果为 symsum(1/x,1,3) ans=11/6 36. 化简和代换 simplify 利用各种恒等式化简代数式 expand 将乘积展开为和式 factor 把多项式转换为乘积形式 collect 合并同类项 horner 把多项式转换为嵌套表示形式 例如:进行合并同类项执行 syms x collect(3*x^3-0.5*x^3+3*x^2) ans= 5/2*x^3+3*x^2) 进行因式分解执行 factor(3*x^3-0.5*x^3+3*x^2) ans= 1/2*x^2*(5*x+6) 38. 解方程 1、代数方程 格式:solve (f,t) 功能:对变量t 解方程f=0,t 缺省时默认为x 或最接近字母x 的符号变量。 例如:求解一元二次方程f=a*x^2+b*x+c的实根, syms a b c x f=a*x^2+b*x+c; solve (f,x) ans= [1/2/a*(-b+(b^2-4*a*c)^ (1/2))] [1/2/a*(-b-(b^2-4*a*c)^ (1/2))] 39. 微分方程 格式:dsolve(‘s’, ’s1’, ’s2’,…, ’x’) 例如:求微分方程 的通解 dsolve(‘Dy=1+y^2’) ans= tan(t+c1) 40. 线性规划问题
(线性不等式约束)
(线性等式约束)
(有界约束) 的函数是linprog ,其主要格式为: [x, fval, exitflag, output, lambda]= linprog(c, A, b, A1, b1 , LB, UB, x0, options) 参数的主要用法及说明如下: (1)c, A和b是不可缺省的输入宗量;x是不可缺省的输出宗量,它是问题的解。 (2)当x无下界时,在LB处放置[ ]。当无上界时,在UB处放置[ ]。 如果x的某个分量 无下界,则置LB(i)=-inf. 如果 无上界,则置UB(i)=inf. 如果无线性不等式约束,则在A和b处都放置[ ]。 (3)x0是解的初始近似值。 (4)options是用来控制算法的选项参数向量。 (5)输出宗量fval是目标函数在解x处的值。 (6)输出宗量exitflag的值描述了程序的运行情况。如果exitflag的值大于0,则程序收敛于解x;如果exitflag的值等于0,则函数的计算达到了最大次数;如果exitflag的值小于0,则问题无可行解,或程序运行失败。 (7)输出宗量output输出程序运行的某些信息。 (8)输出宗量Lambda为在解x处的值 Lagrange乘子。 例:求解线性规划问题 min , , , , , , . 解:在命令窗口中键入
c=[-2,-1,1]; a=[1,4,-1; 2,-2,1]; b=[4; 12]; a1=[1,1,2]; b1=6; lb=[0; 0; -inf]; ub=[inf; inf; 5]; [x, z]=linprog(c,a,b,a1,b1,1b,ub) 运行后得到: x= 4.6667 0.0000 0.6667 z= -8.6667 41.常用的命令和技巧 (1)若干个通用操作命令 Cd 改变当目录 Clear 清除内存中的所有变量和函数 Clc 擦除matlab工作窗口中所有显示的内容 Clf 擦除matlab当前窗口中的图形 Dir 列出指定目录下的文件和子目录清单 Disp 在运行中显示变量或文字内容 Echo 制运行文字指令是否显示 (2)命令行中的键盘按键 42.退出和保存工作空间 – 退出: quit或exit – 保存: save <文件名> [<变量名列表>] 文件名扩展名为 “mat” – 装入: load <文件名> [<变量名列表>] – 清除: clear 清除所有的变量 clear <变量名列表> 清除指定的变量 43.导入Excel数据文件中的数据该矩阵变量名为Excel数据文件中的文件名 – 方法为:执行主窗口下的FILE菜单下的Import Data功能项,按照向导提示初步完成。 44. ) +、-、 * / (右除)、 \ (左除)、 ^幂指数 45. 矩阵的除法 (左除)、 (右除/) a\b=inv(a)*b ax=b þ x=a-1b b/a=b*inv(a) x*a=b þ x=b*a-1 46. <、<=、>、>=、 = =(等于)、 ~=(不等于) 47. 特殊变量 取 值 ans 用于结果的缺省变量名 pi 圆周率 eps 计算机的最小数,当和1相加就产生一个比1大的数 flops 浮点运算数 inf 无穷大,如1/0 NaN 不定量,如0/0 i,j i=j= nargin 所用函数的输入变量数目 nargout 所用函数的输出变量数目 realmin 最小可用正实数 realmax 最大可用正实数 48. 函 数 名 称 函 数 名 称 sin(x) 正弦函数 asin(x) 反正弦函数 cos(x) 余弦函数 acos(x) 反余弦函数 tan(x) 正切函数 atan(x) 反正切函数 abs(x) 绝对值 max(x) 最大值 min(x) 最小值 sum(x) 元素的总和 sqrt(x) 开平方 exp(x) 以e为底的指数 log(x) 自然对数 以10为底的对数 sign(x) 符号函数 fix(x) 取整 49. 、M文件 例:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2 1.建立M文件:fun.m function f=fun(x) f=100*(x(2)-x(1)^2)^2+(1-x(1))^2 2. 可以直接使用函数fun.m 例如:计算 f(1,2), 只需在Matlab命令窗口键入命令: x=[1 2] fun(x) 50. 矩 阵 逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列. 例 m=[1 2 3 4 ;5 6 7 8;9 10 11 12] p=[1 1 1 1 2 2 2 2 3 3 3 3] 51. 特殊矩阵的建立 a=[ ] 产生一个空矩阵,当对一项操作无结 果时,返回空矩阵,空矩阵的大小为零. b=zeros(m,n) 产生一个m行、n列的零矩阵 c=ones(m,n) 产生一个m行、n列的元素 全为1的矩阵 d=eye(m,n) 产生一个m行、n列的单位矩阵 52. 矩阵运算 [2]矩阵运算: 矩阵加法:A+B 矩阵乘法:A*B 方阵的行列式:det(A) 方阵的逆:inv(A) 方阵的特征值与特征向量:[V,D]=eig[A] 53. 2、逻辑运算符 54.
先建立M文件fun2.m定义函数f(x),再在Matlab命令窗口输入fun2(2),fun2(0.5), fun2(-1)即可。
55. 曲线图 命令为: 命令为: PLOT(X,Y,S) 线型 • y 黄色 . 点 - 连线 • m 洋红 o 圈 : 短虚线 • c 蓝绿色 x x-符号 -. 长短线 r 红色 + 加号 – 长虚线 X,Y是向量,分别表示点集的横坐标和纵坐标 PLOT(X,Y)–画实线 PLOT(X,Y1,S1,X,Y2,S2,……,X,Yn,Sn) –将多条线画在一起 56. 例 在[0,2*pi]用红线画sin(x),用绿圈画cos(x). x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,’r’,x,z,’g0’) 例 . 在[-1,2]上画 的 图形 解 先建M文件myfun1.m: function Y=myfun1(x) Y=exp(2*x)+sin(3*x.^2) 再输入命令: fplot(‘myfun1’,[-1,2]) 例 在[-2,2]范围内绘制函数tanh的图形 解 fplot(‘tanh’,[-2,2]) 例 x、y的取值范围都在[- , ], 画函数tanh(x),sin(x),cos(x)的图形 解 输入命令: fplot(‘[tanh(x),sin(x),cos(x)]’,2*pi*[-1 1 –1 1]) 56.对数坐标图 loglog(Y) 表示 x、y坐标都是对数坐标系 semilogx(Y) 表示 x坐标轴是对数坐标系 semilogy(…) 表示y坐标轴是对数坐标系 plotyy 有两个y坐标轴,一个在左边,一个在右边 例 用方形标记创建一个简单的loglog 解 输入命令: x=logspace(-1,2); loglog(x,exp(x),’-s’) grid on %标注格栅 例 创建一个简单的半对数坐标图 解 输入命令: x=0:.1:10; semilogy(x,10.^x) 例 绘制y=x3的函数图、对数坐标图、半对数坐标图 57. 1、 一条曲线 PLOT3(x,y,z,s) 例 在区间[0,10*pi]画出参数曲线x=sin(t),y=cos(t), z=t. 解 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) rotate3d %旋转 58. 多条曲线 PLOT3(x,y,z) 解 x=-3:0.1:3;y=1:0.1:5; [X,Y]=meshgrid(x,y); Z=(X+Y).^2; plot3(X,Y,Z) 空 间 曲 面 surf(x,y,z) 例 画函数Z=(X+Y).^2的图形. 解 x=-3:0.1:3; y=1:0.1:5; [X,Y]=meshgrid(x,y); Z=(X+Y).^2; surf(X,Y,Z) shading flat %将当前图形变得平滑 Mesh(x,y,z) 画网格曲面 例 画出曲面Z=(X+Y).^2在不同视角的网格图. 解 x=-3:0.1:3; y=1:0.1:5; [X,Y]=meshgrid(x,y); Z=(X+Y).^2; mesh(X,Y,Z) (3)meshz(X,Y,Z) 在网格周围画一个curtain图(如,参考平面) 解 输入命令: [X,Y]=meshgrid(-3:.125:3); Z=praks(X,Y); Meshz(X,Y,Z) 59. 处理图形 GRID ON: 加格栅在当前图上 GRID OFF: 删除格栅 (2)hh = xlabel(string): 在当前图形的x轴上加图例string hh = ylabel(string): 在当前图形的y轴上加图例string hh = zlabel(string): 在当前图形的z轴上加图例string hh = title(string): 在当前图形的顶端上加图例string 例 在区间[0,2*pi]画sin(x)的图形,并加注图例“自变量 X”、“函数Y”、“示意图”, 并加格栅. 解 x=linspace(0,2*pi,30); y=sin(x); plot(x,y) xlabel(‘自变量X’) ylabel(‘函数Y’) title(‘示意图’) grid on

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删