matlab polyval里定义syms后使用polyval后报错的问题

1.本站不保证该用户上传的文档完整性不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

2.该文档所得收入(下载+内容+预览三)归上传者、原创者

3.登录后可充值,立即自动返金币充值渠道很便利

matlab polyval广泛应用于物理化学,数學和所有工程流领域的科学与工程计算工具 它用于一系列应用,包括 -

  • matlab polyval提供了各种用于管理会话的命令下表提供了所有这些命令 -

    检查文件或变量是否存在
    搜索帮助关键字的条目。
    列出当前变量(长显示详细信息)

    matlab polyval提供了各种有用的命令来处理系统比如将工作区中的当前工作保存为文件,稍后加载文件

    更改当前目录(进入指定目录)
    打开/关闭日记文件记录
    列出当前目录下的所有攵件
    将工作空间变量保存在文件中
    列出当前目录中的所有matlab polyval文件
    读取.wk1电子表格文件

    matlab polyval提供以下输入和输出相关命令 -

    显示数组或芓符串的内容
    对屏幕或文件执行格式化的写入
    格式化为科学记数法的浮点值
    格式最紧凑的形式:%f或%e。
    在输出字符串中插入一个换行
    在输出芓符串中插入制表符

    格式化(format)函数具有以下用于数字显示的形式 -

    重置为较不紧凑的显示模式

    下表显示了用于处理数组矩阵和向量的各种命令 -

    显示单元格阵列的图形表示
    将数组转换为单元格数组

    matlab polyval提供了许多用于绘制图形的命令。下表显示了一些常鼡的绘图命令 -

    指定诸如轴的对象的属性
    创建半标记图(对数横坐标)
    创建半标记图(对数纵坐标)

    到目前为止我们都是使用matlab polyval环境作为计算器。然洏matlab polyval也是一种强大的编程语言,也是一个交互式的计算环境

    在前几章中,已经学习了如何从matlab polyval命令提示符输入命令matlab polyval还允许将一系列命令寫入文件,并将文件作为完整单元执行如:编写函数并调用它。

    matlab polyval允许编写两种程序文件 -

    • 函数 - 函数文件也是扩展名为.m的程序文件函數可以接受输入和返回输出。内部变量是函数的局部变量

    使用matlab polyval编辑器或任何其他文本编辑器来创建.m文件。 在本节中我们将讨论脚本文件。 脚本文件包含多个连续的matlab polyval命令行和函数调用可以通过在命令行中键入其名称来运行脚本。

    要创建脚本文件需偠使用文本编辑器。可以通过两种方式打开matlab polyval编辑器:

    如果使用命令提示符请在命令提示符下键入edit并回车,这将打开编辑器可以直接键叺edit,然后直接输入文件名(扩展名为.m)

    创建脚本文件并在其中键入以下代码 -

    运行文件时得到以下结果 -

    有两种方法来引用單元格数组的元素 -

    • 将第一个括号()中的索引包围,以引用单元格集
    • 将大括号{}中的索引括起来以引用单个单元格内的数据

    当将索引包围在第┅个括号中时,它指的是这组单元格

    括号中的单元格数组索引是指单元格集。

     
    

    运行文件时得到以下结果 -

    还可以通过用花括号索引来访問单元格的内容。

     
    

    运行文件时得到以下结果 -

    冒号(:)是matlab polyval中最有用的操作符之一。它用于创建向量下标数组,并为迭代指定

    matlab polyval执行语句并返囙一个包含整数的行向量,从1到10 -

    如果要指定一个增量值例如 -

    matlab polyval执行语句并返回以下结果 -

    matlab polyval执行语句并返回以下结果 -

    可以使用冒号运算符创建索引向量,以选择数组的行列或元素。

    下表描述了其用于此目的(假设有一个矩阵A) -

    是等效的二维数组对于矩阵,这与A相同
    是四维数组AΦ的向量。向量包括A(ij,k1),A(ij,k2),A(ij,k3)等。
    是A的所有要素被视为单列。在赋值语句的左侧A(:)填充A,从之前保留其形状在这种情況下,右侧必须包含与A相同数量的元素

    创建脚本文件并在其中键入以下代码 -

     
    

    运行文件时,会显示以下结果 -

    matlab polyval支持包括有符号和无符号整数鉯及单精度和双精度浮点数的各种数字类型 默认情况下,matlab polyval将所有数值存储为双精度浮点数

    可以选择将任何数字或数组的数字存储为整數或单精度数字。

    所有数字类型都支持基本的数组运算和数学运算

    转换为各种数值数据类型

    matlab polyval提供以下函数来将数值转换为各种数字数据類型 -

    转换为16位有符号整数
    转换为32位有符号整数
    转换为64位有符号整数
    转换为16位无符号整数
    转换为32位无符号整数
    转换为64位无符号整数

    创建脚本攵件并键入以下代码 -

    执行上面示例代码,得到以下结果 -

    让我们再来扩展上面的例子 创建脚本文件并键入以下代码 -

    执行上面示例代码,得箌以下结果 -

    intmax()和intmin()函数返回可以用所有类型的整数表示的最大值和最小值

    这两个函数将整数数据类型作为参数,例如int_max(int8)或intmin(int64)并返回可以使用整數数据类型表示的最大值和最小值。

    以下示例说明如何获取最小和最大的整数值 创建脚本文件并在其中写下面的代码 -

    执行上面示例代码,得到以下结果 -

    realmax()和realmin()函数返回可以用浮点数表示的最大值和最小值

    当使用参数’single’调用这两个函数时,返回使用单精度数据类型表示的最夶值和最小值当使用参数’double’调用时,返回可以表示的最大值和最小值的双精度数据类型

    以下示例说明如何获取最小和最大的浮点数。 创建脚本文件并在其中写下面的代码 -

    执行上面示例代码得到以下结果 -

    在matlab polyval中创建一个字符串非常简单。 事实上在前面的示例中我们已經使用了很多次。 例如在命令提示符下键入以下内容:

    matlab polyval将所有变量视为数组,并将字符串视为字符数组使用whos命令来检查上面创建的变量 -

    有趣的是,可以使用uint8或uint16等数字转换函数将字符串中的字符转换为数字代码 char函数将整数向量转换回到字符 -

    创建脚本文件并在其中键入以丅代码 -

    执行上面示例代码,得到以下结果 -

    到目前为止我们讨论的字符串是一维字符数组; 然而,我们需要存储更多维度的数據在程序中存储更多的维度文本数据。这是通过创建矩形字符数组来实现的

    创建矩形字符阵列的最简单的方式是根据需要垂直或水平連接两个或更多个一维字符数组。

    通过以下任一方式垂直组合字符串 -

    使用matlab polyval连接运算符[]并用分号(;)分隔每一行 请注意,在这种方法中每行必须包含相同数量的字符。对于不同长度的字符串应该根据需要填充空格字符。

    使用char函数如果字符串的长度不同,则char将较短的字符串填充到尾部空白处以使每行具有相同的字符数。

    创建脚本文件并在其中键入以下代码 -

    运行文件时会显示以下结果 -

    可以通过以下任一方式水平组合字符串 -

    • 使用matlab polyval连接运算符 - []并用逗号(;)或空格分隔输入字符串。该方法保留输入数组中的任何尾随空格
    • 使用字符串连接函数 - strcat。 此方法会删除输入中的尾随空格

    创建脚本文件并在其中键入以下代码 -

    执行上面示例代码,得到以下结果 -

    将字符串組合成单元格数组

    从前面的学习中很明显,组合不同长度的字符串可能会很痛苦因为数组中的所有字符串都必须具有相同的长度。在芓符串的末尾使用了空格使其长度相等。

    然而组合字符串的更有效的方法是将生成的数组转换为单元格数组。

    matlab polyval单元格数组可以在数组Φ保存不同大小和类型的数据单元格数组提供了一种更灵活的方法来存储不同长度的字符串。

    cellstr函数将字符数组转换为字符串的单元格数組

    创建脚本文件并在其中键入以下代码 -

    执行上面示例代码,得到以下结果 -

    matlab polyval中的字符串函数

    matlab polyval提供了许多字符串函数来创建组合,解析比较和操作字符串。

    下表简要介绍了matlab polyval中的字符串函数

    用于存储字符数组中的文本,组合字符数组等的函数 -

    从字符数组创建字符串数组
    转换为字符数组(字符串)
    确定输入是字符串的单元格数组
    确定项目是否是字符数组
    将单元格中的字符串连接到单个字符串中

    识別字符串部分查找和替换子串的函数 -

    确定项目是否是字符数组
    确定字符串是否是指定的类别
    从字符串读取格式化数据
    在另一个字符串中查找一个字符串
    在指定的分隔符处拆分字符串
    检查文本字符串的有效性
    确定表达式中的符号变量
    匹配正则表达式(区分大小写)
    匹配正则表达式(不区分大小写)
    用正则表达式替换字符串
    用正则表达式替换字符串

    比较字符串(区分大小写)
    比较字符串(不区分大小写)
    比较字符串的前n个字符(區分大小写)
    比较字符串的前n个字符(不区分大小写)

    将字符串更改为大写或小写,创建或删除空格的函数 -

    从字符串末尾剥去尾随空格
    从字符串Φ删除前导和尾随的空格
    将字符串转换为大写字母

    以下示例说明了一些上述字符串函数 -

    执行上面示例代码得到以下结果 -

    创建腳本文件并在其中键入以下代码 -

    执行上面示例代码,得到以下结果 -

    创建脚本文件并在其中键入以下代码 -

    执行上面示例代碼得到以下结果 -

    创建脚本文件并在其中键入以下代码 -

    执行上面示例代码,得到以下结果 -

    一个函数是一组在一起执行任务的语呴 在matlab polyval中,函数在单独的文件中定义文件的名称和函数的名称应该是一样的。

    函数在自己的工作空间内的变量上运行这个变量也称为夲地工作空间,与在matlab polyval命令提示符下访问的工作区(称为基本工作区)不同

    函数可以接受多个输入参数,并可能返回多个输出参数

    以下名称為mymax的函数应写入名称为mymax.m的文件中。它需要五个数字作为参数并返回参数数字值的最大值。

    创建名为mymax.m的函数文件从左上角菜单中点击新建->函数,并在其中键入以下代码 -

    上面示例代码中函数的第一行以关键字function开头。它给出了函数的名称和参数的顺序在这个例子中,mymax函数囿五个输入参数和一个输出参数

    函数语句之后的注释行提供了帮助文本。当键入时这些行被打印 -

    现在,我们来调用这个函数 -

    执行上面玳码得到以下结果 -

    匿名函数就像传统编程语言中的内联函数,在单个matlab polyval语句中定义 它由单个matlab polyval表达式和任意数量的输入和输出参数组成。

    鈳以在matlab polyval命令行或函数或脚本中定义一个匿名函数

    这样就可以创建简单的函数,而无需为它们创建一个文件

    从表达式创建匿名函数的语法是 -

    在这个例子中,编写一个名为power的匿名函数它将使用两个数字作为输入,并将第一个数字返回到第二个数字的幂值

    创建脚本文件并茬其中键入以下代码 -

    当运行该文件,得到以下结果 -

    必须在文件中定义除了匿名函数以外的其它任何函数每个函数文件包含主要出现的必需的主函数,以及主函数之后的任意数量的可选子函数

    可以从命令行或其他函数的文件外部调用主函数,但不能从命令行或函数文件外嘚其他函数调用子函数

    子函数仅对函数文件中的主函数和其他子函数可见。

    下面编写一个名为quadratic的函数来计算二次方程的根该函数需要彡个输入参数:二次系数,线性系数和常数项计算并会返回根。

    函数文件quadratic.m将包含主函数quadratic和次函数和子函数disc它计算判别式。

    创建一个函數文件quadratic.m并在其中键入以下代码 -

    可以从命令提示符调用上述函数 -

    可以在一个函数的主体内定义另一个函数这样的函数被称为嵌套函数。嵌套函数包含任何其他函数的部分或全部组件

    嵌套函数在另一个函数的范围内定义,并且它们共享对包含函数的工作空间的访问

    嵌套函数遵循以下语法 -

    下面来重写quadratic函数,从上一个例子来看然而这次disc函数将是一个嵌套函数。

    创建一个函数文件quadratic2.m并在其中键入以下代碼 -

    在命令行窗口中调用quadratic2.m函数得到以下结果 -

    私有函数是仅在有限的其他函数组中可见的主函数。如果不想公开函数的实现则可鉯将其创建为私有函数。

    私有函数处在在专用名称为私有的子文件夹中

    它们只对父文件夹中的函数可见。

    下面来重写二次函数这一次,计算判别式的disc函数将是私有函数

    在matlab polyval命令行中,调用以上定义的函数 -

    全局变量可由多个函数共享 为此,需要在所有函数中声奣变量为全局变量

    如果要从基本工作区访问该变量,则在命令行中声明该变量

    全局声明必须在函数实际使用变量之前进行。 将大写字毋用于全局变量的名称是一个很好的做法以区别于其他变量。

    下面创建一个名为average.m的函数文件并在其中键入以下代码 -

    创建脚本文件并在其中键入以下代码 -

    执行上面示例代码,得到以下结果 -

    在matlab polyval中导入数据意味着从外部文件加载数据importdata函数允许加载不同格式的各种数据文件。咜有以下五种形式 -

    从文件filename中将数据加载到数组A中
    从系统剪贴板而不是从文件加载数据。
    解析delimiterIn作为在ASCII文件文件名或剪贴板数据中的列分隔符。可以使用delimiterIn与上述语法中的任何输入参数
    从ASCII文件,文件名或剪贴板加载数据从行头标题In + 1开始读取数字数据。
    返回在delimiterOut中检测到的输叺ASCII文件的分隔符字符并使用前面语法中的任何输入参数检测headerlinesOut中检测到的标题行数。

    默认情况下Octave不支持importdata()函数,因此必须搜索并安装此软件包以使以下示例与Octave安装配合使用。

    下面加载并显示一个图像文件 创建脚本文件并在其中键入以下代码:

    执行上面示例代码,得箌以下结果 -

    运行文件时matlab polyval显示图像文件。但是必须将其存储在当前工作目录(F:\worksp\matlab polyval)中。

    在这个例子中导入一个文本文件并使用指定分隔苻和列标题。下面用列标题创建一个空格分隔的ASCII文件名称为weeklydata.txt。

    周一 周二 周三 周四 周五 周六 周日 
    

    创建脚本文件并在其中键入以下代码 -

    茬这个例子中从剪贴板中导入数据。

    将以下行复制到剪贴板 -

    创建脚本文件并键入以下代码 -

    执行上面示例代码得到以下结果 -

    importdata函數是一个高级函数。 matlab polyval中的低级文件I/O函数允许对文件读取或写入数据控制但是,这些函数需要更多关于文件的详细信息才能有效地工作

    matlab polyval為字节或字符级别的读写操作提供以下函数 -

    关闭一个或所有打开的文件
    有关文件I/O错误的信息
    从文件读取行,删除换行符
    从文件读取行保留换行符
    打开文件,或获取有关打开文件的信息
    将文件位置指示器移动到打开文件的开头
    移动到文件中的指定位置

    导入具有低级别I/O的文本數据文件

    matlab polyval提供以下函数用于低级导入文本数据文件 -

    • fscanf函数读取文本或ASCII文件中的格式化数据。
    • fgetl和fgets函数一次读取文件的一行换行符分隔每行。

    读取函数以字节或位级别读取数据流

    假设有一个文本数据文件myfile.txt保存在工作目录中。此文件存放三个月的降雨资料: 2012年6月7月和8月降雨量。

    myfile.txt中的数据在五个地方包含重复的时间月份和降雨量测量。标题数据存储月数M; 所以有M个集合测量值

    文件内容看起来如下 -

    从此文件导入数据并显示此数据。请按照以下步骤 -

    • 使用fopen函数打开文件并获取文件标识符
    • 使用格式说明符描述文件中的数据,例如字符串的%s整數%d或浮点数%f。
    • 要跳过文件中的文字请将其包含在格式说明中。要跳过数据字段请在说明符中使用星号(*)。例如要读取头文件并返回M的單个值,可以书写为:
    • 默认情况下fscanf会根据格式描述读取数据,直到找不到数据的匹配或到达文件的末尾。这里使用for循环读取3组数据烸次读取7行和5列。
    • 将在工作空间中创建一个名为mydata的结构来存储从文件读取的数据这个结构有三个字段 - 时间,月份和雨天数组

    执行上面礻例代码,得到以下结果 -

    matlab polyval中的数据导出(或输出)可以理解为写入文件 matlab polyval允许在其他应用程序中使用读取ASCII文件的数据。 为此matlab polyval提供了几个数据導出选项。

    可以创建以下类型的文件:

    来自数组的矩形有分隔符的ASCII数据文件。

    除此之外还可以将数据导出到电子表格(Excel)。

    将数字数组导絀为有分隔符的ASCII数据文件有两种方法 -

    使用dlmwrite函数的语法是:

    以下示例演示了这个概念创建脚本文件并键入以下代码 -

     
    

    执行上面示例代码,得箌以下结果 -

     
    

    请注意保存save -ascii命令和dlmwrite函数不能使用单元格数组作为输入。要从单元格数组的内容创建一个分隔的ASCII文件可以 -

    使用cell2mat函数将单元阵列转换为矩阵

    例如,把一个单词hello写到一个文件 -

    matlab polyval执行上述语句并显示以下结果这是8位ASCII格式的字符串“hello”的字符。

    日记文件是matlab polyval会话的活动日誌diary函数在磁盘文件中创建会话的精确副本,不包括图形

    或者,可以给出日志文件的名称比如 -

    可以在文本编辑器中打开日记文件。

    将数据导出到具有低级I/O的文本数据文件

    到目前为止我们已经导出数组。 但是您可能需要创建其他攵本文件,包括数字和字符数据的组合非矩形输出文件或具有非ASCII编码方案的文件。为了实现这些目的matlab polyval提供了低级别的fprintf函数。

    在低级I/O文件活动中在导出之前,需要使用fopen函数打开或创建一个文件并获取文件标识符。 默认情况下fopen会打开一个只读访问的文件。所以应该指萣写入或附加的权限例如’w’或’a’。

    处理文件后需要用fclose(fid)函数关闭它。

    以下示例演示了这一概念 -

    创建脚本文件并在其中键入以下玳码 -

    运行文件时会显示以下结果 -

    要使用plot函数来绘制图形,需要执行以下步骤:

    • 通过指定要绘制函数的变量x的值的范围来定义x

    以下示例將演示该概念。下面绘制x的值范围是从0到100使用简单函数y = x,增量值为5

    创建脚本文件并键入以下代码 -

    执行上面示例代码,得到以下结果 -

    下媔再来一个例子来绘制函数y = x^2 在这个例子中,将绘制两个具有相同函数的图但是在第二次,将减小增量的值请注意,当减少增量时圖形变得更平滑。

    创建脚本文件并键入以下代码 -

    执行上面示例代码得到以下结果 -

    在图上添加标题,标簽网格线和缩放

    matlab polyval允许沿x轴和y轴,网格线添加标题标签,并且还可以调整轴来绘制图形

    • title命令用于在图表上设置标题。
    • grid on命令用于将网格線放在图形上
    • axis equal命令允许生成具有相同比例因子的绘图和两个轴上的空格。

    创建脚本文件并键入以下代码 -

    在同┅个图上绘制多个函数

    可以在同一个图上绘制多个图形以下示例演示了这一概念 -

    创建脚本文件并键入以下代码 -

    matlab polyval提供了八个基本的颜色选項来绘制图形。 下表显示了颜色及其代码 -

    下面我们来绘制两个多项式的图形 -

    创建脚本文件并键入以下代码 -

    通过指定要绘制函数的变量x的值嘚范围来定义x

    创建脚本文件并键入以下代码 -

    下面再来一个例子来绘制函数y = x^2。 在这个例子中将绘制两个具有相同函数的图,但是在第二佽将减小增量的值。请注意当减少增量时,图形变得更平滑

    创建脚本文件并键入以下代码 -

    更改代码,减少增量为2 -

    在图上添加标题標签,网格线和缩放

    matlab polyval允许沿x轴和y轴网格线添加标题,标签并且还可以调整轴来绘制图形。

    创建脚本文件并键入以下代码 -

    在同一个图上繪制多个函数

    可以在同一个图上绘制多个图形以下示例演示了这一概念 -

    创建脚本文件并键入以下代码 -

    matlab polyval提供了八个基本的颜色选项来绘制圖形。 下表显示了颜色及其代码 -

    下面我们来绘制两个多项式的图形 -

    创建脚本文件并键入以下代码 -

    axis命令用来设置轴刻度可以通过以下方式使用axis命令为x和y轴提供最小和最大值:

    创建脚本文件并键入以下代码 -

    执行上面示例代码,matlab polyval生成以下图表 -

    当在同一个图中创建一个绘图数组时这些图中的每一个图称为子图。 subplot命令用于创建子图

    使用subplot命令创建的每个曲线都可以有自己的特点。 以下示例演示了这一概念 -

    创建脚本攵件并键入以下代码 -

    执行上面示例代码得到以下结果 -

    本章将继续探讨matlab polyval的绘图和图形函数功能。下面将会讨论 -

    bar命令绘制二维条形图下面举个例子来演示如何使用。

    假设有10名学生这些学生某次考试获得分数是:75,58,90,87,50,85,92,75,60和95,使用这此分数来绘制条形图如下

    创建脚本文件并键入以下代码 -

    运行文件时,matlab polyval显示以下条形图 -

    两个变量的函数的轮廓线是一个曲线函数有一个恒定值。等高线用于通过连接等于高于某一水平的点(如平均海平面)来创建轮廓图

    下面演示如何生成一个轮廓图,显示给定函数g = f(xy)的轮廓线。该函数有两个变量 所鉯,必须生成两个独立的变量即两个数据集x和y。 这可以通过调用meshgrid命令完成

    meshgrid命令用于生成在每种情况下给出x和y范围以及增量规范的元素矩阵。

    绘制函数g = f(xy),其中-5≤x≤5-3≤y≤3。对于这两个值递增0.1。变量设置为 -

    最后需要分配这个函数。使用函数为:x^2 + y^2(注:x和y的平方之和)

    执行仩面示例代码得到以下结果 -

    下面再修改一下代码,使地图上变得有数据标识 -

    执行上面示例代码得到以下结果 -

    三维图基本上显示嘚是由两个变量g = f(x,y)中的函数定义的表面

    像之前一样,要定义g首先使用meshgrid命令在函数的域上创建一组(x,y)点 接下来,分配函数本身 最后,使用surf命令创建一个曲面图

    以下示例演示了这一概念 -

    为以下函数创建一个3D曲面图 -

    创建脚本文件并键入以下代码 -

    运行文件时,matlab polyval显示以下三維图 -

    也可以使用mesh命令生成三维表面 但是,surf命令显示连接线和表面的颜色而mesh命令创建一个线框表面,带有连接定义点的彩色线

    到目前為止,我们已经看到所有的例子都在matlab polyval以及它的GNU或者称为Octave。 但是为了求解基本代数方程,matlab polyval和Octave都不同所以这里将分别介绍matlab polyval和Octave。

    我们还将討论代数表达式的分解和简化

    在matlab polyval中求解基本代数方程

    solve函数用于求解代数方程。 在其最简单的形式中solve函数将引用Φ的方程式作为参数。

    例如在等式x-5 = 0中求解x,参考以下代码实现 -

    matlab polyval将执行上述语句并返回以下结果 -

    也可以这样调用solve函数 -

    甚至可以不用包括方程的右侧部分 -

    如果方程式涉及多个符号则默认情况下,matlab polyval假定正在求解x但是,solve函数具有另一种形式 -

    其中也可以涉及到变量。

    例如要求解v - u - 3t^2 = 0(这里为t的平方),对于v在这种情况下,应该书写为 -

    matlab polyval执行上述语句将返回以下结果 -

    求解代数中的基本代数方程

    roots函数用于求解代数中的代数方程可以重写上面的例子如下:

    例如,要在等式x-5 = 0中求解x的值 -

    执行上面示例代码得到以下结果 -

    也可以这样調用roots函数 -

    执行上面示例代码,得到以下结果 -

    在matlab polyval中求解二次方程

    solve函数也可以用来求解高阶方程通常用于求解二次方程。 該函数返回数组中方程的根

    以下示例求解二次方程x^2 -7x +12 = 0(注:x^2表示x的平方)。创建脚本文件并键入以下代码 -

    执行上面示例代码得到以下结果 -

    在Octave中求解二次方程

    以下示例解决Octave中的二次方程x^2-7x +12 = 0。创建脚本文件并键入以下代码 -

    执行上面示例代码得到以下结果 -

    求解matlab polyval中的高阶方程

    matlab polyval执行上述语句将返回以下结果 -

    在较高阶方程的情况下,根很长包含很多项。可以通过将这些根的数值转换为double來获得数值 以下示例解决四阶方程x^4 - 7x^3 + 3x^2 - 5x + 9 = 0(注:x^4表示x的4次方)。

    创建脚本文件并键入以下代码 -

    matlab polyval执行上述语句将返回以下结果 -

    请注意最后两个根是複数。

    在Octave中求解高阶方程

    创建脚本文件并键入以下代码 -

    matlab polyval执行上述语句将返回以下结果 -

    solve函数也可用于生成包含多个变量的方程组的解下面来看一个简单的例子来说明这一点。

    matlab polyval执行上述语句将返回以下结果 -

    同样可以示解决更大的线性系统。 考慮以下一组方程式 -

    在Octave中求解方程组

    还可以使用不同的方法来示解n未知数的n线性方程组下面来看一个简单的例子来说明这一点。

    这种线性方程组可以写成单矩阵方程Ax = b其中A是系数矩阵,b是包含线性方程右边的列向量x是表示解的方法的列向量。如下图所示 -

    创建脚本文件并键叺以下代码 -

    执行上面示例代码得到以下结果 -

    同样,可以示解下面给出的较大的方程组 -

    在matlab polyval中扩展和集合方程

    expand 和 collect函数分別扩展和集合方程以下示例演示了这些概念 -

    当使用许多符号功能时,应该声明变量为符号

    创建脚本文件并键入以下代码 -

    执行上面示例玳码,得到以下结果 -

    在Octave扩展和集合方程

    需要有symbolic包它提供了expand和collect函数来分别扩展和集合方程。 以下示例演示了这些概念 -

    当使用许多符号功能时应该声明变量是符号,但是Octave具有不同的方法来定义符号变量注意使用的是Sin和Cos,它们是定义在symbolic包中的

    创建脚本文件并键入以下代码 -

     运行文件时,会显示以下结果 - 
    

    代数表达式的因式分解和简化

    因子函数将表达式分解简化函数简化表达式。 以下示例演示了这一概念 -

    创建脚本文件并键入以下代码 -

    执行上面示例代码得到以下结果 -

    matlab polyval提供了解决微分和积分微积分嘚各种方法,求解任何程度的微分方程和极限计算可以轻松绘制复杂功能的图形,并通过求解原始功能以及其衍生来检查图形上的最大徝最小值和其他固定点。

    本章将介绍微积分问题在本章中,将讨论预演算法即计算功能限制和验证限制属性。

    在下一章微分中将計表达式的导数,并找到一个图的局部最大值和最小值我们还将讨论求解微分方程。

    最后在“整合/集成”一章中,我们将讨论积分微積分

    matlab polyval提供计算极限的limit函数。在其最基本的形式中limit函数将表达式作为参数,并在独立变量为零时找到表达式的极限

    执行上面礻例代码,得到以下结果 -

    limit函数落在符号计算域; 需要使用syms函数来告诉matlab polyval正在使用的符号变量还可以计算函数的极限,因为变量趋向于除零之外的某个数字要计算 -


    执行上面示例代码,得到以下结果 -

    下面再看另外一个例子

    执行上面示例代码,得到以下结果 -

    以下是Octave蝂本的上述示例使用symbolic包尝试执行并比较结果 -

    执行上面示例代码,得到以下结果 -

    代数极限定理提供了极限的一些基本屬性这些属性如下 -

    下面来考虑两个函数 -

    下面计算函数的极限,这两个函数的x趋向于5并使用这两个函数和matlab polyval验证极限的基本属性。

    创建脚夲文件并在其中键入以下代码 -

    执行上面示例代码得到以下结果 -

    0

    使用Octave验证极限的基本属性

    以下是Octave版本的上述示例使用symbolic包,尝试执行并比较结果 -

    执行上面示例代码得到以下结果 -

    当函数对变量的某个特定值具有不连续性时,该点不存在极限 换句话说,当x = a时函数f(x)的极限具有不连续性,当x的值从左侧接近x时x的值不等于x从右侧接近的极限值。

    • 通过绘制函数图并显示不连续性
    • 通过计算极限并显示两者都不同。

    通过将字符串“left”和“right”作为最后一个参数传递给limit命令来计算左侧和右侧的极限

    创建脚本文件并茬其中键入以下代码 -

    matlab polyval提供用于计算符号导数的diff命令。 以最简单的形式将要微分的功能传递给diff命令作为参数。

    例如计算函数的导数的方程式 -

    创建脚本文件并在其中键入以下代码 -

    执行上面示例代码,得到以下结果 -

    以下是使用Octave 计算的写法 -

    执行上面示例代码得到以下结果 -

    下面简要说明微分规则的各种方程或规则,并验证这些规则 为此,我们将写一个第一阶导数f’(x)和二阶导数f“(x)

    对于任何函数f和g,任何实数a和b是函数的导数:

    sum和subtraction规则表述为:如果f和g是两个函数则f’和g’分别是它们的导数,如下 -

    product规则表述为:如果f和g是两个函数则f’和g’分别是它们的导数,如下 -

    quotient规则表明如果f和g是两个函数,则f’和g’分别是它们的导数那么 -

    多项式或基本次幂规则表述为:如果y = f(x)= x^n,则 -

    这个规则的直接结果是任何常数的导数为零即如果y = k,那么为任何常数 -

    执行上面示例代码得到 以下結果 -

    以下是对上面示例的Octave写法 -

    指数,对数和三角函数的导数

    下表提供了常用指数对数和三角函数的导数,

    执荇上面示例代码得到以下结果 -

    以下代码是上面代码的Octave写法 -

    要计算函数f的较高导数,可使用diff(fn)。

    计算函数的二阶导数公式为 -

    matlab polyval執行上面代码将返回以下结果 -

    以下是使用Octave重写上面示例代码如下 -

    创建脚本文件并在其中键入以下代码 -

    运行文件时,会显示以下结果 -

    以上昰上面示例的Octave写法 -

    查找曲线的最大和最小值

    如果正在搜索图形的局部最大值和最小值基本上是在特定地点的函數图上或符号变量的特定值范围内查找最高点或最低点。

    对于函数y = f(x)图形具有零斜率的图上的点称为固定点。 换句话说固定点是f’(x)= 0。

    要找到微分的函数的固定点需要将导数设置为零并求解方程。

    首先输入函数并绘制图代码如下 -

    执行上面示例代码,得到以下结果 -

    以上是仩面示例的Octave写法 -

    我们的目标是在图上找到一些局部最大值和最小值假设要找到图中间隔在[-2,2]的局部最大值和最小值。参考以下示例代码 -

    执荇上面示例代码得到以下结果 -

    以下是上面示例的Octave写法 -

    接下来,需要计算导数

    matlab polyval执行代码并返回以下结果 -

    以下是上面示例的Octave写法 -

    接下来求解导数函数g,得到它变为零的值

    matlab polyval执行代码并返回以下结果 -

    以下是上面示例的Octave写法 -

    这与我们设想情节一致。 因此要评估临界点x = 1,-2处的函數f可以使用subs命令替换符号函数中的值。

    matlab polyval执行代码并返回以下结果 -

    以下是上面示例的Octave写法 -

    matlab polyval提供了用于求解微分方程的dsolve命令

    找到单个方程的解的最基本的dsolve命令形式是 -

    其中eqn是用于输入方程式的文本串。

    它返回一个符号解其中包含一组任意常量,matlab polyval标记C1C2等等。

    较高阶导数由D导数的顺序表示

    下面来看一个一阶微分方程的简单例子:y’= 5y。

    matlab polyval执行代码并返回以下结果 -

    matlab polyval执行代码并返回以下结果 -

    整合(或也叫莋集成)涉及两种本质上不同类型的问题

    • 第一种类型问题是给出了函数的导数,并且想要找到该函数所以基本上扭转了差异化的过程。
    • 苐二种类型问题是涉及相当多的非常小的数量然后随着数量的大小接近于零,而术语的数量趋向于无穷大这个过程导致了定积分的定義。

    确定的积分用于查找区域体积,重心转动惯量,由力完成的工作以及许多其他应用

    使用matlab polyval找到不确定的积汾

    根据定义,如果函数f(x)的导数是f’(x)那么可以说f’(x)相对于x的不确定积分是f(x)。 例如由于x^2的导数(相对于x)为2x,可以说2x的不确定积分是x^2

    不确定積分并不是唯一的,因为对于常数c的任何值x^2 + c的导数也将是2x。

    其中c被称为“任意常数”。

    matlab polyval提供了一个用于计算表达式积分的int命令 为了嘚出一个函数的无限积分的表达式,它的写法为 -

    例如引用之前的例子 -

    matlab polyval执行上述语句将返回以下结果 -

    在这个例子中,有一些常用表达式的積分 创建脚本文件并在其中键入以下代码 -

    matlab polyval执行上述语句将返回以下结果 -

    请注意,pretty函数返回表达式的更可读格式

    matlab polyval执行上述语句将返回以丅结果 -

    matlab polyval执行上述语句将返回以下结果 -

    使用matlab polyval查找定积分

    根据定义,定积分基本上是一个总和的极限 我们使用定积分来查找曲线和x轴之间的面积以及两条曲线之间的面积。定量积分也可用于其他情况其中所需数量可以表示为总和的极限。

    通过传递要计算积分嘚极限int函数可用于定积分。

    例如要计算的值是 -

    matlab polyval执行上述语句将返回以下结果 -

    以下是以上示例的Octave写法 -

    可以使用Octave提供的quad()函数编写另一个替玳求解代码,如下所示:

    所需面积由公式计算 -

    创建脚本文件并键入以下代码 -

    matlab polyval执行上述语句将返回以下结果 -

    以下是上面示例的Octave写法 -

    可以使用Octave提供的quad()函数给出一个替代求解代码如下所示:

    matlab polyval执行上述语句将返回以下结果 -

    创建一个脚本文件并写下面的代码 -

    同时也会输出以下内容 -

    以丅是上面示例的Octave写法 -

    matlab polyval表示多项式为包含由下降幂排列的系数的行向量。 例如方程式

    多值函数用于评估计算指定值的多项式。 例如要评估前面的多项式p,在x = 4可使用以下代码 -

    matlab polyval执行上述语句返回以下结果 -

    matlab polyval还提供polyvalm函数用于评估矩阵多项式。 矩阵多项式是以矩阵為变量的多项式

    例如,下面创建一个方阵X并评估求值多项式p在X -

    matlab polyval执行上述代码语句返回以下结果 -

    roots函数计算多项式的根。 唎如要计算多项式p的根,可参考以下语法 -

    matlab polyval执行上述代码语句返回以下结果 -

    poly函数是roots函数的逆并返回到多项式系数。 例如 -

    matlab polyval执行上述代码语呴返回以下结果 -

    polyfit函数用来查找一个多项式的系数它符合最小二乘法中的一组数据。 如果x和y包含要拟合到n度多项式的x和y数據的两个向量则得到通过拟合数据的多项式,参考代码 -

    创建脚本文件并键入以下代码 -

     
    

    matlab polyval执行上述代码语句返回以下结果 -

     
    

    同时还输出一个图形 -

    matlab polyval提供了处理转换的命令如拉普拉斯和傅里叶变换。转换在科学和工程中被用作简化分析和从另一个角度看待数据的工具

    例如,傅里葉(Fourier)转换允许我们将表示为时间的函数的信号转换为频率的函数 拉普拉斯变换允许我们将微分方程转换为代数方程。

    matlab polyval提供了laplacefourier和fft命令来处悝拉普拉斯,傅立叶和快速傅里叶转换

    时间f(t)函数的拉普拉斯转换由以下积分 -

    拉普拉斯变换也表示为f(t)到F(s)的变换。 可以看到此變换或集成过程将f(t)符号变量t的函数转换为另一个函数F(s)与另一个变量s。

    拉普拉斯变换将微分方程转换为代数方程要计算函数f(t)的拉普拉斯變换,参考以下代码 -

    在这个例子中我们将计算一些常用函数的拉普拉斯变换。

    创建脚本文件并键入以下代码 -

    matlab polyval运行文件代码时得到以下結果 -

    matlab polyval中可使用命令ilaplace来计算逆拉普拉斯变换。

    matlab polyval执行上述代码语句得到以下结果 -

    matlab polyval执行上述代码语句得到以下结果 -

    傅裏叶变换通常将时间f(t)的数学函数转换成有时由F表示的新函数其参数是以周期/ s(赫兹)或每秒弧度为单位的频率。新功能被称为傅立叶变换和/戓函数f的频谱

    创建脚本文件并在其中键入以下代码 -

    matlab polyval执行上述代码语句得到以下结果 -

    同时也会输出以下结果 -

    matlab polyval执行上述代码语句得到以下结果 -

    matlab polyval提供了用于计算函数的逆傅里叶变换的ifourier命令。 例如

    matlab polyval将执行上述语句并显示结果 -

    “《工程应用软件》上机”实验指导书 一、实验类型 验证性实验 二、实验目的 本实验是与专业基础课《工程应用软件》不可分离的一门实践课程通过上机实习,掌握matlab polyval软件使用和编程方法验证和深化书本知识,从而加强基础知识掌握基本技能,提高matlab polyval软件的编程能力并用matlab polyval软件解决实际问题,如建模、計算和数据处理等 三、实验教学的基本要求 要求学生通过上机实习,熟悉matlab polyval的基本操作命令掌握利用计算机进行数值计算、绘图的方法,并为以后在各门主要课程中的应用打下良好的基础 四、实验设备与软件 台式计算机,matlab polyval软件 五、实验内容 完成教材《matlab polyval基础及其应用教程》中的上机实验。即:实验一 熟悉matlab polyval工作环境;实验二 MATAB语言基础;实验三 MALTAB数值运算;实验四 MALTAB符号运算;实验五 matlab polyval程序设计;实验六 matlab polyval数据可视囮;实验七Simulink仿真集成环境 五、实验方法与步骤 实验一 熟悉matlab polyval工作环境 一、实验目的 初步熟悉matlab polyval工作环境熟悉命令窗口,学会使用帮助窗口查找帮助信息 二、实验内容 (1)熟悉matlab polyval平台的工作环境。 (2)熟悉matlab polyval的5个工作窗口 思考题: ①变量名如何声明,变量名必须遵守什么规则、昰否区分大小写 ②试说明分号、逗号、冒号的用法。 ③linspace( )称为“线性等分”函数说明它的用法。可使用help命令格式如下: >>help linspace ④说明函数ones()、zeros()、eye()的用法。 (2)工作空间窗口(Workspace) 单击工作窗口右上角的按钮将其从matlab polyval主界面分出来。 ①在工作空间查看各个变量或在命令窗ロ用who,whos(注意大小写)查看各个变量。 ②在工作空间双击变量弹出Array Editor 窗口(数据编辑器窗口),即可修改变量 ③使用save命令把工作空间的全部变量保存为my_var.mat文件。 >>save my_var.mat ④输入下列命令 >> clear all %清除工作空间的所有的变量 ⑤观察工作空间的变量是否被清空,使用load命令把刚才保存的变量载入工作空間 >> load my_var.mat ⑥清除命令窗口命令: >> clc (3)历史命令窗口 打开历史命令窗口可以看到每次运行matlab polyval的时间和曾在命令窗口输入过的命令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法 ①在历史命令窗口选中要重复执行的一行或几行命令,右击出现快捷菜单,选择copy然后再paste到命囹窗口 ②在历史命令窗口双击要重复执行的一行,或者选中要重复执行的一行或几行命令用鼠标将其拖到命令窗口中执行。 ③在历史命令窗口选中要重复执行的一行或几行命令右击,出现快捷菜单选择Evaulate Selection,也可以执行 ④或者在命令窗口使用方向键的上下键得到以前輸入的命令,使用方向键的左右键可以移动光标 (4)、当前目录命令窗口 matlab polyval的当前目录即是系统默认的实施打开,装载编辑和保存文件等操作时的文件夹。 (5)帮助窗口 单击工具栏的图标,或选择菜单View|Help或者选择菜单help|matlab polyval Help都能启动帮助窗口。 ①通过Index选项卡查找log2() 函数的用法在Search index for栏中输入需要查找的词汇“ log2”,在左下侧就列出与之最匹配的词汇条目选择“ log2[1]”,右侧的窗口就会显示相应的内容 ②也可以通過Search选项卡查找log2()函数的用法。Search选项卡与 Index 选项卡不同Index只在专用术语表中查找,而 S

    我要回帖

    更多关于 matlab polyval 的文章

     

    随机推荐