第7章MATLAB工程计算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 MATLAB工程计算
本章内容
第四节 M文件及其语言基础 第五节 MATLAB线性方程组求解 第六节 数值分析
第一节 MATLAB概述
MATLAB是“矩阵实验室”(MATrix LABoratory)的缩写。
最初是Cleve More博士用FORTRAN语言开发 的矩阵分析软件, 80年代初, Moler和John Little用C改写,不久他们成立MathWorks公司, 84年推向市场,2000年推出了MATLAB 6.0版 本。
一 、恰定方程组
恰定方程组由n个未知数的n个方程构成,方程有唯一 的一组解。其形式:
Ax=b 其中,A是方阵,b是一个列向量。 在线性代数中,最常用的方程解法有: 利用crammer公式求解 利用矩阵求逆法求解 利用gaussian消去法 利用lu法求解 在MATLAB中,直接采用表达式:x=A\b’
对方程X=A\B,要求矩阵A和B有相同的行数, X和B有相同的列数,它的行数等于矩阵A的 列数。
方程X=B/A同理
如果矩阵A不是方阵,其维数是m×n,则有: m=n 恰定方程,寻求精确解 m>n 超定方程,寻求最小二乘解 m<n 不定方程,寻求基本解,其中至多有m
个非零元素。
针对不同的情况,matlab采用不同的算法。
a12 x12 a22 x22
... am2 xm2
... a1n x1n ... a2n xn ... ... ... amnxmn
b1 b2 ... ... bm
第5节 线性方程式的求解
MATLAB采用除法运算符“/”和“\”求解 X=A\b’ 表示求矩阵方程AX=B的解 X=A/b’ 表示求矩阵方程XA=B的解
四、关系与逻辑运算
<
小于
<=
小于等于
>
大于
>=
大于等于
==
等于
~=
不等于
&
与
|
或
~
非
五、矩阵运算符
转置 加与减 数乘矩阵 矩阵乘方 数与矩阵加减 矩阵除法
A’ A+B 与 A-B k*A 或 A*k A^k k+A 与 k-A 左除 A\B, 右除 B/A
六、数学函数
sin cos tan cot asin exp sqrt
符号变量
在使用符号运算工具箱之前,需要把一 些变量声明为“符号变量”,以区别于 常规的数值变量。
例如声明a,b,c,d 为符号变量:
syms a b c d
一、因式分解
Factor函数 Syms x s=x^9-1 Factor(s)
二、求极限值
极限可以用limit函数求得 Limit(f,x,a) 求符号表达式f当x->a时的极限 Limit(f,a) 对系统默认变量且该变量x->a时的
极限
例如
求下式中默认变量->2时的极限
lim
x 2
x2 x4 4
Syms x Limit((x-2)/(x^2-4),2)
三、计算数值向量的数值差分
差分可以用diff()函数求出 语法:Y=diff(F,n,dim) F是向量;n是差分阶数;dim是指沿着
数组的哪一维进行差分
求数值积分
function y=funq(x) y=x^3+x^2+2 q=quad(‘funq’,-1,1,1e-4,1)
一、建立主程序文件
选择File—>New->M-file,即进入M文 件编辑器。
输入程序,完成后,在当前目录下保存 文件名。
在命令窗口,输入文件名,即执行程序。
主程序格式特征
以%开始为注释 全局变量定义:
Global 变量名1 变量名2 人机交互语句:
x= input(‘n=’) % 将值付给x,屏幕显 示’n=‘
x1 3x2 13x3 6
A*x1-b %验证最小二乘解
显示:
1.0e-014 *
-0.0888
-0.0888
-0.1332
0
说明x1不是方程Ax=b的精确解。
第六节 数值分析
Matlab提供符号运算,可进行多种数值 分析,包括因式分解、求极限值、求微 分、求导数等
不定值
三、变量
变量命名规则 必须以字母为开头 可以由字母、数字和下划线混合组成,
区分大小写 字符长度不大于31个
变量数据类型
MatLab有五种基本数据类型, 数值数组(double array) 字符串(char array) 符号对象(Symbolic object) 单元数组(Cell array) 结构(Structure)
求超定方程组
A=[2 -1 3;3 1 -5;4 -1 1;1 3 -13]
b=[3 0 3 -6]’
x1=A\b
x1 = 1.0000 2.0000 1.0000
ຫໍສະໝຸດ Baidu
%左除解方程
X2=pinv(A)*b %广义逆求解
2x1 x2 3x3 3
3x1 x2 5x3
0
4x1 x2 x3 3
例如
F=[(1:6).^3] diff(F)
二、一维数值积分
Quad: 采用simpson法计算积分。 调用格式:
q=quad(‘fun’,a,b,tol,trace,p1,p2,…) fun:被积函数, a,b:上限 下限 tol: 误差,缺省 0.0001 Trace:画图 p1,p2:传递参数
条件转移语句
if 逻辑表达式 执行语句1 else 执行语句2 end
多重条件分支
Switch 语句 switch Case 值1 语句1 Case 值2 语句2 Otherwise 语句3 end
例题
编写一个M文件,画出分段函数所表示的曲 面
2 x2 x3 2 x4 5
x1 4 x2 7 x3 6 x4 0
二、超定方程组
对于方程组Ax=b,A为n×m矩阵,如果A列满 秩,且n>m,则方程没有精确解,此时方程组 称为超定方程组。
线性超定方程经常遇到的问题是数据的曲线拟 合。对于超定方程组,在MatLab中,利用左除 命令x=A\b,来寻求它的最小二乘解,还可以用 广义逆来求,即x=pinv(A),所得到的解不一定 满足Ax=b,x只是最小二乘意义上的解。
求解方程组
2x1-x2+3x3=3 4x1+2x2+5x3=4 2x1 +2x3=6
A=[2 -1 3;4 2 5; 2 0 2]; b=[3 4 6]’; X=A\b 结果: 7.6667 -1.6667 -4.6667
例
2 x1 x2 5x3 x4 8
x1 3x2 6 x4 9
二、常量
I或j pi eps
realmin
realmax Inf NaN
虚数单位
圆周率 = 3.1415…
计算机浮点数识别精度 eps/2=1.11*10^(-16) 最 小 正 实 数 realmin^1.051= 4.9407*10^(-324) 最大正实数 1.7977*10^308
无穷大
MATLAB是应用最广泛的工程计算软件,发 达国家理工类学生必须掌握的数学分析工具。
第四节 M文件及其语言基础
在命令窗口下,键入一行命令后,系统 立即执行。这种方法程序可读性差且难 以存储。对于复杂的问题,应编成程序 文件。
由MatLab语句构成的文件称作M文件, 它将m作为文件的扩展名,可以用任何 文件编辑器进行调试。
log10 log2 log round fix gcd lcm
七、程序控制语句
For 循环 基本格式为:
for 循环变量=起始值:步长:终止值 循环体
end
While 循环 While 逻辑表达式 循环体
end
求从1+2+3+…+100之和 sum=0; i=1; while i<=100 sum=sum+I; i=i+1; End sum
0.54e0.75x2 3,75 y2 1.5 y
x y 1
p(x, y)
0.7575ex26 y2
1 x y 1
0.5457e0.75x2 3.75 y2 1.5 y
x y 1
第5节 线性方程式的求解
a11x11 a21x1
... am1xm1
本章内容
第四节 M文件及其语言基础 第五节 MATLAB线性方程组求解 第六节 数值分析
第一节 MATLAB概述
MATLAB是“矩阵实验室”(MATrix LABoratory)的缩写。
最初是Cleve More博士用FORTRAN语言开发 的矩阵分析软件, 80年代初, Moler和John Little用C改写,不久他们成立MathWorks公司, 84年推向市场,2000年推出了MATLAB 6.0版 本。
一 、恰定方程组
恰定方程组由n个未知数的n个方程构成,方程有唯一 的一组解。其形式:
Ax=b 其中,A是方阵,b是一个列向量。 在线性代数中,最常用的方程解法有: 利用crammer公式求解 利用矩阵求逆法求解 利用gaussian消去法 利用lu法求解 在MATLAB中,直接采用表达式:x=A\b’
对方程X=A\B,要求矩阵A和B有相同的行数, X和B有相同的列数,它的行数等于矩阵A的 列数。
方程X=B/A同理
如果矩阵A不是方阵,其维数是m×n,则有: m=n 恰定方程,寻求精确解 m>n 超定方程,寻求最小二乘解 m<n 不定方程,寻求基本解,其中至多有m
个非零元素。
针对不同的情况,matlab采用不同的算法。
a12 x12 a22 x22
... am2 xm2
... a1n x1n ... a2n xn ... ... ... amnxmn
b1 b2 ... ... bm
第5节 线性方程式的求解
MATLAB采用除法运算符“/”和“\”求解 X=A\b’ 表示求矩阵方程AX=B的解 X=A/b’ 表示求矩阵方程XA=B的解
四、关系与逻辑运算
<
小于
<=
小于等于
>
大于
>=
大于等于
==
等于
~=
不等于
&
与
|
或
~
非
五、矩阵运算符
转置 加与减 数乘矩阵 矩阵乘方 数与矩阵加减 矩阵除法
A’ A+B 与 A-B k*A 或 A*k A^k k+A 与 k-A 左除 A\B, 右除 B/A
六、数学函数
sin cos tan cot asin exp sqrt
符号变量
在使用符号运算工具箱之前,需要把一 些变量声明为“符号变量”,以区别于 常规的数值变量。
例如声明a,b,c,d 为符号变量:
syms a b c d
一、因式分解
Factor函数 Syms x s=x^9-1 Factor(s)
二、求极限值
极限可以用limit函数求得 Limit(f,x,a) 求符号表达式f当x->a时的极限 Limit(f,a) 对系统默认变量且该变量x->a时的
极限
例如
求下式中默认变量->2时的极限
lim
x 2
x2 x4 4
Syms x Limit((x-2)/(x^2-4),2)
三、计算数值向量的数值差分
差分可以用diff()函数求出 语法:Y=diff(F,n,dim) F是向量;n是差分阶数;dim是指沿着
数组的哪一维进行差分
求数值积分
function y=funq(x) y=x^3+x^2+2 q=quad(‘funq’,-1,1,1e-4,1)
一、建立主程序文件
选择File—>New->M-file,即进入M文 件编辑器。
输入程序,完成后,在当前目录下保存 文件名。
在命令窗口,输入文件名,即执行程序。
主程序格式特征
以%开始为注释 全局变量定义:
Global 变量名1 变量名2 人机交互语句:
x= input(‘n=’) % 将值付给x,屏幕显 示’n=‘
x1 3x2 13x3 6
A*x1-b %验证最小二乘解
显示:
1.0e-014 *
-0.0888
-0.0888
-0.1332
0
说明x1不是方程Ax=b的精确解。
第六节 数值分析
Matlab提供符号运算,可进行多种数值 分析,包括因式分解、求极限值、求微 分、求导数等
不定值
三、变量
变量命名规则 必须以字母为开头 可以由字母、数字和下划线混合组成,
区分大小写 字符长度不大于31个
变量数据类型
MatLab有五种基本数据类型, 数值数组(double array) 字符串(char array) 符号对象(Symbolic object) 单元数组(Cell array) 结构(Structure)
求超定方程组
A=[2 -1 3;3 1 -5;4 -1 1;1 3 -13]
b=[3 0 3 -6]’
x1=A\b
x1 = 1.0000 2.0000 1.0000
ຫໍສະໝຸດ Baidu
%左除解方程
X2=pinv(A)*b %广义逆求解
2x1 x2 3x3 3
3x1 x2 5x3
0
4x1 x2 x3 3
例如
F=[(1:6).^3] diff(F)
二、一维数值积分
Quad: 采用simpson法计算积分。 调用格式:
q=quad(‘fun’,a,b,tol,trace,p1,p2,…) fun:被积函数, a,b:上限 下限 tol: 误差,缺省 0.0001 Trace:画图 p1,p2:传递参数
条件转移语句
if 逻辑表达式 执行语句1 else 执行语句2 end
多重条件分支
Switch 语句 switch Case 值1 语句1 Case 值2 语句2 Otherwise 语句3 end
例题
编写一个M文件,画出分段函数所表示的曲 面
2 x2 x3 2 x4 5
x1 4 x2 7 x3 6 x4 0
二、超定方程组
对于方程组Ax=b,A为n×m矩阵,如果A列满 秩,且n>m,则方程没有精确解,此时方程组 称为超定方程组。
线性超定方程经常遇到的问题是数据的曲线拟 合。对于超定方程组,在MatLab中,利用左除 命令x=A\b,来寻求它的最小二乘解,还可以用 广义逆来求,即x=pinv(A),所得到的解不一定 满足Ax=b,x只是最小二乘意义上的解。
求解方程组
2x1-x2+3x3=3 4x1+2x2+5x3=4 2x1 +2x3=6
A=[2 -1 3;4 2 5; 2 0 2]; b=[3 4 6]’; X=A\b 结果: 7.6667 -1.6667 -4.6667
例
2 x1 x2 5x3 x4 8
x1 3x2 6 x4 9
二、常量
I或j pi eps
realmin
realmax Inf NaN
虚数单位
圆周率 = 3.1415…
计算机浮点数识别精度 eps/2=1.11*10^(-16) 最 小 正 实 数 realmin^1.051= 4.9407*10^(-324) 最大正实数 1.7977*10^308
无穷大
MATLAB是应用最广泛的工程计算软件,发 达国家理工类学生必须掌握的数学分析工具。
第四节 M文件及其语言基础
在命令窗口下,键入一行命令后,系统 立即执行。这种方法程序可读性差且难 以存储。对于复杂的问题,应编成程序 文件。
由MatLab语句构成的文件称作M文件, 它将m作为文件的扩展名,可以用任何 文件编辑器进行调试。
log10 log2 log round fix gcd lcm
七、程序控制语句
For 循环 基本格式为:
for 循环变量=起始值:步长:终止值 循环体
end
While 循环 While 逻辑表达式 循环体
end
求从1+2+3+…+100之和 sum=0; i=1; while i<=100 sum=sum+I; i=i+1; End sum
0.54e0.75x2 3,75 y2 1.5 y
x y 1
p(x, y)
0.7575ex26 y2
1 x y 1
0.5457e0.75x2 3.75 y2 1.5 y
x y 1
第5节 线性方程式的求解
a11x11 a21x1
... am1xm1