《2022年matlab教学教程 .pdf》由会员分享,可在线阅读,更多相关《2022年matlab教学教程 .pdf(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 试验一 MATLAB 基础知识一、MATLAB 简介二、MATLAB 基础知识1、命令窗口是用户与MATLAB 进行交互作业的主要场所,用户输入的MATLAB 交互命令均在命令窗口执行。例如:在 MATLAB 命令窗口下键入a=3 2 3;4 7 6;7 5 9 按回车键后,显示结果a= 3 2 3 4 7 6 7 5 9 2、求逆矩阵命令格式: 变量=inv(参数) 例如:输入b=inv(a) ,按回车后,显示b= 1.3750 -0.1250 -0.3750 0.2500 0.2500 -0.2500 -1.2083 -0.0417 0.5417 名师资料总结 - - -精品资料欢迎下
2、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 49 页 - - - - - - - - - 2 3、MATLAB 系统还具有保存历史纪录的功能,它将本次启动 MATLAB 系统之后,用户输入的命令和创建的所有变量的值保存起来,用户通过方向键可查找所需的命令。MATLAB 提供了存储变量和删除变量的命令。SAVE 文件名 变量名 1,变量名 2,. 功能:将命令中的变量保存在给出的文件中。说明: (1)若过文件名省略,默认保存在MATLAB.MAT 中。(2)若变量名省略,则保存所有的变量到指定的文件中。(3
3、)若文件名和变量名都省略,则保存所有定义过的变量到 MATLAB.MAT 中。例如: SAVE AA.MAT a b c % 将变量 a b c保存在文件AA.MAT中。 SAVE BB.MAT % 将所有的变量保存到文件BB.MAT中。 SAVE % 将所有变量保存到文件MATLAB.MAT 中。clear 变量名 1 变量名 2,. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 49 页 - - - - - - - - - 3 功能:删除指定的变量。说明:若变量名表
4、省略,表明删除当前工作空间中的所有变量。例如: clear a b c %删除变量 a b c clear %删除当前工作空间的所有变量。MATLAB 还提供了一些命令, 专门管理和控制命令窗口。例如:clc 格式: clc 功能:清除命令窗口。home 格式: home 功能:光标移动到左上角who 格式: who 功能:查看当前的所有变量,只给出变量名。whos 格式: whos 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 49 页 - - - - - - - -
5、 - 4 功能:查看当前的所有变量,给出变量的详细信息。信息同变量浏览器。clear 格式: clear 变量名 功能:删除后面列出的变量,如果变量名省略,则删除所有的变量。4、MATLAB 中的常量MATLAB 提供了整数、实数、 复数和字符四种类型数据。对应的常量类型也是这四种。实数在屏幕显时默认的小数位数为 4 位。可以用命令改变实数的显示格式。命令 format 格式: format 格式例如: format long :输出实数为16 位 format short e :5 位加指数 format long e : 16位加指数 format rat : 有理数近似矩阵操作1、提取矩
6、阵的元素名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 49 页 - - - - - - - - - 5 例如: A=1 2 3 3; 3 2 4 1; 3 4 5 6 执行 b=A(1,2) ,结果为:b= 2 执行 v=A(1,2,3,4),结果为:v= 3 3 4 1 2、矩阵的修改例如:执行A(1,2)=3后,结果为:A= 1 3 3 3 3 2 4 1 3 4 5 6 作用:修改了第一行第二列的元素值。执行 A(: ,3)= 后,结果为:A= 1 3 3 3 2
7、 1 3 4 6 相当于删除了第三列。接着执行 A(2, :)= 后,结果为:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 49 页 - - - - - - - - - 6 A= 1 3 3 3 4 6 相当于删除了第二行。说明: 只能删除矩阵的某一行或某一列,不能删除某一个元素。3、有关矩阵的其他操作(1) 提取矩阵的上三角矩阵和下三角矩阵A= 1 3 3 4 2 1 4 4 6 执行 B=triu(A)后,结果为:B= 1 3 3 0 2 1 0 0 6 执行 C=
8、tril(A)后, 结果为:C= 1 0 0 4 2 0 4 4 6 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 49 页 - - - - - - - - - 7 (2) 提取矩阵的对角元素执行 B=diag(A) 后,结果为:B= 1 2 6 (3) 利用向量建立对角矩阵执行 C=diag(B) 后,结果为:C= 1 0 0 0 2 0 0 0 6 (4) 矩阵的秩、特征向量和特阵值 A= 1 3 3 4 2 4 3 4 5 执行 rank(A) 后,结果为: %求
9、矩阵的秩ans=2 执行 eig(A) 后, 结果为: %求矩阵的特征值ans= 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 49 页 - - - - - - - - - 8 10.0000 -2.0000 -0.0000 执行v, d=eig(A)后, 结果为: %求矩阵的特征向量和对应的特征值组成的对角阵v = -0.4243 0.5883 0.4243 -0.5657 -0.7845 0.5657 -0.7071 0.1961 -0.7071 d = 10.00
10、00 0 0 0 -2.0000 0 0 0 -0.0000 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 49 页 - - - - - - - - - 9 (5) 矩阵的算术运算和矩阵元素之间的运算 a= 1 2 3 2 b= 2 1 1 2 执行 c=a+b 后,结果为:c= 3 3 4 4 执行 d=a-b 后,结果为:d= -1 1 2 0 执行 e=a*b 后,结果为:执行 f=a.*b后,结果为:f= 2 2 3 4 执行 g=a.b后,结果为:g= 2 1
11、/2 1/3 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 49 页 - - - - - - - - - 10 执行 h=a./b后,结果为:h= 1/2 2 3 1 执行 j=a.b后,结果为:j= 1 2 3 4 执行 k=b.3 后,结果为:k= 8 1 1 8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 49 页 - - - -
12、- - - - - 11 试验二 MATLAB程序设计1、关系运算符 小于 大于 =大于等于 = =等于 =不等于格式: A 关系运算符 B 例如:a=-1 2 4;5 4 8; b=0 1 5;5 1 2; 则 c=ab c=0 1 0 0 1 1 2、逻辑运算符逻辑与: & , 格式: c=a&b 逻辑或: | ,格式: c=a|b 逻辑非: ,格式: c=a 例如: c=a&b c=0 1 1 1 1 1 c=a|b 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共
13、 49 页 - - - - - - - - - 12 c=1 1 1 1 1 1 3、程序的控制结构选择结构:(1)if语句格式 1: if end 格式 2: if else end 格式 3: if elseif . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 49 页 - - - - - - - - - 13 elseif else end 格式 4:if if else end else if else end end 名师资料总结 - - -精品资料欢迎下
14、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 49 页 - - - - - - - - - 14 (2)switch语句格式: switch 表达式 case 表达式值 1 语句组 1 case 表达式值 2 语句组 2 . case 表达式值 n 语句组 n otherwise 语句组 n+1 end 例 1:data=input(input the value of data); n=mod(data, 5); switch n case 1 y=1; 名师资料总结 - - -精品资料欢迎下载 - -
15、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 49 页 - - - - - - - - - 15 case 2 y=2; case 3 y=3; case 4 y=4 otherwise y=n; end y 例 2: var=input(input a number); switch var case 1 disp( 1) case 2,3,4 disp(2 or 3 or 4) case 5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
16、心整理 - - - - - - - 第 15 页,共 49 页 - - - - - - - - - 16 disp(5) otherwise disp(something else) end (3)while 语句格式: while( 表达式 ) 语句组 end 例 3:使用 while 语句求 1+2+3.+100。 i=1;sum=0; while(i=100) sum=sum+i: i=i+1; end str= 计算结果为: num2str(sum); (4)for循环语句名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
17、名师精心整理 - - - - - - - 第 16 页,共 49 页 - - - - - - - - - 17 格式: for 循环变量 =初始值:增量:终值语句组; end 例 4:使用 for 语句求 1+2+3.+100。 sum=0; for i=1:100 sum=sum+i; end str=计算结果为:num2str(sum); disp(str) 4、函数 M-文件格式: function 输出参数表 = 函数名(形式参数)语句组 end 说明: (1)函数 M-文件独自保存为一个文件,文件名就是函数名。(2)调用格式: 输出参数表 = 函数名(实际参数)名师资料总结 - -
18、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 49 页 - - - - - - - - - 18 (3)输出参数可以是多个变量,两两之间用逗号隔开,它们表示要计算的项;(4)形式参数是一组形式变量,本身没有任何意义,也不代表任何内容,只有在调用时赋予它实际值,才有意义。例 5:求向量的平均值和标准差 function mean, stdev=stat(x) n=length(x); mean=sum(x)/n; stdev=sqrt(sum(x.2)/n-mean.2); end 说明:函
19、数 M-文件保存为stat.m 。length(x):求向量 x 的长度。 sum(x):求向量x 中各个元素的总和,如果x是一矩阵,则按列求和。 sqrt(x):求 x 的平均值。调用:重新打开一m文件,输入:x=1 2 3;6 2 1;-1 -6 -4; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 49 页 - - - - - - - - - 19 mean, stdev=stat(x); 然后保存为任一文件名即可。 (除函数名外)名师资料总结 - - -精品资
20、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 49 页 - - - - - - - - - 20 试验三函数极限与导数1、函数的极限格式:limit(表达式,变量,常量,right或left) 含义:当变量趋向于常量时,表达式的左极限或右极限。说明: (1)当变量省略时,默认的变量是x,没有 x 时,找字母表中离x 最近的字母作为变量。(2)当常量省略时,默认为0。(3)在不说明是左极限还是右极限时,求表达式的极限。例如: syms x a t h limit(sin(x)/x); limit(x
21、-2)/(x2-4),2); limit(1+x)/x)(2*x),x,inf); v=(1+a/x)x,exp(-x); limit(v,x,inf,left); 2、导数与微分名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 49 页 - - - - - - - - - 21 求导公式格式: diff(表达式,变量,阶数) 功能:它表示将“表达式”按照“变量”求“阶数”阶导数。说明:若阶数省略,则表示求一阶导数。例如:syms x f=log(x); diff(f)
22、diff(f,4) g=(x+exp(x)*sin(x)(1/2); diff(g) pretty(ans) diff(g,2) simplify(ans) pretty(ans) 3、积分格式: int( 被积函数,积分变量,积分下限,积分上限) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 49 页 - - - - - - - - - 22 功能:求“被积函数”对“积分变量”从“积分下限”到“积分上限”的定积分。说明:当积分上下限省略时,求“被积函数” 的不定积分
23、。例如: syms x a b int(x*log(x) int(1/(1+sqrt(1-x2) int(cos(log(x) eval(int(exp(-x2),x,-1,1) eval(int(exp(-x2),x,-inf,1) eval(int(exp(-x2),x,-inf,inf) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 49 页 - - - - - - - - - 23 试验四微分方程、多元函数微积分一、解方程1、代数方程格式: solve(f,t
24、) 功能:对变量t 解方程 f=0 ,t 缺省时默认为x 或最接近字母 x 的符号变量。例如:求解一元二次方程f=a*x2+b*x+c的实根,执行 solve(f,x) 结果为: ans=1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2) 又如:求解一元二次方程g=4*x2+6*x-9的实根,执行 solve(g,x); eval(ans) 结果为: 0.9271 , -2.4271 2、微分方程(1)常微分方程的同解当微分方程中不含任何附加条件(初值条件)时,其名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
25、 - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 49 页 - - - - - - - - - 24 解就是该方程的通解。格式: dsolve( 微分方程 , 自变量 ) 说明:其中“微分方程”和“自变量”都按字符串形式给出,并用单引号括住,且当自变量为t 时可省略。例如: syms x y z t a b dsolve( Dy=x*Dy=a*(y2+Dy) , x) 注: Dyy, D2yy ”, D3yy ”, 依次类推。dsolve( D3y=exp(2*x)-cos(x), x) (2) 常微分方程的特解格式: dsolve( 微分方程,初值
26、条件1,初值条件 2,., 自变量 ) 说明:y(x0)=y0y|x=x0=y0;Dy(x0)=y1 y|x=x0=y1 。例如: syms x y z t a b dsolve( Dx=a*x*(b-x), x(0)=x0 ) ; 自 变量为 t dsolve( x*D2y+Dy=0, y(1)=1, Dy(1)=6 , x) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 49 页 - - - - - - - - - 25 (3) 常微分方程组求解对于无初值条件的微
27、分方程组,其通解的求法格式为:dsolve( 微分方程1,微分方程2, , , 自变量 ) 对于带初值条件的微分方程组,其特解的求解格式为:dsolve( 微分方程1,微分方程2, , , 条件 1,条件 2,, ,自变量 ) 例如:求 3sincos(2)0(0)0(0)0fgxgfxffg的通解和特解,其命令如下:syms x f g h f1,g1=dsolve(D2f+3*g=sin(x), Df+Dg=cos(x) , x) f,g=dsolve(D2f+3*g=sin(x), Df+Dg=cos(x) , Df(2)=0, 名师资料总结 - - -精品资料欢迎下载 - - - -
28、- - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 49 页 - - - - - - - - - 26 f(0)=0,g(0)=0, x) 二、多元函数微积分1、多元函数极限这里我们仅对极限存在的函数,求沿坐标轴方向的极限。 ,即将求多元函数极限问题,化成求多次单极限的问题。例如:syms x y z t a b limit(limit(x2+y2)/(sin(x)+cos(y),0),pi) limit(limit(limit(x+y*z+exp(sin(x*z)/(x+y/z),1),2),3) 2、多元函数偏导数对多元函数中
29、的某一变量求偏导数,等价于将其余变量看作常量,仅对该变量求导数。syms x y z t u v diff(x3+2*x*y+y2-6,x) diff(diff(x3+2*x*y+y2-6,x),y) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 49 页 - - - - - - - - - 27 试验五绘图和级数一、化简和代换simplify 利用各种恒等式化简代数式expand 将乘积展开为和式factor 把多项式转换为乘积形式collet 合并同类项horne
30、r 把多项式转换为嵌套表示形式例如:合并同类项:collect(3*x3-0.5*x3+3*x2) 结果为: ans=5/2*x3+3*x2 进行因式分解执行:factor(3*x3-0.5*x3+3*x2) 结果为: ans=1/2*x2*(5*x+6) 展开多项式执行:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 49 页 - - - - - - - - - 28 expand(x-a)*(x-b) 结果为:ans=x2-x*b-a*x+a*b 把多项式转换成嵌套
31、表示形式执行: horner(x3-6*x2+11*x-6) 结果为: ans=-6+(11+(-6+x)*x)*x 二、绘图命令matlab 提供了两个非常简便的绘图命令,分别如下:1、格式: ezplot(f, xmin, xmax) 功能:绘出以x 为横坐标的曲线f ,x 在xmin, xmax内取值,当xmin 和 xmax 缺省时,默认xmin=-2*pi ,xmax=2*pi 。例如:描述函数 cos(2*x) 在区间 -2*pi, 2*pi 上的图形,执行命令如下:ezplot(cos(2*x), -2*pi, 2*pi) 2、格式: plot(x, y, 格式串 , , ) 功
32、能:绘出以x 为横坐标y 为纵坐标的散点图或折线名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 49 页 - - - - - - - - - 29 图。其中, x 和 y 为同维向量,“格式串”指定图形格式,包括颜色、线形等。例如:执行 x=1 2 3 5 8; y=1 14 19 22 37; plot(x, y, -*k ) 其中, -*k 表示黑色实线,点用“*”表示。初等函数的图形:x=linspace(-pi,pi,60); z=linspace(0.1,2*
33、pi,60); t=linspace(-1,1,60); u=linspace(-10,10,60); y1=x; y2=x.2; y3=x.3;y4=x.4; subplot(3,2,1); plot(x,y1,- ,x,y2,: ,x,y3,-. ,x,y4,- - ); axis(-pi pi -2 5); text(-0.5,4,幂函数 ) ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 29 页,共 49 页 - - - - - - - - - 30 三、级数1、常数项级
34、数格式: symsum(一般项,变量,起始,终止) 功能:用指定变量从 “起始” 到“终止” 求级数和。 当“终止”值取有限值时,可求出级数指定项数的部分和。例如:symsum(1/n2,n,1,10); symsum(1/n,n,1,10); symsum(1+n)/(1+n2),n,1,10); 当“终止”值为inf时,可求出级数的收敛和。例如:symsum(1/n2,n,1,inf); symsum(1/n,n,1,inf); symsum(1+n)/(1+n2),n,1,inf); 当“终止”值为变量,比如取m时,可求得级数部分和数列的一般项,该一般项以m为变量,当m时,取得极限即为收
35、敛和。例如:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 49 页 - - - - - - - - - 31 symsum(1/n,n,1,m) symsum(1/n2,n,1,m); symsum(1+n)/(1+n2),n,1,m); 2、幂级数幂级数的收敛半径:1limnnnara,求的收敛半径,用与求常数项级数收敛和相同的办法求幂级数的收敛和函数。例如:syms x n limit(n+1)/n,n,inf) symsum(-1)(n-1)*xn/n,n,1,
36、inf) limit(2(n+1)*(n+1)/(2n*n),n,inf) symsum(x-1)n/(2n*n),n,1,inf) 3、将函数展开成幂级数格式: taylor(函数,阶数n,x0点,变量 x) 功能:将给定“函数”在“x0点”处按“变量x”展开成n-1 阶的泰勒级数。说明: (1)阶数 n 省略,默认为6;(2)x0点省略,默认为0;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 31 页,共 49 页 - - - - - - - - - 32 (3) “变量 x”
37、省略, 默认用 findsym(f)查找默认变量。(4)后面的三个参数顺序还可以打乱次序,但若x0点和阶数均为整数时,必须阶数在前,x0点在后。例如: taylor(exp(-x),x,8,7) 表示将xe在 x0=7 点处展开为七阶泰勒级数。taylor(exp(x) %将xe在 x=0 点展开成 5 阶泰勒级数。taylor(exp(-x2),x,n) %将2xe在 x=n 点展开成 5 阶泰勒级数 . taylor(cos(x),8) %将 cos(x) 在 x=0 点展开成7 阶泰勒级数注:参数终止给出一个整数,认为是阶数。四、傅立叶级数三角级数:01(cossin)2nnnaanxb
38、nx其中,01( )af x dx,1( )cosnaf xnxdx(n=0,1,2,3,) ,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 32 页,共 49 页 - - - - - - - - - 33 1( )sinnbf xnxdx (n=0,1,2,3,) ,正弦级数:sinnbnx (n=0,1,2,3,) 余弦级数:02acosnanx (n=0,1,2,3,) 在 matlab 中,编写以下四个函数mfourier(f), msin(f), mcos(f) 和 ml
39、fourier(f, l) ,分别用于求函数f 的傅立叶级数、正弦级数、余弦级数,以及周期为2l 的傅立叶级数的系数。function a0, an, bn=mfourier(f) syms n x a0=int(f, -pi, pi)/pi;an=int(f*cos(n*x), -pi, pi)/pi;bn=int(f*sin(n*x), -pi, pi)/pi;end function bn=msin(f) syms n x bn=int(f*sin(n*x), -pi, pi)/pi;end functiona0, an=mcos(f) 名师资料总结 - - -精品资料欢迎下载 - -
40、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 33 页,共 49 页 - - - - - - - - - 34 syms n x a0=int(f, -l, l)/pi;an=int(f*cos(n*x), -pi, pi)/pi;end function a0, an, bn=mlfourier(f, l) syms n x a0=int(f, -pi, pi)/pi;an=int(f*cos(n*pi*x/l), -l, l)/l;bn=int(f*sin(n*pi*x/l), -l, l)/l;end 说明:以上四个函数分别
41、保存在四个M-文件中, 以函数名作为文件名。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 34 页,共 49 页 - - - - - - - - - 35 试验六方程组求解和数值微积分一、欠定方程组的求解若有方程组AX=B ,其中 X为 m个变量构成的列向量,一共有 n 个方程,则A为 n*m矩阵。若 rank(A)m ,则方程有无穷多组解,称为欠定方程组。若b 中元素全为0,称方程组为其次线形方程组。1、齐次线性方程组的求解如方程组:12342341341234234002034
42、50 xxxxxxxxxxxxxx在 MATLAB 中输入A=1 -2 3 -4;0 1 -1 1;-1 0 -1 2;1 -3 4 -5; a=null(A) %返回矩阵 A的零空间的标准正交基组成的矩阵a。a= 0.7888 -0.2110 -0.4999 -0.2889 -0.2110 -0.7888 0.2889 -0.4999 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 35 页,共 49 页 - - - - - - - - - 36 因而,原方程的通解为:121234
43、0.78880.21100.49990.28890.21100.78880.28890.4999xxkkxx %其中 k1 与 k2 为任意常数。2、欠定方程组的求解从理论上说,欠定方程组有无穷多组解。这时,我们仍然可用广义逆矩阵法和矩阵除法求解方程组。前者所求的解是所有解种范数最小的一个,而后者求的解是所有解中含零个数最多的一个。他们求出的解是所有解系中的一个特解。 要求其通解,则先解其对应的齐次方程的通解,然后再加上自身的一个特解即可。如: A=1 -2 3;0 1 -1;-1 0 -1;1 -3 4; b=4 -3 -4 1; x=pinv(A)*b x= -2.2549 1.2157
44、1.0392 y=Ab 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 36 页,共 49 页 - - - - - - - - - 37 waring: rank deficient, rank=2 tol=4.6151e-015. y= 0 3.4706 3.2941 B=null(A) B= 0.5774 -0.5774 -0.5774 故方程组的通解为1230.57742.25490.57741.21570.57741.0392xxkx或1230.577400.57743.47
45、060.57743.2941xxkx二、数值微积分 1 、数值微分多项式求导法求微分若已知函数在某些接点处的值,(1) 只要用曲线拟合法得到一个函数近似多项式(即用多项式近似代替函数) ,(2) 再对该多项式求微分,(3) 然后对微分后的多项式求名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 37 页,共 49 页 - - - - - - - - - 38 值,便可以方便的求出在拟合范围内的任一点处的任意阶微分。几个命令: polyfit(x, y, n) 利用数据点向量x 和 y
46、拟合一个 n 次多项式,返回多项式系数向量,系数由高次方朝低次方顺序排列。polyder(P) 返回多项式P求导后对系数向量。polyval(P, x0) 计算多项式P在点 x0 处的值。 P是多项式系数。根据上述几个函数, 我们编写一个利用多项式方式求任何函数在任一点处的任意阶导数的近似值。fpder(f, x0, n, m, d, k) f: 欲求导函数的符号表达式;x0: 固定点,即求函数在该点处的导数;n: 表示求导阶数,默认为一阶导数;m: 为多项式最高次数,表示用m 次多项式近似模拟给定函数,默认为6;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
47、 - - - - - - - - 名师精心整理 - - - - - - - 第 38 页,共 49 页 - - - - - - - - - 39 d: 为半区间长度,即在x0-d, x0+d区间内拟合多项式,默认值为1;k: 为区间采样点数,即在闭区间x0-d, x0+d上采k+1 个点来拟合多项式,默认值为20;函数如下:function y=fpder(f, x0, n, m, d, k) if nargin6 k=20; end if nargin5 d=1.0; end if nargin4 m=6; end if nargin= =2 n=1; end 名师资料总结 - - -精品资
48、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 39 页,共 49 页 - - - - - - - - - 40 x=x0-d:2*d/k:x0+d; y=eval(f); p=polyfit(x, y, m); pp=p; for n1=1:n pp=polyder(pp); end y=polyval(pp,x0); 例如:fpder( sin(x), pi/4, 3, 10, 0.5, 10) fpder( exp(-x) , 1) fpder( exp(-x.2), 1, 5, 10, 0.5) 2、数值
49、积分数值积分就是对那些不能求积分或不易求积分的函数提供的一种较精确的积分方法。在MATLAB 中,有两个函数是专门求数值积分的函数,分别是: quad( 函 数 名 串 , a, b, tol, trace) 和名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 40 页,共 49 页 - - - - - - - - - 41 quad8( 函数名串 , a, b, tol, trace) 说明:函数名串是matlab内建函数的函数名或用户自定义函数的函数名; a为积分下限; b 为积分
50、上限; tol 为数值方法允许误差;默认为10-3; trace一般为零。 quad8()和 quad()的用法完全相同。但在功能上有所区别:前者用newton-cotes法求数值积分,后者用 simpson 法求数值积分。例如: quad(sin ,0,pi) quad( sin ,0,pi,1e-6) quad( log ,0.1,1) 再定义两个函数f1(x) 和 f2(x) 如下:function y=f1(x) y=1./(1+x.4); function y=f2(x) y=log(1+tan(x); 则有 quad( f1 ,0,1) 名师资料总结 - - -精品资料欢迎下载 -