Matlab复习资料.doc_第1页
Matlab复习资料.doc_第2页
Matlab复习资料.doc_第3页
Matlab复习资料.doc_第4页
Matlab复习资料.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大家好!这是一份matlab复习资料,在里面可能有几道模拟题的答案(注意模拟题中的变化);对于其他的答案,恕我的能力有限,无法满足大家的需求,我在此致以崇高的歉意。最后祝愿每个人取得理想的成绩 2011年06月29日 刘自迪Matlab复习资料一、基本概念、命令、语句格式、程序结构1. MATLAB是一种用于科学工程计算的高级语言,其基本的数据单位是矩阵,它的命令表达式与数学、工程中常用的习惯表达形式十分相似;2. MATLAB高效方便的矩阵和数组运算,使之在数字信号处理、建模、系统识别、自动控制、优化等领域的问题时,显得十分简洁、高交,具有其他高级语言不可比拟的优势;3. MATLAB的典型应用包括以下几个方面:数学计算、算法设计、建模与仿真、数据分析与可视化、科学及工程绘图和应用开发;4. MATLAB最显著的特点是其基本数据是不需要定义大小的数组;5. MATLAB语言是以矩阵和向量为基本数据单位,包括控制流程语句、函数、数据结构、输入输出及面向对象等特点的高级语言;6. MATLAB的工作空间指运行MATLAB的所有变量和MATLAB提供的常量构成的空间;7. 在命令窗口中键入who和whos命令可以看到目前工作空间里的所有变量,命令clear可以删除工作空间里的变量;8. MATLAB用“%”实现注释功能;可以把多条命令放在同一行,只要中间用逗号或分号隔开,逗号告诉MATLAB显示结果;分号说明除了这一条命令外还有下一条命令等待输入,MATLAB这时将不会给出运行的中间结果;9. MATLAB的“类”目录名都以符为引导,其上存放“类构造”函数和“重载”函数;10. 用path命令扩展的搜索路径仅在当前MATLAB环境下有效;11. MATLAB有两种最常用的创建数组的方式:“冒号表示形式”直接定义数据点之间的增量而不是数据点;linspace直接定义数据点数,而不是数据点之间的增量;12. MATLAB数组中以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素;另:MATLAB的数组存储,也表现在绝对索引上,是按从上到下、从左到右的顺序进行的。13. 点乘符号.*对数组c和d施加元素对元素的乘法运算,不带点的乘号表示矩阵乘法;14. 数组除法同时使用了正斜杠和反斜杠两种定义:两种情况下,斜杠下的数组都被斜杠上的数组所除;15. B.A表示对应元素相除;16. reshape函数用于在总元素不变的前提下,改变数组的“行数”、“列数”;17. 为了生成比较复杂的数组,MATLAB提供了诸如反转、插入、提取、收缩、重组等对数组和矩阵的操作方式;18. 函数find用于返回数组或矩阵中满足某关系表达式的那些元素的位置或下标;19. 可用命令class和ischar来查看变量是否为字符数组;20. 采用输入数值矩阵的方法输入字符矩阵时,应保证矩阵的每行字符串的长度相同;21. 函数cellstr可把字符矩阵转换成元胞数组;22. 函数mat2str把数值数组组转换为字符串,用eval函数又可把这种字符串转换成数值数组;23. 元胞数组的每一个元素可为类型不同、维数不同的矩阵、向量、标量或多维数组,所有元素用大括号括起来;24. 中括号对“ ”用来形成矩阵,大括号对“ ”是元胞数组的标志。两者不同之处在于,大括号可以嵌套,而中括号不可;25. 函数celldisp用来显示元胞数组的每个元素的值,函数cellplot将画出元胞数组的每个元素的结构图;26. 当给已经定义的元胞数组下标范围外的元素赋值时,MATLAB自动扩维,对于没有赋值的元素,赋值为空矩阵;27. 在赋值语句中,每次只能给元胞数组的一个元素赋值,采用形如“a1,:=”的赋值语句是不合法的;28. 结合使用冒号运算和大括号可以方便地引用元胞数组中的多个元素,并把引用的元素分为不同的变量;29. 数据不能直存放于结构体,而只能存放在域中。结构体的域可以存放任何类型、任何大小的数组;30. 在矩阵下标的表达式里使用冒号表示矩阵的一部分,如A(:,j)表示矩阵A的第j列的所有元素。由于有了冒号运算符,在MATLAB里编程变得特别简便、快捷;31. 在MATLAB里,可通过把矩阵的列或行赋值为空矩阵来删除某行或某列;32. A(1:2:5)表示删除下标为1、3、5的三个元素;33. 在MATLAB里,当行向量乘以列向量时为标量积(内积),当列向量乘以行向量时为向量积(外积);34. 函数cond(A)计算矩阵的条件数;35. V,D=eig(A)求特征值与特征向量;36. det(A)计算行列式;37. Inv(A)求矩阵的逆;38. poly(A)求特征多项式;39. 函数polyfit从最小二乘的意义上,拟合出所给数据的多项式系数;40. x(any(isnan(x),:) = 作用是删除所有包含NaN的行;41. any(x)的功能是:如果在一个向量x中,任何元素是非零,返回1;42. all(x)的功能是:如果在一个向量x中,所有元素非零,返回1;43. 函数工作空间变量nargin包含输入参量个数,函数工作空间变量nargout包含输出参量个数;44. 局部(local)变量是存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本身;45. 全局(global)变量是在不同的工作空间以及基本工作空间中可以被共享的变量;46. 私有函数只能被private目录的直接父目录上的M函数文件所调用;47. 数值数组的预定维一般采用zeros函数,元胞数组预定维采用cell函数,结构型数组用struct函数预定维;48. clear命令从内存中删除变量;49. pack命令把内存中的变量存入磁盘,再用内存中的连续空间载回这些变量;50. 在MATLAB里,对象是用结构体数组来存储的;51. 函数figure 可建立新的图形窗口,并把新建的窗口指定为当前窗口用于输出图形;52. 命令subplot可以把多个图形绘在一个图形窗口中;53. 命令what列出当前目录或文件夹下的所有M文件和MAT文件;54. help、lookfor等命令都不能提供关于私有函数的任何帮助信息;55. MATLAB还提供了两种演算函数来提高计算的灵活性:一种是串演算函数eval,另一种是函数句柄演算函数feval; 56. 编程时,把循环向量化,不但能缩短程序的长度,更能提高程序的执行效率;57. 在MATLAB里运行C语言的可执行文件,应在文件名前加上感叹号“!”;58. 函数meshgrid(x,y)对y中行的每一行复制x,同样也对x中列的每一列复制y;59. MATLAB提供了一个称为fplot的巧妙的绘图函数,该函数细致地计算要绘图的函数,并且确保在输出的图形中表示出所有的奇异点;60. 在图形窗口里,legend、zoom、ginput都响应鼠标的单击。二、MATLAB矩阵运算基础创建行矢量:在一对方括号中输入元素,并用空格或是逗号分隔开。创建列矢量:使用分号分割开。转置运算符(),若数组中包含复数元素,那么产生复共轭转置。可以使用点转置运输符(.),所有元素是实数,它们的运算结果相同。数组索引:行号总是列在前面。V(:,2:4)表示矩阵中第二列,到第五列的所有元素。通过让矩阵的某些行或列赋值空数组,就可以删除相应的行或列。A(1 4, :)=;删除矩阵A的第1行和第4行。多维数组前二维是行和列,较高维称为页。创建三维数组的一个方法是使用cat命令。Ccat(3,A,B),可以任务C由两层数组构成,第一层是A,第二层是B。1 在MATLAB中如何建立矩阵,并将其赋予变量a? a=5 7 3;4 9 12 有几种建立矩阵的方法?各有什么优点?可以用四种方法建立矩阵:直接输入法,如a=2 5 7 3,优点是输入方法方便简捷;通过M文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改;由函数建立,如y=sin(x),可以由MATLAB的内部函数建立一些特殊矩阵;通过数据文件建立,该方法可以调用由其他软件产生数据。3 在进行算术运算时,数组运算和矩阵运算各有什么要求?进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a与b相乘(a*b)时必须满足a的列数等于b的行数。4 数组运算和矩阵运算的运算符有什么区别?在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。5 计算矩阵与之和。 a=5 3 5;3 7 4;7 9 8; b=2 4 2;6 7 9;8 3 6; a+bans = 7 7 7 9 14 13 15 12 146 求的共轭转置。 x=4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i; xans = 4.0000 - 8.0000i 3.0000 - 2.0000i 3.0000 - 5.0000i 7.0000 + 6.0000i 2.0000 + 7.0000i 9.0000 - 4.0000i 1.0000 - 4.0000i 3.0000 + 9.0000i 7.0000 + 5.0000i 4.0000 - 4.0000i7 计算与的数组乘积。 a=6 9 3;2 7 5; b=2 4 1;4 6 8; a.*bans = 12 36 3 8 42 408 “左除”与“右除”有什么区别?在通常情况下,左除x=ab是a*x=b的解,右除x=b/a是x*a=b的解,一般情况下,abb/a。9 对于,如果,求解X。 A=4 9 2;7 6 4;3 5 7; B=37 26 28; X=ABX = -0.5118 4.0427 1.331810 已知:,分别计算a的数组平方和矩阵平方,并观察其结果。 a=1 2 3;4 5 6;7 8 9; a.2ans = 1 4 9 16 25 36 49 64 81 a2ans = 30 36 42 66 81 96 102 126 15011 ,观察a与b之间的六种关系运算的结果。 a=1 2 3;4 5 6; b=8 7 4;3 6 2; abans = 0 1 0 1 0 1 a=bans = 0 1 0 1 0 1 a a a=bans = 0 0 0 0 0 0 a=bans = 1 1 1 1 1 112 ,在进行逻辑运算时,a相当于什么样的逻辑量。相当于a=1 1 0 1 1。13 在sin(x)运算中,x是角度还是弧度?在sin(x)运算中,x是弧度,MATLAB规定所有的三角函数运算都是按弧度进行运算。14 角度,求x的正弦、余弦、正切和余切。 x=30 45 60; x1=x/180*pi; sin(x1)ans = 0.5000 0.7071 0.8660 cos(x1)ans = 0.8660 0.7071 0.5000 tan(x1)ans = 0.5774 1.0000 1.7321 cot(x1)ans = 1.7321 1.0000 0.577415 用四舍五入的方法将数组2.4568 6.3982 3.9375 8.5042取整。 b=2.4568 6.3982 3.9375 8.5042; round(b)ans = 2 6 4 916 将矩阵、和组合成两个新矩阵:(1)组合成一个43的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即;(2)按照a、b、c的列顺序组合成一个行矢量,即 a=4 2;5 7; b=7 1;8 3; c=5 9;6 2;% (1) d=a(:) b(:) c(:) d = 4 7 5 5 8 6 2 1 9 7 3 2% (2) e=a(:);b(:);c(:) e = 4 5 2 7 7 8 1 3 5 6 9 2 或利用(1)中产生的d e=reshape(d,1,12) ans = 4 5 2 7 7 8 1 3 5 6 9 2三、重要函数/命令/变量clc 清空命令窗口clear 从工作空间(计算机内存)中删除变量close all 关闭(删除)全部图形窗口load 从磁盘中调入数据变量save 把内存变量存入磁盘function 函数文件头global 定义全局变量input 提示键盘输入format 格式化显示命令窗口输出信息cumsum 阵列累计和diag方阵的对角线;创建对角阵dot 两向量的点积end阵列最后项的指针find 满足逻辑表达式的阵列索引和阵列值length 向量长度size 阵列的阶次或长度min 确定阵列中的最小值max 确定阵列中的最大值rank 确定矩阵线性无关的行或列值eig 矩阵特征方程的特征值和特征向量det 方阵行列式inv 方阵的逆poly 特征多项式plot 应用线型坐标绘制平面曲线mesh 绘三维网线图sum 计算阵列元素的和值mean 计算阵列元素的均值var 计算阵列元素的方差std 计算阵列元素的标准差corrcoef 相关系数矩阵sym 定义基本符号对象syms 定义基本符号对象! 执行外部应用程序基本矩阵(Elementary matrices)eye 单位矩阵ones 所有元素全为1的矩阵zeros 所有元素全为0的矩阵rand 均匀分布随机阵randn 正态分布随机阵compan 伴随矩阵magic 创建任意行和列的和值相等的方阵meshgrid 用于三维曲面的分格线坐标linspace 线性等分向量logspace 对数等分向量repmat 铺放模块数组信息显示(Message display)disp 显示矩阵和文字内容display 显示矩阵和文字内容的重载函数error 显示错误信息fprintf 把格式化数据写到文件或屏幕sprintf 按格式把数字转换为串控制语句(Control flow)break 终止最内循环case 同switch一起使用catch 同try一起使用continue 将控制转交给外层的for或while循环else 同if一起使用elseif 同if一起使用end 结束for,while,if语句for 按规定次数重复执行语句if 条件执行语句otherwise 可同switch一起使用return 返回switch 多个条件分支try try-cathch结构while 不确定次数重复执行语句特殊变量ans 用于结果的缺省变量名pi 圆周率eps 计算机的最小数,当和1相加就产生一个比1大的数flops 浮点运算数inf 无穷大,如1/0NaN 不定量,如0/0i,j i=j= nargin 所用函数的输入变量数目nargout 所用函数的输出变量数目realmin 最小可用正实数realmax 最大可用正实数时间和日期(Time and dates)clock 时钟cputme MATLAB占用CPU 时间date 日期etime 用CLOCK 计算的时间now 当前时钟和日期pause 暂停tic 计时开始toc 计时终止和显示符串操作(String operations)ischar 若是字符串则为真isletter 串中是字母则为真isspace 串中是空格则为真isempty 若是空矩阵则为真isequal 若对应元素相等则为1islogical 若是逻辑数则为真isnumeric 若是数值则为真int2str 将整数转换为字符串str2num 将字符串转换为数值lower 把字符串变成小写upper 把字符串变成大写MATLAB取整和求余函数(Rounding and remainder)ceil 朝正无穷大方向取整fix 朝零方向取整floor 朝负无穷大方向取整mod 模数求余rem 求余数round 四舍五入取整sign 符号函数文件输入/输出(File input/output)fopen 打开文件fclose 关闭文件fread 从文件中读取二进制数据fwrite 把二进制数据写到文件里fscanf 从文件中读入格式化数据fprintf 把规格化数据写到文件或屏幕fgetl 读文件的行,忽略回车符fgets 读文件的行,包括回车符exist 检查文件是否存在ferror 查询文件I/O的错误状态feof 测试文件是否结束fseek 设置文件位置指示符ftell 获取文件位置指示符frewind 返回到文件开始delete 删除磁盘文件微积分(Calculus)diff 求导数limit 求极限int 计算积分jacobian Jacobian矩阵symsum 符号序列的求和trylor Trylor级数方程求解(Solution of Equation)dsolve 求解符号常微分方程finverse 求反函数fminunc 拟牛顿法求多元函数极值点fsolve 解非线性方程组lsqnonlin 解非线性最小二乘问题solve 求解方程组四、M文件编程1 命令文件与函数文件的主要区别是什么?(1)命令文件是一系列命令的组合,函数文件的第一行必须用function说明;(2)命令文件没有输入参数,也不用返回参数,函数文件可以接受输入参数,也可以返回参数;(3)命令文件处理的变量为工作空间变量,函数文件处理的变量为函数内部的局部变量,也可以处理全局变量。2 如何定义全局变量?用关键字global可以把一个变量定义为全局变量,在M文件中定义全局变量时,如果在当前工作空间已经存在了相同的变量,系统将会给出警告,说明由于将该变量定义为全局变量,可能会使变量的值发生改变,为避免发生这种情况,应该在使用变量前先将其定义为全局变量。3 如果x是一个结构型数组,如何观察其中的内容?结果数组用于存储一组相关的数据元素(域),这些元素可以是不同类型、不同尺寸的,结构数组不能用数组编辑器观察和修改其中的元素。对于明为x的结构型数组,可以直接键入x以观察其中所包含的域名及内容,也可以键入x.域名观察指定域名的内容,例如xx = name: line color: red data: 1 2.7000 3 5.9000 8.4000 12.2000 16.6000 18.8000 26.2000 x.colorans =red4 if语句有几种表现形式?(1)if 表达式 语句体 end(2)if 表达式 语句体1 else 语句体2 end(3)if 表达式1 语句体1 elseif 表达式2 语句体2 end(4)if 表达式1 语句体1 elseif 表达式2 语句体2 else 语句体3 end5 说明break语句和return语句的用法。break语句用于终止for循环和while循环的执行。如果遇到break语句,则退出循环体,继续执行循环体外的下一行语句。在嵌套循环中,break只存在于最内层的循环中。return语句用于终止当前的命令序列,并返回到调用的函数或键盘,也用于终止keyboad方式,在MATLAB中,被调用的函数运行结束后会自动返回调用函数,使用return语句时将return插入被调用函数的某一位置,根据某种条件迫使被调用函数提前结束并返回调用函数。6 有一周期为4p的正弦波上叠加了方差为0.1的正态分布的随机噪声的信号,用循环结构编制一个三点线性滑动平均的程序。(提示:用0.1*randn(1,n)产生方差为0.1的正态分布的随机噪声;三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据,如x1(2)=(x(1)+x(2)+x(3)/3,x1(3)=( x(2)+x(3)+x(4)/3) t=0:pi/50:4*pi; n=length(t); y=sin(t)+0.1*randn(1,n); ya(1)=y(1); for i=2:n-1 ya(i)=sum(y(i-1:i+1)/3; end ya(n)=y(n); plot(t,y,c,t,ya,r,linewidth,2)7 编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。 function c=collatz(n) % collatz % Classic “3n+1” Ploblem from number theory c=n; while n1 if rem(n,2)=0 n=n/2; else n=3*n+1; end c=c n; end8 有一组学生的考试成绩(见表),根据规定,成绩在100分时为满分,成绩在9099之间时为优秀,成绩在8089分之间时为良好,成绩在6079分之间为及格,成绩在60分以下时为不及格,编制一个根据成绩划分等级的程序。学生姓名王张刘李陈杨于黄郭赵成 绩728356941008896685465 Name=王,张,刘,李,陈,杨,于,黄,郭,赵; Marks=72,83,56,94,100,88,96,68,54,65; % 划分区域:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(,可以在命令窗口或工作空间浏览器中观察和修改变量内容,如果keyboard命令设置在函数中,则可以观察和修改函数中的局部变量,检查或修改完成后,键入return命令,退出keyboard状态,控制权交还给系统,程序将继续运行。11. 函数M文件当调用一个函数时,所用的输入和输出的参量的数目,在函数内是规定好的。函数工作空间变量nargin包含输入参量个数;函数工作空间变量nargout包含输出参量个数。事实上,这些变量常用来设置缺省输入变量,并决定用户所希望的输出变量。例如,考虑MATLAB函数linspace:function y=linspace(d1,d2,n)% LINSPACELinearlyspacedvector.% LINSPACE(x1,x2)generatesarowvectorof100linearly% equallyspacedpointsbetweenx1andx2.% LINSPACE(x1,x2,N)generatesNpointsbetweenx1andx2.% SeealsoLOGSPACE,% Copyright(c)1984-94byTheMathWorks,Inc.if nargin=2n=100;endy=d1+(0:n-2)*(d2-d1)/(n-1)d2;这里,如果用户只用两个输入参量调用linspace,例如linspace(0,10),linspace产生100个数据点。相反,如果输入参量的个数是3,例如,linspace(0,10,50),第三个参量决定数据点的个数。五、MATLAB的符号运算功能1求和symsum(S) 对通项S求和,其中k为变量。且从0变到k-1。symsum(S,v) 对通项S求和,指定其中v为变量。且v从0变到v-1。symsum(S,a,b) 对通项S求和,其中k为变量。且从a变到b。symsum(S,v,a,b) 对通项S求和,指定其中v为变量。且v从a变到b。例:键入k=sym(k);symsum(k) 得 ans = 1/2*k2-1/2*k 又例如:键入 symsum(k2,0,10)得 ans = 385 又例如:键入symsum(xk/sym(k!),k,0,inf)得 ans = exp(x) 这最后的一个例子是无穷项求和。2求导数 diff(S,v) 求表达式S对变量v的一阶导数。 diff(S,v,n) 求表达式S对变量v的n阶导数。 例如:键入命令 A=sym(1/(1+a),(b+x)/cos(x);1,exp(x2); diff(A,x) 得 ans = 0, 1/cos(x)+(b+x)/cos(x)2*sin(x) 0, 2*x*exp(x2) 又如求sin(x)+ex的三阶导数,键入命令 diff(sin(x)+x*exp(x),3) 得 ans = -cos(x)+3*exp(x)+x*exp(x) 再如:求 A = x*sin(y), xn+y 1/x/y, exp(i*x*y) 的先对x再对y的混合偏导数。可键入命令: S=sym(x*sin(y),xn+y;1/x/y,exp(i*x*y); dsdxdy=diff(diff(S,x),y) 得 dsdxdy = cos(y), 0 1/x2/y2, i*exp(i*x*y)-y*x*exp(i*x*y)求y=(lnx)x的导数可键入命令:p=(log(x)x;p1=diff(p,x) 得p1 = log(x)x*(log(log(x)+1/log(x)求y=xf(x2)的导数,可键入命令:p=x*f(x2);p1=diff(p,x) 得p1 = f(x2)+2*x2*D(f)(x2)求xy=ex+y的导数,可键入命令:p=x*y(x)-exp(x+y(x);p1=diff(p,x)p1 =y(x)+x*diff(y(x),x)-(1+diff(y(x),x)*exp(x+y(x)p2=y+x*dy-(1+dy)*exp(x+y)=0;dy=solve(p2,dy) %把dy作为变量解方程 得 dy=-(y-exp(x+y)/(x-exp(x+y)3求极限limit(P) 表达式P中自变量趋于零时的极限。limit(P,a) 表达式P中自变量趋于a时的极限。limit(P,x,a,left) 表达式P中自变量x趋于a时的左极限。limit(P,x,a,right)表达式P中自变量x趋于a时的右极限。例如:键入 P=sym(sin(x)/x); limit(P) 得 ans = 1 键入 P=sym(1/x);limit(P,x,0,right) 得 ans = inf 键入 P=sym(sin(x+h)-sin(x)/h);h=sym(h);limit(P,h,0) 得ans = cos(x) 键入 v=sym(1+a/x)x,exp(-x); limit(v,x,inf,left) 得 ans = exp(a), 0 4求积分 int(P) 对表达式P进行不定积分。 int(P,v) 以v为积分变量对P进行不定积分。 int(P,v,a,b) 以v为积分变量,以a为下限,b为上限对P进行定积分。例如:键入int(-2*x/(1+x2)2) 得 ans = 1/(1+x2) 键入int(x/(1+z2),z) 得 ans =atan(z)*x 键入int(x*log(1+x),0,1) 得ans =1/4 定积分的上下限可以是(符号)函数。例如,键入:int(2*x,sin(t),log(t) 得ans =log(t)2-sin(t)2 可以对(符号)矩阵进行积分,例如输入int(exp(t),exp(a*t) 得 ans = exp(t), 1/a*exp(a*t) 5求符号方程的解(1)线性方程组的求解线性方程组的形式为A*X=B;其中A至少行满秩。X=linsolve(A,B) 输出方程的特解X。例如:键入A=sym(cos(t),sin(t);sin(t),cos(t);B=sym(1;1);c=linsolve(A,B) c = 1/(sin(t)+cos(t) 1/(sin(t)+cos(t) 例如:键入a=sym(2,7,3,1;3,5,2,2;9,4,1,7);b=sym(6;4;2);X=linsolve(a,b) Warning: System is rank deficient. Solution is not unique.X = 0 0 2 0 (2)代数方程的求解solve(P,v) 对方程P中的指定变量v求解。solve(p1,P2,,Pn,v1,v2,,vn) 对方程P1,P2,Pn中的指定变量 v1,v2,vn求解。例:要求解方程p+sin(x)=r,可输入solve(p+sin(x)=r) 得:ans =-asin(p-r) 又例:要求解方程组,可输入:P1=x2+x*y+y=3; P2=x2-4*x+3=0; x,y=solve(P1,P2) 得: x = 1 3y = 1 -3/2再例:要求解方程组,可输入:P1=a+u2+v2=0; P2=u-v=1;u,v=solve(P1,P2,u,v) 得:u = 1/2+1/2*(-1-2*a)(1/2)1/2-1/2*(-1-2*a)(1/2)v = -1/2+1/2*(-1-2*a)(1/2) -1/2-1/2*(-1-2*a)(1/2) 对于有些无法求出解析解的非线性方程组,MATLAB只给出一个数值解。这一点可以从表示解的数字不被方括号括住而确定。例如:键入:x,y=solve(sin(x+y)-exp(x)*y=0,x2-y=2) 得: x = -6.0173272500593065641097297117905 y = 34.208227234306296508646214438330 由于这两个数字没有被 括住,所以它们是数值解。另外,可利用solve来解线性方程组的通解。例如:键入 P1=2*x1+7*x2+3*x3+x4=6; P2=3*x1+5*x2+2*x3+2*x4=4; P3=9*x1+4*x2+x3+7*x4=2; u=solve(P1,P2,P3,x1,x2,x3,x4) Warning: 3 equations in 4 variables. u = x1: 1x1 sym x2: 1x1 sym x3: 1x1 symx4: 1x1 sym 可以看到:屏幕提示“有3个方程4个变量”,意为解不唯一。(有时会提示解不唯一)且输出的是解的结构形式。为进一步得到解,可输入: u.x1,u.x2,u.x3,u.x4, 得:ans = x1ans = -5*x1-4*x4ans = 11*x1+9*x4+2ans = x4 这样就得到了原方程组的通解。6解符号微分方程dsolve(eq1,eq2,) 其中eq表示相互独立的常微分方程、初始条件或 指定的自变量。默认的自变量为t。如果输入的初 始条件少于方程的个数,则在输出结果中出现常数 c1,c2,等字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论