Matlab工程应用基础 3 3

合集下载

实验3 MATLAB程序设计

实验3 MATLAB程序设计

实验3 MATLAB程序设计实验3 MATLAB程序设计一、实验目的本实验的主要目的是通过实际的编程练习,掌握和熟悉MATLAB 程序设计的基本知识和技巧。

通过本实验的学习,能够灵活使用MATLAB进行程序设计,解决实际问题。

二、实验内容1. MATLAB语言基础在本部分,我们将介绍MATLAB语言的基本语法和常用函数的使用方法。

1.1. 变量定义和赋值在MATLAB中,可以通过简单的语法来定义和赋值变量。

例如,`a = 10;`表示将值10赋给变量a。

,MATLAB也支持定义矩阵和向量。

1.2. 数学运算MATLAB提供了丰富的数学运算函数,如加法、减法、乘法、除法等等。

通过这些函数,我们能够进行各种数学运算。

1.3. 条件语句和循环语句条件语句和循环语句在程序设计中非常重要。

在MATLAB中,我们可以使用if-else语句来进行条件判断,使用for循环和while 循环来实现循环操作。

2. MATLAB绘图功能MATLAB的绘图功能非常强大,可以用于绘制各种图形,如曲线图、散点图、柱状图等等。

2.1. 绘制曲线图在MATLAB中,通过`plot`函数可以绘制曲线图。

我们可以指定要绘制的曲线的x和y坐标,并可以设置其他参数,如线型、颜色等。

2.2. 绘制散点图通过`scatter`函数可以绘制散点图。

散点图用于展示数据的分布情况,非常直观。

2.3. 绘制柱状图通过`bar`函数可以绘制柱状图。

柱状图用于比较不同类别或不间点的数据。

3. MATLAB文件操作在实际的程序设计过程中,常常需要读取和写入文件。

MATLAB 提供了相关的文件操作函数,方便我们进行文件的读写操作。

3.1. 文件的读取通过`fopen`函数可以打开一个文件,通过`fread`函数可以读取文件的内容。

3.2. 文件的写入通过`fopen`函数可以创建一个文件,并通过`fwrite`函数将数据写入文件中。

三、实验步骤1. 编写MATLAB程序根据实验内容,编写MATLAB程序实现相应功能。

3-第1章-MATLAB基础-M文件(3)

3-第1章-MATLAB基础-M文件(3)

有调用关系的函数在同一文件

调用函数应放在被调用函数上方。 被调用函数次序无限制。范例func4.m
function out=func4(x) Recip=func3(x) ; out=sum(recip); %定义子函数 function output=func3(input) Output=1./input >>func4([1,2,3]) ans= 1.8333
第2行为函数的实现 规范函数的运算过程,并指定输出变量的值。
调用函数

调用函数funcavg1,可输入 >>vec=[1 2 3]; >>ave=funcavg1(vec) ave= 2
函数的输入和输出

一个函数可以有多个输入和输出 funcavg2.m可接受两个输入并产生两个输出。
function [avg1,avg2]=funcavg2(vec1,vec2); avg1=sum(vec1)/length(vec1); avg2=sum(vec2)/length(vec2);

funcavg2.m的调用 >>[a,b]=funcavg2([1,2,3],[4,5,6]) a= 2 b= 6

•说明:nargin和nargout是库函数,可以检查任何函数M文件 的输入和输出参数个数。 >>nargin(‘funcavg2’); ans= 2
范例
>>[a,b]=funcavg3([1,2,3],[4,5,6,7]) a= 2 b= 6 >>c=funcavg3([1 3 5 7 9]) c= 5
MATLAB 程序设计-M文件 鲁 坚
jianlu@ 深圳大学 数学与计算科学学院

matlab程序设计与应用第3版pdf版

matlab程序设计与应用第3版pdf版

matlab程序设计与应用第3版pdf版引言概述:《MATLAB程序设计与应用第3版》是一本经典的MATLAB编程教材,它提供了广泛的知识和技巧,帮助读者掌握MATLAB的应用。

本文将从五个大点出发,详细阐述该书的内容,包括基础知识、数据处理、图形绘制、符号计算和应用实例。

正文内容:1. 基础知识1.1 MATLAB环境介绍:介绍MATLAB的工作环境和基本操作,包括命令窗口、编辑器、变量和函数的定义等。

1.2 数据类型和运算:详细介绍MATLAB中的数据类型,如标量、向量、矩阵和结构体等,以及常用的运算符和函数。

1.3 控制流程:讲解MATLAB中的条件语句、循环语句和函数的定义与调用,帮助读者掌握程序的流程控制。

1.4 文件与数据的输入输出:介绍如何读写文件和处理各种数据格式,如文本文件、Excel文件和图像文件等。

1.5 调试与性能优化:提供调试MATLAB程序的技巧和方法,并介绍如何优化程序的性能,提高代码的运行效率。

2. 数据处理2.1 数据导入与清洗:介绍如何导入外部数据,并对数据进行清洗和预处理,包括数据类型转换、缺失值处理和异常值检测等。

2.2 数据可视化:讲解如何使用MATLAB的绘图函数绘制各种类型的图表,如折线图、散点图、柱状图和饼图等,以及如何添加标签和注释。

2.3 数据分析与统计:介绍常用的数据分析和统计方法,如描述统计、假设检验、回归分析和聚类分析等,以及MATLAB中相应的函数和工具箱的使用。

2.4 信号处理:介绍信号处理的基本概念和方法,包括时域分析、频域分析和滤波器设计等,以及MATLAB中相关的函数和工具箱。

2.5 机器学习与数据挖掘:简要介绍机器学习和数据挖掘的基本原理和方法,并介绍MATLAB中的机器学习工具箱和数据挖掘工具箱的使用。

3. 图形绘制3.1 2D图形绘制:详细介绍绘制2D图形的方法和技巧,包括曲线绘制、图形样式设置和图形的保存等。

3.2 3D图形绘制:讲解如何绘制3D图形,包括曲面图、散点图和体积图等,以及如何设置视角和光照效果。

Matlab基础(3)连续系统

Matlab基础(3)连续系统

Matlab3MATLAB3.1xy)(xPiyF jyFiMjM3.1.1LL TdxxP])[(NF(1)F)(xP][N——————14}{RMFMFjjyiiyF41][RNiyF jyFiMjMx y3.1.2LdxEIMU22122xuEIM(2)(3)x iyF jyFiMjMx ydxu x PWL 0)(L dxxu EIU22221323.1.33.1.4(4)(5)WU V L dxPu x u EI V22221456(6)(7))}()]{([),(t x N t xu u][Nuxt][N xu}{}{(8)14RM F M F Fjjy iiy 14R u ujjiiyjjiiu u iyF jyF iM jM xyL TT dx N P xNx N EI V2222}]{[}{}{21}{][xN xu tN tu }{][TT TN u][}{}]{[][}{2N N u TT 0}{V87(9)9(10)910(11)dxN P dx xNx N EIL T LT2222][}{dxN P dx xNx N EIL T LT2222][}{3.1.5(12)12442222][R dx x N x N EILTK }]{[}{X KF (13)14][}{R M F M F dx N P jjy i iy L TF 14][R u u X jjiiLEI L EI LEI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI dx x N x N EIL T46266126122646612612][22232322232302222K ][K (14)]232231[23233222323322Lx L x L x L xL x L x xL x L xNjjiijjy i iy u u LEI L EI LEI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI M F M F 46266126122646612612222323222323}]{[}{X KF jjy i iy M F M F }{Fjjy i iy jjiiM F M F LEI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI L EI u u 12223232223234626612612264661261215(16)3.2 Matlab4402222][RdxxNxNEILTKclearx=sym( ‘x’); L=sym( ‘L’);N=[ 1 –3 * (x^2) / (L^2) + 2 * (x^3) / (L^3), x –2 * (x^2) / L + (x^3) / (L^2),….3 * (x^2) / (L^2) –2 * (x^3) / (L^3), -(x^2) / L + (x^3) / (L^2) ];Ni=diff( N, 2 );Nt=transpose( Ni);kk=Nt* Ni;K=E * I * int(kk, 0, ‘L’);]232231[23233222323322LxLxLxLxLxLxxLxLxNMatlabsymx=sym(‘y’)xy:symsx y zxyz1x=sym(‘y’)x=y2x=sym(‘y+z’)x=y+z3y=sym(‘a*x^2+b*x+c’)y= a*x^2+b*x+csubsx=subs(y,’old’,’new’)y“old”“new”1x=sym(‘y’)z=subs(x, ‘y’, 2)z=22x=sym(‘y+z’); zz=subs(x, ‘[ y, z ]’, [ 2, 3 ] )zz=5x4zsubs(z, ‘x’, 4)273y=sym(‘a*x^2+b*x+c’)z=subs(y, ‘[ a, b, c ]’, [1, 2, 3 ] )z=x^2+2*x+3subs1z=subs(x, y, 2)z=subs(‘x’, y, 2)z=subs(‘x’, ‘y’, 2)•diff ( N, ‘x’, n )Nxn diff( N, n )MatlabxnnxN(‘x’);,2)first_order=2*x+2 second_order=212)(2xxxfxxf)(22)(xxf52),(223xy y x yx y xf yy xf ),(22),(xy xf (‘x ’); y=fxy=(x^3)*(y^2)+2*(x^2)*y+x*y+5;,2)second_order_x=first_order_y=2*(x^3)*y+2*(x^2)+x•int (N, ‘x ’, L1, L2);int (N, ‘x ’, L1, L2)NL1L2diff ( N, L1, L2 )Matlabx21L L Ndx3131103102x dx x (‘x ’);result=1/3numericresultnumeric(result = numeric (result)result=0.3333y y y x y x dxxy yx 2131)2131()(3102331032(‘x ’); y=result=1/3*y^3+1/2*yresult y 6result = subs (result, ‘y ’, 6)result=753.3——5cmYFYL=10 m; b=h=5 e-2 m; E=3e10 N/m 2; F Y =100 Nbh10 m100 N3.3.11.2.mbhI73223102.512)105)(105(12232F3=100 NM3=0F2=0M2=0121F1=0M1=0F2=0M2=01210 m100 N3.11i=1j=2L=5 m E=3e11 N/m2I=5.2e-7 m4124800374406240037440374401497637440149766240037440124800374403744014976374401497646266126122646612612][2223232223231LEILEILEILEILEILEILEILEILEILEILEILEILEILEILEILEIK121F1=0M1=0F2=0M2=04.11000}{2211M F M F F 121F 1=0M 1=0F 2=0M 2=015.1}]{[}{XKF122211221111248003744062400374403744014976374401497662400374401248003744037440149763744014976][0000u u u u K6.22i=2j=3L=5 m E=3e11 N/m2I=5.2e-7 m41][124800374406240037440374401497637440149766240037440124800374403744014976374401497646266126122646612612][12223232223232KKLEILEILEILEILEILEILEILEILEILEILEILEILEILEILEILEI232F3=100 NM3=0F2=0M2=07.2210000}{3322M F M F F 232F 3=100 NM 3=0F 2=0M2=028.2}]{[}{XKF233322332221248003744062400374403744014976374401497662400374401248003744037440149763744014976][010000u u u u K9.1233221112480037440624003744037440149763744014976624003744012480012480037440374406240037440374401497637440374401497614976374401497662400374401248003744037440149763744014976100uuu3322332221248003744062400374403744014976374401497662400374401248003744037440149763744014976][100uuuuK2211221111248003744062400374403744014976374401497662400374401248003744037440149763744014976][uuuuK332211124800374406240037440003744014976374401497600624003744012480012480037440374406240037440374401497637440374401497614976374401497600624003744012480037440003744014976374401497601000000u uu 0100000012480037440624003744000374401497637440149760062400374401248001248000624003744037440149760149761497637440149760062400374401248003744000374401497637440149761332211u uu,011u 1100001248003744062400374403744014976374401497662400374402496000374401497602995213322u u 01000000124800374406240037440374401497637440149760062400374401248001248000624003744037440149760149761497637440149760062400374401248003744000374401497637440149761332211u u u 10.100 N11.5128215050320512820.0752142482136752136.03846160840240384615.07350445370667735042.03322u u3.3.2 Matlab1.K1L151022221][L Tdx xN x N EIK2.2K1L152022222][L Tdx xN xN EIK3.m_chap2_ex1.m4X42.512820320512820.0752142136752136.0384610240384615.0735040667735042.03322uu m_chap3_ex13.4——w=1000 N/m; L 1=L 2=5 m; b=h=5 cm; E=3e11 N/m 2; I=5.2e-7 m 4bhxyw=1000 N/mL=10 mL 1=5 mL 2=5 mw=1000 N/m L 1=5 m12L 2=5 m23w=1000 N/m1.3.4.1122.11i=1j=2L1=5 m E=3e11 N/m2I=5.2e-7 m4124800374406240037440374401497637440149766240037440124800374403744014976374401497646266126122646612612][12112121312131121121213121311LEILEILEILEILEILEILEILEILEILEILEILEILEILEILEILEIKw=1000 N/mL1=5 m123.w=1000 N/mw=1000 N/mL 1=5 m1212F 1= -750 NF 2= -1750 NM1= -2500/3 N mM2=1250 N m1250175032500750)(}{1012211L Tdx x P M F M F N F ]232231[2131231321221312313212L x L xL x L x Lx L xxL x Lx NxxL wxP 200)(114.12211221111248003744062400374403744014976374401497662400374401248003744037440149763744014976][1250175032500750u u u u K 12F 1= -750 NF 2= -1750 NM 1= -2500/3 N mM 2=1250 N mw=1000 N/mL 1=5 m12}]{[}{X K F 125.22i=2j=3L2=5 m E=3e11 N/m2I=5.2e-7 m4][124800374406240037440374401497637440149766240037440124800374403744014976374401497646266126122646612612][122222222322232222222223222322KKLEILEILEILEILEILEILEILEILEILEILEILEILEILEILEILEIL2=5 m23w=1000 N/m6.2w=1000 N/m23F 2= -1750 NF 3= -750 NM 1= -7500 N mM 2=2500/3 N m3250075012501750)(}{2023322L Tdxx P M F M F N F ]232231[2232232322222322323222L xL x Lx L x L x L x xL x LxN)(200)()(2222x L xL L wxP L 2=5 m23w=1000 N/m7.28.332211124800374406240037440374401497637440149766240037440124800124800374403744062400374403744014976374403744014976149763744014976624003744012480037440374401497637440149763250075012501250)1750(175032500750uuu3322332221248003744062400374403744014976374401497662400374401248003744037440149763744014976][3250075012501750uuuuK2211221111248003744062400374403744014976374401497662400374401248003744037440149763744014976][1250175032500750uuuuK3322111248003744062400374400374401497637440149760062400374401248001248003744037440624003744037440149763744037440149761497637440149760062400374401248003744000374401497637440149763250075012501250)1750(175032500750u uu 3322111248003744062400374403744014976374401497600624003744024960006240037440374401497602995237440149760062400374401248003744000374401497637440149763250075012501250)1750(175032500750u uu9.3250035003250012480062400374406240024960062400374402995237440624003744012480013221u33221112480037440624003744037440149763744014976624003744024960062400374403744014976299523744014976624003744012480037440374401497637440149763250075012501250)1750(175032500750uuuxy w=1000 N/mL=10 mL1=5 m L2=5 m10.166928.00534176.0166928.03221u3.4.2 Matlab1.1K1L151022221][L Tdx xN x N EIK2.2K1L252022222][L Tdx xN x N EIK( P * transpose ( N ), x, 0, ‘1250175032500750)(}{1012211L T dxx P M F M F N F xx L wx P 200)(11w=1000 N/m); L2=sym ( ‘L2’);(P * transpose ( N ), x, 0, ‘L23250075012501750)(}{2023322L T dxx P M F M F N F )(200)()(2222x L x L L wx P。

第三章 matlab程序设计基础

第三章 matlab程序设计基础
y
3. 程序控制流 3.多分支if语句
• 多分支if语句格式为:
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组m+1
end
3. 程序控制流
• 例 输入一个字符,若为大写字母,则输出其后继字符,若为 小写字母,则输出其前导字符,若为数字字符则输出其对应 的数值,若为其他字符则原样输出。 – 程序如下:
c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+1)); elseif c>='a'& c<='z' disp(setstr(abs(c)-1)); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end
分类:脚本文件(Script File)和函数文件(Function File)。 主要区别。
1. M文件 脚本文件
没有输入和输出 由一系列指令组成 可在命令窗口直接运行 产生的所有变量存储在workspace中。 例 test.m。
1. M文件 例 脚本M文件实例
脚本M文件实例,查找10 ~100所有素数。
1. M文件
• 函数文件examp.m: function fout=charray(a,b,c) %举例说明函数文件名与函数名不同 if nargin==1 fout=a; elseif nargin==2 fout=a+b; elseif nargin==3 fout=(a*b*c)/2; end • 命令窗口: x=[1:3];y=[1;2;3]; examp(x) examp(x,y') examp(x,y,3)

MATLAB第三章

MATLAB第三章

第三章微积分问题的计算机求解一、实验内容:题目1.试求出如下极限。

①limx→∞(3x +9x )1/ x,②lim x→∞[(x+2)x+2(x+3)x+3 ]/(x+5)2x+5【分析】:该题为单变量函数的极限。

极限问题可以用limit()函数直接求出。

要注意该函数的调用格式为:L=limit(fun,x,x0)(求极限),L=limit(fun,x,x0,’left’或’right’)(求极限)。

还需注意一开始要对函数的字符进行申明。

【解答】:(1)输入如下语句:>> syms x;f=(3^x+9^x)^(1/x);L=limit(f,x,inf)语句运行后显示如下:L =9(2)输入如下语句:>>syms x;f=(x+2)^(x+2)*(x+3)^(x+3)/(x+5)^(2*x+5);>> L=limit(f,x,inf)语句运行后显示如下:L =exp(-5)题目2.试求下面的双重极限。

①lim x→−1y→2 (x2y+xy3)/(x+y) 3,②limx→0 y→0 xy /√(xy+1)−1,③limx→0y→0 [1−cos(x2+y2)]/(x2+y2)e x2+y2。

【分析】:该题为多变量函数的极限问题。

他可以用嵌套使用limit()函数来解决。

在MATLAB上可以用L=limit(limit(f,x,x0),y,y0)或者L=limit(f,y,y0),x,x0)来解决。

其思想是所有的先关于X求导,再所有的关于y求导。

【解答】:(1)输入如下语句:>> syms x y>> f=(x^2*y+x*y^3)/(x+y)^3;>> L=limit(limit(f,x,-1),y,2)语句运行后显示如下:L =-6(2)输入如下语句:>> syms x yf=(x*y)/(sqrt(x*y+1)-1);L=limit(limit(f,x,0),y,0)按ENTER键,语句运行后显示如下:L =2(3)输入如下语句:>> syms x yf=(1-cos(x^2+y^2))/(sqrt(x^2+y^2)*exp(x^2+y^2));L=limit(limit(f,x,0),y,0)按ENTER键,语句运行后显示如下:L =题目3.求出下面函数的导数。

第三章MATLAB有限元分析与应用

第三章MATLAB有限元分析与应用

第三章MATLAB有限元分析与应用有限元分析(Finite Element Analysis, FEA)是一种工程计算方法,用于解决结构力学和流体力学等问题。

它将一个复杂的结构分割成多个简单的离散单元,通过建立数学模型和求解方程组,得到结构的力学、热力学和流体力学等性能参数。

MATLAB是一种功能强大的数学计算软件,具有直观的用户界面和丰富的工具箱,可以方便地进行有限元分析。

本章将介绍在MATLAB中进行有限元分析的基本步骤和方法,以及一些常见的应用例子。

首先,进行有限元分析需要将结构进行离散化。

常用的离散化方法有节点法和单元法。

节点法是将结构的几何形状划分为小的节点,并在节点上进行计算。

单元法是将结构划分为多个小的单元,并在每个单元内进行计算。

在MATLAB中,可以通过创建节点和单元的矩阵来描述结构和单元的关系。

例如,创建一个2D结构形式的节点矩阵:nodes = [0 0; 1 0; 0 1; 1 1];然后,通过创建描述节点连接关系的矩阵,来定义结构的单元:elements = [1 2 3; 2 4 3];这里的每一行代表一个单元,数字表示节点的编号。

接下来,需要定义材料的力学参数和边界条件。

材料的力学参数包括弹性模量、泊松比等。

边界条件包括支座约束和加载条件。

在MATLAB中,可以通过定义力学参数和边界条件的向量来描述。

例如,定义弹性模量和泊松比的向量:E=[200e9200e9];%弹性模量nu = [0.3 0.3]; % 泊松比定义支座约束的向量(1表示固定,0表示自由):constraints = [1 1; 0 0; 0 1; 0 1];定义加载条件的向量(包括点力和面力):最后,通过求解方程组得到结构的应力和位移等结果。

在MATLAB中,可以利用有限元分析工具箱中的函数进行计算。

例如,可以使用“assem”函数将节点和单元的信息组装成方程组,并使用“solveq”函数求解方程组。

程序设计训练II——Matlab语言及其应用(3)

程序设计训练II——Matlab语言及其应用(3)
字符串变量

字符串表达式:’Hello!’ 字符串赋值语句:s=’Hello!’

字符串变量s是数组变量,有5个元素
1行 5列
字符串处理函数
构造多维数组

cat函数 格式:cat(n,A1,A2,A3)
cat(1,A1,A2,A3)=[A1;A2;A3] cat(2,A1,A2,A3)=[A1,A2,A3] cat(3,A1,A2,A3)的结果是扩张为3维数组 ans(:,:,1)=A1 ans(:,:,2)=A2 ans(:,:,3)=A3
习题三(Page 56)——(2) 7. 解线性方程
8. 解方程组
习题三(Page 56)——(3) 9. 求顶点是A(2,5,6),B(11,3,8),C(5,1,11)的三 角形各边的长。 10. 进行如下的逻辑运算,观察结果。
(1)P=[100], ~P, P|(~P), P&(~P) (2)C=rem(P,2), C&P, C|P, (C-1)&P (3)any(P), all(P), all(P|(~P)), any(P&(~P))
函数体(function body)
注释文字(Comments)
Help文字行(help text lines) H1行(First help text line) 函数声明行(function definition line),文件名同函数名
M-file函数的一般结构



ห้องสมุดไป่ตู้


函数声明行:定义函数名,如 function y=abc(r,s,t)。 函数名最好同M-file文件名,便于直接调用。 H1行:帮助信息的第一行,给定帮助信息的关键字,命令 lookfor topic或lookfor topic –all只搜索H1中的文字 Help行:其他帮助信息,命令help <M文件名>显示H1行和 Help行的所有文字 函数体:包括运算和赋值等编程代码 注释文字:在一行中由%引领,直至行末的文字 注释体:由%{ }括起的多行文字 参数传递:值传递(实参的值赋值给函数虚参,函数执行完 后,消除虚参) 全局变量:在函数体中,用global <变量名> 声明 函数的调用格式: y=abc(r,s,t)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
该式中除两个输入参数外,其余输入输出参数都可以缺省;
◆ [ x,fval,exitflag,output,jacob]=fsolve(fun,x0,options,P1,P2...): 解 非 线性方程组最完整的调用格式。 x0 是表示零点数是猜测值的向量; options 是 优 化 迭 代 所 采 用 参 数 的 结 构 数 组 。 P1 和 P2是向函数 fun 传递的参数; x 和 fval是输出参数,所求零点的自变量值和函数值; output是输出此命令所用的计算方法、迭代次数等信息。 jacob是函数在 x 处的 jacobian。
结果为:
Zero found near tt. x=
-1 fval =
0 exitflag =
1
Zero found near yy. x=
1.8812 fval =
-6.2172e-015 exitflag =
1
第3章 矩阵、数组和符号运算
解非线性方程组的函数命令fsolve 其调用格式为: ◆ x=fsolve(fun,x0) :解非线性方程组最简单的调用格式。
[yy]=ginput(1) %用鼠标获取 2 个零点猜测值
zoom off
%恢复原来图形大小
第3章 矩阵、数组和符号运算
显示所得零点初始猜测值,结果为: tt =
-0.9838 0.0001 yy = 1.8762 0.0091
(5)用函数 fzero 命令求函数的精确零点 [x,fval,exitflag]=fzero(’fun1’,tt(1),[]) %靠近 tt(1)点处的精确零点 [x,fval,exitflag]=fzero(’fun1’,yy(1),[]) %靠近 yy(1)点处的精确零点
第3章 矩阵、数组和符号运算
求一元函数零点命令fzero 的调用格式为: ◆ x = fzero(fun,x0):求一元函数零点命令的最简形式; ◆ [x,fval,exitflag] =fzero(fun,x0,options,P1,P2,...):求一元函 数零点命令的完整格式。
x0 是初始猜测的零点; options 是优化迭代所采用的参数选项,options的缺省设置可以用命令 options=optimset(’fzero’)获得; P1,P2是向函数 fun 传递的附加参数。它的具体取名和函数 fun 中一 致; x是输出参数,为所求的零点自变量值; fval是输出参数,为函数 fun 在 x 处的值; exitflag是描述函数 fun 的退出情况。若 exitflag>0,则表示找到函数 零点后退出;若 exitflag<0,则表示没有找到零点或在搜索过程中遇到 了无穷大的函数值。
然后用fsolve求解
>>[x,fval,exitflag,output,jacob]=fsolve(‘fc’, [1.,1.],[]) %[1.,1.]为初值 x=
0.3367 0.5553 fval =
1.0e-008 * 0.2029 0.5242 exitflag = 1
第3章 矩阵、数组和符号运算
b. 非线性方程的符号解法 用函数零点法求非线性方程的解有两个函数命令,即 fzero 和 fsolve。
fzero命令用于求一元函数零点 fsolve命令用于求解非线性方程组 首先需将方程 f(x)=g(x)转化为 F(x)=f(x)-g(x)=0,方程组也 是如此 ;然后再将函数 F(x)写成 MATLAB 的 m 函数,以 便在 fzero 和 fsolve 命令中调用。 求解的过程为: 先猜测一个初始零点,或者该零点大概所在的区间; 然后通过计算,使猜测值不断精确化,或使猜测区间不断 收缩 ,直到达到预先指定的精度为止。
>> fplot('fun1',[-5,5],'r')
>> hold on
>> fplot('fun2',[-5,5],'r')
( 4)用 zoom 和 ginput 命令获得零点的初始近似值 在程序中输入下列命令,可得到函数的局部放大图及鼠标
操作线。
zoom on
%局部放大命令
[tt]=ginput(1)
0 2 10
9 B 7
6
>> A=sym('[10,-1,0;-1,10,-2;0,-2,10]')
A=
[ 10, -1, 0]
[ -1, 10, -2]
[ 0, -2, 10]
>> B=('[9;7;6]')
B=
[9;7;6]
>> linsolve(A,B) ans = [ 473/475] [ 91/95] [ 376/475] >> vpa(ans,6) ans = [ .995789] [ .957895] [ .791579] 矩阵 A 必须至少是行满秩的。当 A 的列数大于 行数时,将给出解不惟一的警告提示。
第3章 矩阵、数组和符号运算
7、符号方程求解
a.线性求解线性方程组符号解。
对方程 A*X=B,linsolve 的调用格式为:
X = linsolve(A,B)
等同于 X = sym(A)\sym(B)
10 1 0 A 1 10 2
第3章 矩阵、数组和符号运算
求方程组 x1 0.7sin x1 0.2cos x2 0 的根。
x2 0.7cos x1 0.2sin x2 0
首先编制函数文件fc.m
function y=fc(x) y(1)=x(1)-0.7*sin(x(1))-0.2*sin(x(2)); y(2)=x(2)-0.7*cos(x(1))+0.2*sin(x(2)); y=[y(1),y(2)];
第3章 矩阵、数组和符号运算
用 fzero 命令求解函数 f (x) x4 4x 5 的零点
( 1)建立函数 f(x)的 M 文件。
function y=fun1(x)
y=x.^4-4*x-5;
( 2)建立水平横轴的 M 文件。
function y=fun2(x)
y=0;
( 3)用作图法估计函数零点位置。
相关文档
最新文档