matlab2(MATLAB的数值计算)

合集下载

matlab2_matlab教程

matlab2_matlab教程

x1+2x2+3x3=1 2x1+3x2+4x3=2 a=[1 2 3;2 3 4];b=[1;2]; x=a\b x= 1.00 0 x=
x1 1 2 3 1 x2 = 2 3 4 2 x3
a
x = b
x=pinv(a)b
0.83 0.33
0
-0.17
六、微分方程求解
微分方程求解的仿真算法有多种,常用 的有Euler(欧拉法)、Runge Kutta(龙 格-库塔法。 Euler法称一步法,用于一阶微分方程
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10]; a.*b ans = 2 8 18 4 15 30 49 72 90
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10];
a*b ans = 25 55 85
37 85 133
二、数据的保存与获取
把matlab工作空间中一些有用的数 据长久保存下来的方法是生成mat数 据文件。 save —— 将工作空间中所有的变 量存到matlab.mat文件中。 默认文件名
save data——将工作空间中所
有的变量存到data.mat文件中。
save data a b ——将工作空间 中a和b变量存到data.mat文件中。
rand —— 随机矩阵
eye —— 单位矩阵
zeros ——全部元素都为0的矩阵
ones ——全部元素都为1的矩阵
还有伴随矩阵、稀疏矩阵、魔方 矩阵、对角矩阵、范德蒙等矩阵的创 建,就不一一介绍了。
注意:matlab严格区分大小写字母,因
此a与A是两个不同的变量。 matlab函数名必须小写。

Matlab中常用的数值计算方法

Matlab中常用的数值计算方法

Matlab中常用的数值计算方法数值计算是现代科学和工程领域中的一个重要问题。

Matlab是一种用于数值计算和科学计算的高级编程语言和环境,具有强大的数值计算功能。

本文将介绍Matlab中常用的数值计算方法,包括数值积分、数值解微分方程、非线性方程求解和线性方程组求解等。

一、数值积分数值积分是通过数值方法来近似计算函数的定积分。

在Matlab中,常用的数值积分函数是'quad'和'quadl'。

'quad'函数可以用于计算定积分,而'quadl'函数可以用于计算无穷积分。

下面是一个使用'quad'函数计算定积分的例子。

假设我们想计算函数f(x) = x^2在区间[0, 1]上的定积分。

我们可以使用如下的Matlab代码:```f = @(x) x^2;integral = quad(f, 0, 1);disp(integral);```运行这段代码后,我们可以得到定积分的近似值,即1/3。

二、数值解微分方程微分方程是描述自然界各种变化规律的数学方程。

在科学研究和工程应用中,常常需要求解微分方程的数值解。

在Matlab中,可以使用'ode45'函数来求解常微分方程的数值解。

'ode45'函数是采用基于Runge-Kutta方法的一种数值解法。

下面是一个使用'ode45'函数求解常微分方程的例子。

假设我们想求解一阶常微分方程dy/dx = 2*x,初始条件为y(0) = 1。

我们可以使用如下的Matlab代码:```fun = @(x, y) 2*x;[x, y] = ode45(fun, [0, 1], 1);plot(x, y);```运行这段代码后,我们可以得到微分方程的数值解,并绘制其图像。

三、非线性方程求解非线性方程是指方程中包含非线性项的方程。

在很多实际问题中,我们需要求解非线性方程的根。

MATLAB_数值计算

MATLAB_数值计算

b31 b32 b33

对于编程语言,矩阵就是二维的数组
2.1 MATLAB的基本计算
数学计算分为数值计算与符号计算,前者 不允许出现未定义变量,后者允许。(Eg 2-1) 常用的基本数学函数表。 (Eg 2-2)
Eg 2-1
三角函数
函数
sin sinh asin cos acos
说明
正弦函数 双曲正弦函数 反正弦函数 余弦函数 反余弦函数
MATLAB数值计算
2.1 MATLAB的基本计算 2.2 MATLAB矩阵和数组 2.3 关系和逻辑运算 2.4 多项式 2.5 稀疏矩阵 2.6 数据分析函数 2.7 数值分析
概述
在M语言中最常用的数据类型表现手段和形
式就是变量和常量
M语言的基本处理单位是数值矩阵或者数值
Eg 2-14 低维数组合成高维数组
建立3阶魔方及帕斯卡数组
将A、B串联成三维数组
cat(1,A,B)=[A;B]
cat(2,A,B)=[A,B]
>> A=eye(4) A= 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 >> A(:,:,2)=eye(4)*10; >> A(:,:,3)=eye(4)*100 A(:,:,1) = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A(:,:,2) = 10 0 0 0 0 10 0 0 0 0 10 0 0 0 0 10 A(:,:,3) = 100 0 0 0 0 100 0 0 0 0 100 0 0 0 0 100
复数运算函数
函数
abs
பைடு நூலகம்
说明
求复数的模,若参数为实数则求绝对值

基于MATLAB的数值分析(2)

基于MATLAB的数值分析(2)
axis([0,pi,-1,1]),title('子图 (4)')
若干有用旳指令
clf:将图形窗口旳全部内容清除。 shg:显示图形窗口。 figure: 打开一种新旳图形窗口。 figure(n): 打开第n个图形窗口 cla: 将所绘曲线清除并重画坐标轴。 close(n):将关闭编号为n旳图形窗口, close all: 将关闭全部图形窗口.
pos取值0,1(缺省值),2,3,4,-1 Legend off:擦出目前图上旳图例。
2.3 三维绘图旳基本操作
绘制二元函数基本环节: 1.生成二维网格点 2. 计算函数在网格点上旳值 3. 绘制函数图形
meshgrid指令:生成网格点
a=-0.98;b=0.98;c=-1;d=1;n=10; x=linspace(a,b,n); y=linspace(c,d,n); [X,Y]=meshgrid(x,y); plot(X,Y,'+')
分格线和坐标框
grid: grid on(画出分格线), grid off (不画出分格线)
box : box on (坐标呈封闭形式), box off (坐标呈开启形式)
【例】 n=(0:12)'; y=1./abs(n-6); Subplot(1,2,1),plot(n,y,'r*','MarkerSize',20),box on Subplot(1,2,2), plot(n,y,'r*','MarkerSize',20),box off
ylabel('\it{magnitude}');
title(' \it{sine wave and {\it{Ae}}^{-\alpha{\itt}}wave}');

MATLAB2符号说明

MATLAB2符号说明
MATLAB程序设计基础
MATLAB的数值计算
Matlab的数据类型
变量
变量不需要事先声明,也不需要指定变量类型,它会自动根据 所赋予变量的值或对变量的操作来确定变量的类型;赋值过程中, 如果变量已存在,则用新值代替旧值,以新的类型代替旧的类型。 变量的命名规则: 变量名区分大小写; 变量名长度不超过31位,第31位之后的字符被忽略; 变量名以字母开头,变量名中可以包含字母、数字、下划线, 但不能使用标点。 变量一般为局部变量,即仅在其调用的M文件内部有效;若要 定义全局变量,须在变量前加关键字global。
A=
1 4 7 2 5 8 3 6 9
1 4 7
2 5 8
3 6 9
大型矩阵通借助M文件来输入。
x=rand(1,5) %产生的均布随机数组 x= 0.9501 0.2311 0.6068 0.4860 0.8913 x(3) %寻访数组x的第三个元素。 ans = 0.6068 x([1 2 5]) %寻访数组x的第一、二、五个元素组成的子数组。 ans = 0.9501 0.2311 0.8913 x(1:3) %寻访前三个元素组成的子数组 ans = 0.9501 0.2311 0.6068 x(3:end) %寻访除前2个元素外的全部其他元素。end是最后一 %个元素的下标。 ans = 0.6068 0.4860 0.8913
?format long;pi
ans =
3.14159265358979 ?format long e;pi ans = 3.141592653589793e+000 ?format long g;pi ans = 3.14159265358979
字符串 1、字符串的约定

第二章 Matlab软件的数值计算方法2

第二章 Matlab软件的数值计算方法2

3)三角函数、双曲函数及它们的反函数 )三角函数、 只用于数值计算外, 除atan2只用于数值计算外,其余的三角函数(如sin)、 只用于数值计算外 其余的三角函数( )、 双曲函数( 双曲函数(如cosh)以及它们的反函数(如asin, acosh) )以及它们的反函数( ) 在数值计算和符号计算中使用方法都相同。 在数值计算和符号计算中使用方法都相同。 4)指数、对数函数 )指数、 数值、符号计算中,函数sqrt, exp, expm的使用方法 数值、符号计算中,函数 的使用方法 完全相同,至于对数函数,符号计算中只有自然对数log, 完全相同,至于对数函数,符号计算中只有自然对数log, 而没有数值计算中的log2, log10。 而没有数值计算中的 。 5) 复数函数 ) conj, real, imag, abs相同,但无求相角的指令。 相同, 相同 但无求相角的指令。 6) 矩阵代数指令 ) diag, triu, tril, inv, det, rank, rref, null, colspace, poly, expm, eig基本与数值计算相同,只有 基本与数值计算相同, 稍微不同。 基本与数值计算相同 只有svd稍微不同。 稍微不同
1.3 符号表达式中自由变量的确定 findsym可实现对表达式中所有自由符号变量或指定数 可实现对表达式中所有自由符号变量或指定数 目的独立自变量的自动认定。 目的独立自变量的自动认定。 findsym(expr) findsym(expr,n) 【例7】对独立自由符号变量的自动辨认。 】对独立自由符号变量的自动辨认。 syms a b x X Y; k=sym('3'); z=sym('c*sqrt(delta)+y*sin(theta)'); EXPR=a*z*X+(b*x^2+k)*Y; findsym(EXPR)

实验3 MATLAB 数值计算(2)

实验3 MATLAB 数值计算(2)

实验3 MATLAB 数值计算(2)
目的和要求:
(1)了解多项式的运算。

(2)熟练掌握MATLAB二维曲线的绘制。

内容和步骤:
1.多项式的运算式的运算
(1)多项式的运算。

已知表达式G(x)=(x-4)(x+5)(x2-6x+9), 展开多项式形式;求导;并计算当x在[0,20]范围变化时G(x)的值;计算出G(x)=0的根。

多项式相乘conv;
求导polyder;
计算零点,即求根roots
解:
展开为多项式
求导:
求零点:
(2)多项式的拟合和插值。

x在[0,20]范围内,计算多项式y=x4-5x3-17x2+129x-180 的值y;并根据x和y进行二阶、三阶和四阶拟合。

并绘出拟合曲线。

对多项式y进行插值,计算在5.5处的值。

多项式拟合p=ployfit(x,y,n)
插值yi=interp1(x,y,xi,’method’)
2.绘制二维曲线
绘制的图形窗口分割为一行两列,窗口左上角画一正弦曲线,y=sin(2t),t:[0.2π];窗口右上角画3条衰减的单边指数曲线y=e-t, y=e-2t,和y=e-3t, t:[0,2]。

在图上添加标题,将3条曲线用不同的线型,并添加图例。

第二章matlab02数值运算功能2

第二章matlab02数值运算功能2
a*b ans = 25 55 85 a.*b 37 85 133 46 109 172 ans = 2 4 49 8 15 72 18 3应元素间的商 给出a,b对应元素间的商 对应元素间的商. a.\b=b./a a./b=b.\a — 都是 的元素除以 的对应元素 都是a的元素除以 的元素除以b的对应元素 a.\b=b./a — 都是 的元素除以 的对应元素 都是b的元素除以 的元素除以a的对应元素
2.4.3矩阵的关系和逻辑运算 矩阵的关系和逻辑运算
1.矩阵的关系运算符:<, >, <=, >=, = =, ~= 矩阵的关系运算符: 矩阵的关系运算符 • 矩阵之间的每个元素进行比较,运算结果 矩阵之间的每个元素进行比较, 为与原矩阵大小一样的由0 为与原矩阵大小一样的由0和1组成的矩阵 注意:1=<a<=2错误 注意: 错误 例: 1<=a<=2正确 = 正确
• •
§2.4 矩阵的运算
矩阵的数学运算 矩阵的点(数组 运算 矩阵的点 数组)运算 数组 矩阵的关系和逻辑运算
2.4.1矩阵的数学运算 矩阵的数学运算
矩阵运算符 含义 A’ 矩阵转置 A+B 矩阵相加 A-B 矩阵相减 A*B 矩阵相乘 A/B 矩阵相除(右除) 矩阵相除(右除) B\A 矩阵相除(左除) 矩阵相除(左除) A^n A阵的 n次幂 阵的 次幂
x X = y z
10 B = 5 −1
要解上述的联立方程式, 要解上述的联立方程式,可利用矩阵左除 \ 做运 时要求A、 的行数相等 相等。 算,即:X=A\B, 左除时要求 、B的行数相等。 , 左除时要求
如果将原方程式改写成 X*A=B,且令 X, A 和 B , 分别为
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

矩阵元素
矩阵元素可以是任何matlab表达 式 ,可以是实数 ,也可以是复 数,复数可用特殊函数i,j 输入 a=[1 2 3;4 5 6] x=[2 pi/2;sqrt(3) 3+5i]
符号的作用
• 逗号和分号的作用 ♣逗号和分号可作为指令间的 分隔符,matlab允许多条语句在同 一行出现。 ♣分号如果出现在指令后,屏 幕上将不显示结果。
例:
x1+2x2=1 2x1+3x2=2 3x1+4x2=3
1 2 x1 2 3 x2 3 4
=
1 2 3
a
x = b
a=[1 2;2 3;3 4];b=[1;2;3]; 解1 x=a\b 解2 x=inv(a'∗a) ∗ a' ∗ b x= x= 1.00 1.00 0 0.00
3.欠定方程组的解
3. 数组乘方(.^) — 元素对元素的幂
例: a=[1 2 3];b=[4 5 6]; z=a.^2 z= 1.00 4.00 z=a.^b z= 1.00 32.00
9.00
729.00
四、 多项式运算
matlab语言把多项式表达成一个行向量, 该向量中的元素是按多项式降幂排列的。 f(x)=anxn+an-1xn-1+……+loa0 可用行向量 p=[an an-1 …… a1 +a0]表示 1. poly —— 产生特征多项式系数向量 • • 特征多项式一定是n+1维的 特征多项式第一个元素一定是1
例:
x1+2x2=8 2x1+3x2=13
1 2 x1 8 = 2 3 x2 13
方程ax=b a=[1 2;2 3];b=[8;13]; x=inv(a)*b x= 2.00 3.00
ax = b
x=a\b x= 2.00 3.00
2.超定方程组的解
方程 ax=b ,m<n时此时不存在唯一解。 方程解 (a ' a)x=a ' b x=(a' a)-1 a ' b —— 求逆法 x=a\b —— matlab用最小二乘法找一 个准确地基本解。
3. 矩阵乘方—— a^n,a^p,p^a
a ^ p —— a 自乘p次幂
方阵 >1的整数 的整数
对于p的其它值,计算将涉及特征值 和特征向量,如果p是矩阵,a是标量 a^p使用特征值和特征向量自乘到p次 幂;如a,p都是矩阵,a^p则无意义。
a=[1,2,3;4,5,6;7,8,9];a^2 ans =30 66 36 81 42 96
4. 矩阵的其它运算
• inv —— 矩阵求逆 • det —— 行列式的值 • eig —— 矩阵的特征值 • diag —— 对角矩阵
• ’ —— 矩阵转置 • sqrt —— 矩阵开方
5.矩阵的一些特殊操作
• 矩阵的变维 a=[1:12];b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:) • 矩阵的变向 rot90:旋转; fliplr:上翻; flipud:下翻 • 矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角; triu:抽取主上三角 • 矩阵的扩展
例:a=[1 2 3;4 5 6;7 8 0]; p=poly(a) p =1.00 -6.00 -72.00 -27.00 p是多项式p(x)=x3-6x2-72x-27的 matlab描述方法,我们可用: p1=poly2str(p,‘x’) — 函数文件,显示 数学多项式的形式 p1 =x^3 - 6 x^2 - 72 x - 27
• 空阵 [ ] — matlab允许输入空阵,当一项 操作无结果时,返回空阵。 • rand —— 随机矩阵 • eye —— 单位矩阵 • zeros ——全部元素都为0的矩阵 • ones ——全部元素都为1的矩阵
还有伴随矩阵、稀疏矩阵、魔方 矩阵、对角矩阵、范德蒙等矩阵的创 建,就不一一介绍了。 注意:matlab严格区分大小写字母,因 此a与A是两个不同的变量。 matlab函数名必须小写。
4.deconv多项式除运算
a=[1 2 3]; c = [4.00 13.00 28.00 27.00 18.00] d=deconv(c,a)
d =4.00 5.00 6.00
[d,r]=deconv(c,a) 余数 c除a后的整数 除 后的整数
5.多项式微分
matlab提供了polyder函数多项式的微分。 命令格式: polyder(p): 求p的微分 polyder(a,b): 求多项式a,b乘积的微分 [p,q]=polyder(a,b): 求多项式a,b商的微分 a,b 例:a=[1 2 3 4 5]; poly2str(a,'x') ans = x^4 + 2 x^3 + 3 x^2 + 4 x + 5 b=polyder(a) b=4 6 6 4 poly2str(b,'x') ans =4 x^3 + 6 x^2 + 6 x + 4
x1
1 2 3 1 x2 = 2 3 4 2
ห้องสมุดไป่ตู้
x3
a
x = b
x=pinv(a)∗b
0.83 0.33 -0.17
六.Dsolve求解微分方程
例1:求解微分方程y’=1/(x+y)和yy”-y’^2=0 Clear; Syms x y Y1=dsolve(‘Dy=1/(x+y)’,’x’) Y2=dsolve(‘y*D2y-Dy^2=0’,’x’) • Y1 = • -lambertw(-C1*exp(-x-1))-x-1 • Y2 = • [ exp((x+C2)/C1)] • [ C2]
五、代数方程组求解
matlab中有两种除运算左除和右除。 对于方程ax=b,a 为an×m矩阵,有三种情 况: 当n=m时,此方程成为“恰定”方程 当n>m时,此方程成为“超定”方程 当n<m时,此方程成为“欠定”方程 matlab定义的除运算可以很方便地解上 述三种方程
1.恰定方程组的解
方程ax=b(a为非奇异) x=a-1 b 矩阵逆 两种解: • x=inv(a)∗b — 采用求逆运算解方程 • x=a\b — 采用左除运算解方程
注:Y=lambertw(x)表示函数关系:Y*exp(Y)=x
102 126 150
※当一个方阵有复数特征值或负实 特征值时,非整数幂是复数阵。
a^0.5 ans =
0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -0.3487i 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717i
当方程数少于未知量个数时,即不定 情况,有无穷多个解存在。 matlab可求出两个解: • 用除法求的解x是具有最多零元素的解 • 是具有最小长度或范数的解,这个解 是基于伪逆pinv求得的。
x1+2x2+3x3=1 2x1+3x2+4x3=2 a=[1 2 3;2 3 4];b=[1;2]; x=a\b x= 1.00 0 0 x=
a*b ans = 25 55 85
37 85 133
46 109 172
a./b=b.\a —— 给出a,b对应元素间的商. a.\b=b./a a./b=b.\a — 都是a的元素被b的对应元 素除 a.\b=b./a — 都是a的元素被b的对应元 素除
例: a=[1 2 3];b=[4 5 6]; c1=a.\b; c2=b./a c1 = 4.0000 2.5000 2.0000 c2 = 4.0000 2.5000 2.0000
第二讲 MATLAB的数值计算
—— matlab 具有出色的数值计 算能力,占据世界上数值计算软 件的主导地位
数值运算的功能
• • • • • • • • 创建矩阵 矩阵运算 多项式运算 线性方程组 数值统计 线性插值 函数优化 微分方程的数值解
一、命令行的基本操作
1. 创建矩阵的方法
• 直接输入法 规则: 1 矩阵元素必须用[ ]括住 2 矩阵元素必须用逗号或空格分隔 3 在[ ]内矩阵的行与行之间必须 用分号分隔
2. 矩阵乘(∗)运算
规则: • A矩阵的列数必须等于B矩阵的行数 • 标量可与任何矩阵相乘。 a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b c =14 32 23
d=[-1;0;2];f=pi*d f = -3.1416 0 6.2832 矩阵除的运算在线性代数中没有, 有矩阵逆的运算,在matlab中有两 种矩阵除运算
load —— load data —— load data a b ——
即可恢复保 存过的所有 变量
mat文件是标准的二进制文件, 还可以ASCII码形式保存。
三、矩阵运算
1. 矩阵加、减(+,-)运算
规则: 相加、减的两矩阵必须有相同的行和 列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。 标量与矩阵的所有元素分别进行加 减操作。
3.conv,convs多项式乘运算
例:a(x)=x2+2x+3; b(x)=4x2+5x+6; c = (x2+2x+3)(4x2+5x+6) a=[1 2 3];b=[4 5 6]; c=conv(a,b)=conv([1 2 3],[4 5 6]) c = 4.00 13.00 28.00 27.00 18.00 p=poly2str(c,'x') p = 4 x^4 + 13 x^3 + 28 x^2 + 27 x + 18
相关文档
最新文档