Matlab与化工数值计算-第一讲简介与基本数学运算.ppt

上传人:sh****n 文档编号:6378728 上传时间:2020-02-24 格式:PPT 页数:58 大小:634.86KB
返回 下载 相关 举报
Matlab与化工数值计算-第一讲简介与基本数学运算.ppt_第1页
第1页 / 共58页
Matlab与化工数值计算-第一讲简介与基本数学运算.ppt_第2页
第2页 / 共58页
Matlab与化工数值计算-第一讲简介与基本数学运算.ppt_第3页
第3页 / 共58页
点击查看更多>>
资源描述
计算机在化工中的应用第一讲简介与基本数学运算 伍水生化学工程学院 联系方式 wuss2005 13577180637 化学工程师的任务 化学工程专业数学模型类型 非线性方程 组 常微分方程 组 偏微分方程 组 非线性模型 难以获得解析解 必须采用数值解法模型的数值解法是应用数学的一个分支 通常称为计算数学 数值分析 数值方法 化学工程常用软件 MatlabMathematicaMathcadMapleStaticstica PRO II SimSci AspenPlusChemCADFlowtranSuperproDesignerFluentCHEMKIN 数学软件 化工模拟软件 本课程的学习目的 化工专业知识作为背景 不涉及模型的推导 注重模型求解过程的方法与技巧 学会Matlab的使用 可以利用Matlab求解较为复杂的化工数学模型 对于数值分析的内容不过多涉及 只注意数值计算结果的准确性 本课程基本内容 第一讲Matlab简介与基本数学运算第二讲非线性方程组求解与迭代法第三讲矩阵操作与线性方程组求解第四讲插值 拟合与数值微分 积分第五讲常微分方程数值解第六讲偏微分方程数值解Origin基础知识和绘图 学习本课程的注意事项 学好本课程的唯一途径是多上机实践数值计算效率和效果的保证有很多技巧 可以参考数值方法 数值分析 方面的教科书刘则毅 科学计算技术与Matlab 科学出版社同济大学计算数学教研室 现代数值数学和计算 同济大学出版社黄华江 实用化工计算机模拟 化学工业出版社张志涌 精通Matlab6 5版 北京航空航天大学出版社对于数值计算的结果 应注意分析结果的意义 Matlab简介 MATLAB具有用法简单 灵活 结构性强 延展性好等优点 逐渐成为科技计算 视图交互系统和程序中的首选语言工具 功能强大的数值运算功能强大的图形处理能力高级但简单的程序环境丰富的工具箱与模块集易于扩充 开始的问题 计算在1 2英寸不锈钢管中 以2000lb hr流量输送水 当水的温度为10 20 30 40 50 60 70 80 时 压降分别为多少 牛顿流体在不锈钢管中的流动压降可由下式估算 其中 摩擦压降 psi 100英尺等量管长 M 质量流量 lb hr 粘度 cP 密度 lb ft3 D 管径 inch 流体密度可由下式描述 g ml 对于水 A 0 34710 B 0 2740 Tc 647 13K n 0 28571 流体粘度由下式描述 cP 对于水 A 10 2158 B 1 7925E3 C 1 7730E 2 D 1 2631E 05 Matlab窗口介绍 命令窗口 命令历史 变量空间 当前路径 Matlab的通用命令 基本算术运算符 Matlab语言的标点 数值类型 分类方法一双精度型 系统默认类型 单精度型带符号整数无符号整数分类方法二标量向量数组分类方法三实数复数 数值的表示 以下表达方式均合法 345 990 011 3e 34 5e33 123 1 2 3 12 211 3 3i6 8j 计算以下表达式的值 1 123 321 2 123 321 3 123 24 123 25 1 3 2 26 3 2 27 3 2 2 8 8 1 3 基本数学运算符的使用 2000 1 8 10 10 2158 1 7925e3 283 1 773e 2 283 1 2631e 5 283 2 0 2 20000 0 5 4 8 0 3471 0 274 1 283 647 13 0 28574 0 2323 回车可以得到结果ans 287 8245 Matlab的计算器功能 数学函数 elfun 计算以下表达式的值 sin 30 sind 30 exp 123 log10 101001000 abs 3 4i abs 5 基本数学函数的使用 format命令 程序的组成 数据输入 运算 数据输出 变量 变量 数学运算 关系运算 逻辑运算 流程控制 图形输出 文件输出 屏幕输出 文件输入 键盘输入 变量 变量的命名方式 变量名由字母 数字和下划线组成 变量名中的英文字母大小写是有区别的 变量名的最大长度是有规定的不同版本的系统规定不同 19个字符 31或63个字符等可调用namelengthmax函数得到系统规定长度 变量的使用 clear 删除工作区中所有定义过的变量 whos 查看当前工作区内变量信息 无显示表示没有定义的变量 xy 1 yx 2 对变量赋值 xy 查看变量xy的当前数值xy 1 whosNameSizeBytesClassxy1x18doublearrayyx1x18doublearrayGrandtotalis2elementsusing16bytes clearxyyx 删除变量xy及yx whos xy 这时变量xy已经不存在了 Undefinedfunctionorvariable xy MATLAB系统的特殊变量和常数 MATLAB数据类型 数值 标量 向量 数组 字符串单元数组 cellarray 结构体 structure 函数句柄 向量的生成 1 直接输入向量格式上要求向量元素需要用 括起来 元素之间可以用空格 逗号或分号分隔 用空格和逗号分隔生成行向量 用分号生成列向量 2 利用冒号生成向量冒号表达式的基本形式为 x x0 step xn若step 1 则此项输入可以忽略 3 linspace函数可以使用linspace函数生成线性等分向量 y linspace x1 x2 生成 1 100 维行向量 y 1 x1 y 100 x2y linspace x1 x2 n 生成 1 n 维行向量 y 1 x1 y n x24 logspace函数logspace用于生成对数等分向量 格式如下 y logspace x1 x2 n 生成 1 n 维对数等分向量 y 1 10 x1 y n 10 x2 n可以省略 此时其默认值为50 向量的运算 1 向量加减与数加减向量的加减与数加减的形式与普通标量加减相同2 向量的点积 叉积与混合积的实现点积 向量的点积由函数dot实现 dot a b 返回向量a和b的数量点积 其中a b必须同维 叉积 叉积由cross函数实现 向量a b必须为三维向量混合积 可由以下命令实现 dot a cross b c 3 向量的数乘 数组乘和向量乘例 当a 1 1 3 b 2 2 6 时 以下命令的运行结果是什么 1 a1 2 a2 a2 a b3 a3 a b 字符串类型 字符串 包含在一对单引号中的字符集合 s hello MATLAB 定义字符串变量ss hello MATLAB whosNameSizeBytesClasss1x1326chararrayGrandtotalis13elementsusing26bytes 单元数组 CellArray 单元数组是MATLAB数组的一种特殊数据类型 它用于保存不同类型和 或不同大小的数据 三种直接赋值方式单元下标用括号 括起来 而单元的内容用 括起来 如 clearall a 1 1 12 34 a 1 2 01 a 2 1 Hello a 2 2 2 3i 2 单元下标用 括起来 而赋值语句等式右边的单元内容用 括起来 a 1 1 12 34 a 1 2 01 a 2 1 Hello 右边只有一个元素时可省略去 a 2 2 2 3i3 直接使用 a 12 34 01 Hello 2 3i 单元数组的操作 显示单元数组的命令 a 显示单元数组a的信息 celldisp a 显示单元数组a的完整内容先使用函数cell 创建空的单元数组 然后再赋值 b cell 2 3 赋值方法同直接赋值方式 对单元数组元素的操作 c a 1 2 将单元数组a的 1 2 元素赋给变量c 注意是 而不是 结构体 与C语言类似 MATLAB结构体用于存取相关的数据 它由一组称为域 fields 的成员变量 向量 构成 每一个域可以为不同的MATLAB数据类型 结构数组的定义有两种方法 一种是直接赋值 另一种是使用strct 函数 结构体的赋值 student name ZhangJun student major ChemicalEngineering student subject 英语 政治 数学 化工原理 物理化学 student entrance exam 6268728290 student 2 name LiXia student 2 major ChemicalEngineering student 2 subject 英语 政治 数学 化工原理 物理化学 student 2 entrance exam 6072688588 struct array name structure field1 values1 field2 values2 Student struct name ZhangJun major ChemicalEngineering 管道压降的计算 T 283 10 353 M 2000 D 0 5 density A 0 3471 density B 0 274 density Tc 647 13 density n 0 28571 Rho density A density B 1 T density Tc density n 0 2323 mu A 10 2158 mu B 1 7925e3 mu C 1 773e 2 mu D 1 2631e 5 mu 10 mu A mu B T mu C T mu D T 2 deltP M 1 8 mu 0 2 20000 D 4 8 Rho M文件编程 M文件编程 M fileprogram 可用普通文本编辑器编制MATLAB文件 文件由纯ASC 字符组成 确定文件名后加 m扩展名 称为M文件 M文件有两种形式 命令 脚本 文件 ScriptFile 和函数文件 FunctionFile 脚本编辑窗口 命令文件 ScriptFile M文件中最简单的一种 是可用于自动重复执行的一组MATLAB命令和函数组合 不需输出输入参数 用M文件可以调用工作空间已有的变量或创建新的变量 运行过程中产生的变量都是全局变量 建立一个命令文件等价于从命令窗口中顺序输入文件里的命令 程序不需要预先定义 只要依次将命令编辑在命令文件中 再将程序保存成为扩展名为 m的M文件即可 运行命令文件时 只需在命令窗口键入文件名即可 例3 1分别建立命令文件和函数文件 将华氏温度f转换为摄氏温度c 程序1 首先建立命令文件并以文件名f2c m存盘 clear 清除工作空间中的变量f input InputFahrenheittemperature c 5 f 32 9然后在MATLAB的命令窗口中输入f2c 将会执行该命令文件 执行情况为 InputFahrenheittemperature 73c 22 7778 函数文件的编写 编写一个函数 计算本章开始问题中流体的粘度 函数要求输出粘度的计算值 函数声明语句 functionvis viscosity 变量的传递通过调用函数传递vis viscosity A B C D T 通过全局变量传递利用global命令 在主函数和子函数中予以声明编写表达式 函数的调用 在调用函数的主函数中 直接采用函数名调用通过函数句柄调用 程序2 首先建立函数文件f3c m functionc f3c f c 5 f 32 9然后在MATLAB的命令窗口调用该函数文件 clear y input InputFahrenheittemperature x f3c y functionCha1demo4 7globalmuTT 283 10 353 M 2000 D 0 5 density A 0 3471 density B 0 2740 density Tc 647 13 density n 0 28571 Rho density A density B 1 T density Tc density n 0 2323mu A 10 2158 mu B 1 7925e3 mu C 1 773e 2 mu D 1 2631e 5 Mu viscositydeltP M 1 8 Mu 0 2 20000 D 4 8 Rho functionvis viscosityglobalmuTvis 10 mu A mu B T mu C T mu D T 2 管道压降的计算函数 函数句柄 创建一个函数句柄 可用于保存函数的所有信息 以便将来对它进行调用 函数句柄可以作为参数传递给其他函数 或与feval函数一起使用 以调用该函数句柄所属的函数 使用函数句柄还可以减少定义函数的文件个数 改善重复操作的性能 保证函数计算的可靠性 funhandle function name function name为用户指定的函数名 管道压降的计算函数 functionCha1demo4 5T 283 10 353 M 2000 D 0 5 density A 0 3471 density B 0 274density Tc 647 13 density n 0 28571 Rho density A density B 1 T density Tc density n 0 2323mu A 10 2158 mu B 1 7925e3 mu C 1 773e 2 mu D 1 2631e 5 Mu feval viscosity mu T Mu viscosity mu T deltP M 1 8 Mu 0 2 20000 D 4 8 Rho functionvis viscosity mu T vis 10 mu A mu B T mu C T mu D T 2 程序的组成 数据输入 运算 数据输出 变量 变量 数学运算 关系运算 逻辑运算 流程控制 图形输出 文件输出 屏幕输出 文件输入 键盘输入 Script文件或函数文件 MATLAB关系运算符 关系运算符 MATLAB逻辑 关系运算的规定 逻辑和关系运算均可以在任意具有相同维数的数组之间进行标量可以和任意维数的数组运算在所有关系表达式和逻辑表达式中 作为输入的任何非0数均被看作是 逻辑真 只有0是 逻辑假 所有关系表达式和逻辑表达式的运算结果是一个由0和1组成的逻辑数组逻辑数组是 数值数组 的子类 可以按数值数组实施操作 它又有不同与普通数值数组的特性 即表示着对对象判断的真假 可用于数组寻访等特殊场合 MATLAB逻辑运算符 逻辑运算符 A 0110 B 1100 A B 0100 A B 1110 A 1001 xor A B 1010 先决逻辑运算符 逻辑 关系运算示例 A 3 3 B 3 1 3 L1 A 0 L2 A 0L3 AL4 A 2 A 1L5 A B L1 运行结果 A 3 2 10123B 3210 1 2 3L1 1111000L2 0001000L3 0001000L4 0011000L5 0001000 运算优先级 括号逻辑否乘除加减关系运算逻辑运算先决与先决否 高 低 MATLAB关系运算函数 isempty数组是否为空isequal两个数组是否相等any数组有非零元素则结果为1all数组元素全非零则结果为1find数组非零元素的下标isscalar是否为标量isvector是否为向量isnan是否为非数isinf是否为无穷isfinite是否为有限 for循环结构 fori 1 10 x i i endx for循环变量 表达式1 初值 表达式2 步长 表达式3 终值 statements 语句组 end字符串 包含在一对单引号中的字符集合 为了得到高效代码 应尽量提高代码的向量化程度 避免使用循环结构为了得到高效代码 在循环指令之前应尽量对数组进行预定义 while循环结构 whilecndition 表达式 statements 执行语句组 end Fibonacci数组的元素满足Fibonacci规则 ak 2 ak ak 1 k 1 2 且a1 a2 1 求该数组中第一个大于10000的元素 a 1 1 a 2 1 i 2 whilea i 10000a i 1 a i 1 a i i i 1 endi a i if else end分支结构 if语句的一般格式 ifcondition1statements 如果condition1的值为True 则执行该语句组elseifcondition2statements 如果condition2的值为True 则执行该语句组elsestatements 如果condition1和condition2的都为False 则执行该语句组end 用for循环指令寻求Fibonacci数组中第一个大于10000的元素n 100 a 1 100 fori 3 na i a i 1 a i 2 ifa i 10000a i break endendi 可以用break语句强制终止循环的运行 switch case结构 switch case的一般格式 switchtest expr 测试表达式test expr可以是标量或字符串casevaluestatements 当test expr值是value时 执行该语句组case value1 value2 statements 当test expr值是value1或value2或 时 执行该语句组otherwise statementsend switch case otherwise语句的能力与if else end语句类似 但对多重选择的情况switch语句使代码更加易读 try catch结构 try catch的一般格式 trystatements 此组语句总被执行 若正确则跳出此结构catchstatements 当上组语句出现执行错误后 该组语句被执行end 当两组语句都出错后 Matlab将跳出该结构可以采用lasterr函数查询出错原因 N 4 A 123 tryA N A N catchA N A end endlasterr A N 3ans Indexexceedsmatrixdimensions 1 求解猴子吃桃问题 猴子在第一天摘下若干个桃子 当即吃了一半 又感觉不过瘾 于是就多吃了一个 以后每天如此 到第10天再想吃时 却发现就只剩一个桃子 请编程计算第一天猴子摘的桃子个数 解答 x 1 fori 9 1 1x 2 x 1 endX 2 根据 求 1 y 3时的最大n值 2 与 1 的n值对应的y值 解答 y 0 n 0 whiley 3n n 1 y y 1 2 n 1 endy y 1 2 n 1 n n 1 3 输入一个百分制成绩 要求输出成绩等级A B C D E 其中90 100分为A 80 89分为B 70 79分为C 60 69分为D 60分以下为E 要求 1 分别用if语句和switch语句实现 2 输入百分制成绩后要判断该成绩的合理性 对不合理的成绩应输出出错信息 解答 1 x input inputx 0 0end 2 x input inputx 0 0end 本讲小结 Matlab的基本数学运算符和运算函数的使用注意区别矩阵和数组的乘 除 乘方运算Matlab函数文件的基本形式及其调用字符 单元数组 结构体的定义Matlab的流程控制语句
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!