Mathematica教程07自定义函数.ppt

上传人:xin****828 文档编号:6289329 上传时间:2020-02-21 格式:PPT 页数:22 大小:396.37KB
返回 下载 相关 举报
Mathematica教程07自定义函数.ppt_第1页
第1页 / 共22页
Mathematica教程07自定义函数.ppt_第2页
第2页 / 共22页
Mathematica教程07自定义函数.ppt_第3页
第3页 / 共22页
点击查看更多>>
资源描述
自定义函数 简单函数的定义复杂情况纯函数函数的属性 简单函数的定义 自定义函数的方法f x x 2 yf 2 f y f a 1 在例中 In 1 定义了数学意义上的函数f x x 2 y 自定义函数仍用 函数名 自变量 的形式 其中自变量x用x 表示 而 用 表示 等号右边的数学表达式按常规形式 这一步执行后 没有输出结果 但Mathernatica记忆了关系式f x x 2 y 在例中首先定义了自变量是u v的二元函数f u v u 2 v 2 在In 3 中以u 1 v l x代入得到函数值1 l x 2 在In 4 和In 5 中就是对表达式1 1 x 2求导和积分 这说明 对自定义函数仍可按人的意图进行各种符号运算 不过在Mathematica中自定义函数时 格式较为特殊 容易出现错误 x与x 的区别 g x x 2 y f x x 2 yg 2 f 2 g y f y f x 可以定义函数 g x 不能定义一个函数Mathematica只记住了符号g x 表示x 2 y 但g 2 和g y 等并没有值被求出 Mathematics约定f x 中的x 表示函数f的自变量 而f x 表示函数f当自变量取值为x时的函数值 与 的差别 如果将例中的 改用 却一切正常 看不出问题 但它们的差别可由下例说明 两种等号的差别之一 x 2 f x 2x g x 2x f gf 3 g 3 在例中因为开始己经定义x 2 当使用 定义f x 时 立即将右边的数学表达式进行求值 将x 2代入得到函数定义式f x 4 Mathematica记忆的是f x 4 而使用 时 Mathematics总是将输入的函数定义式原样记忆 如果事先没有定义x 2 则不会出现上述问题 被Mathematica记忆的仍是f x 2x 使用表达式f x 2x与使用表达式f x 2x没有区别 再求f 3 时都是将x 3代入定义式右边的数学表达式 得到6 也就是说 都可以理解成了f x 2x了 因此两种等号没有差别 二种等号的差别之二 在例中前一个函数定义后右边的积分立即被求出 而后一个函数在定义后并不进行积分 再求函数值时才进行积分 使用 查看可知 被Mathematica记忆的函数表达式不同 使用 时立即对右边的数学表达式进行计算 使用 时右边的数学表达式不变 当求函数值时才进行计算 定义函数时 两种等号都可以使用 应当弄清两者的差别适当选用 不要造成定义函数必须使用 的错觉 由多个表达式定义的函数 可以使用递推公式定义函数 自定义计算n 的函数 f 0 1 f n nf n 1 f 10 说明 在例中In 1 定义了函数值f 0 In 2 的函数定义式是递推公式 由此实际上定义了f n n 但以上定义有缺陷 如果求f 0 5 就会出错 因为Mathematica并不认为n表示非负整数 解决方法是用n Integer Positive替代n 说明n是整数 头为Integer 并且满足是正数的条件 其中问号是后一条件的分隔符 参数个数不确定的函数 定义一个函数时 允许事先对参数指定默认值 如果使用时不给出参数值 就自动将默认值作为参数值 这样的参数格式如下 x v其中冒号后面的v表示参数x的默认值 f x y 0 x 2 y 2 f 3 f 3 4 以上In 1 中定义了第2个参数的默认值为0 这样在求值时允许不给出第2个参数的值 但是如果两个参数都使用默认值 就会出问题 在In 2 中就无法识别所给的一个参数值究竟是赋给哪一个参数的 当只有一个可选参数时 使用以上方法是最方便的 复杂情况 1 参数的一般表示法 可以表示任何一个表达式x 代表一个名为x的表达式 x h代表一个名为x附加有限制性说明h的表达式 可以代表任何一个或多个表达式x 可以代表名为x的一个或多个表达式 x h代表名为x附加说明h的一个或多个表达式 可以代表任何零个或多个表达式x 可以代表名为x的零个或多个表达式 x h代表名为x附加说明h的零个或多个表达式 f 2a f x f y 2 f 1 2 说明 上例定义的是一元函数 无论自变量取何值都得到同一函数值 实际上定义了一个常值函数 最后的f 1 2 是不合法的 因为一个下划线只能代表一个参数 Mathematica不能求值 f x y g ab f a f 1 2 s g g r g 1 2 说明 上述两个例子演示了单下划线 双下划线 三下划线的区别 一然而它们却没有实用价值 因为它们时函数定义式右边的数学表达式不起作用 真正有实用价值的应用是自定义带有可选参数的函数 Plotsin a b opt Plot Sin x x a b opt Plotsin 0 2Pi AxesLabel t r AxesOrigin Pi 0 可选项可以是任意多个或没有 因而在定义式中使用了三下划线 f x 0 x g x y xy f 1 2 3 4 5 g 1 2 3 4 5 说明 这两个自定义函数并不复杂 但会使人感觉到 使用个数不确定的参数 既令人费解又容易出错 以上作为函数参数使用的带有下划线的那些表达式称为模式 模式指明了参数的结构与名称 设置可选参数默认值的普遍方法如果可选参数较多 可以使用以下两种方法设置默认值 SetOptions f option1 value1 设置函数f的一个或多个可选参数的默认值 Options f option1 value1 设置函数f的全部可选参数的默认值 以上两种设置方法的差别在于 后一个是设置全部可选参数的默认值 而前者可以只设置或改变部分默认值 后一函数还可以用于查阅默认值 Options f a 1 b 2 f x opt ax b opt Options f f f 2 f 2 b 3 f 2 a 2 f 2 a 2 b 3 以上函数的定义式的形式为 函数表达式 输入的可选参数表 默认的可选参数表 执行过程是 首先将非可选参数的值代入函数表达式 然后将输入的可选参数表中给出的可选参数值代入函数表达式 因为用户给出的可选参数值先进行替换 就不会再用默认值替换了 用户没有给出值的可选参数 最后一律被默认值替换 这里需要注意 opt 的格式 是将所有输入的可选参数表达式放入一个表中 这是操作符 要求的 纯函数 纯函数的表达式Mathematica还使用一种特殊的函数表示式 能定义一种没有函数名字的函数 称这种函数为纯函数表达式 Function 自变量 函数表达式 表示一个函数 Function x x 2 Function x x 2 2 Function x x 2 3 也可以定义多元纯函数 Function x y Sin x Cos y Function x y Sin x Cos y 2 3 纯函数表达式的缩写形式 以上纯函数表达式比普通函数的表达式还复杂 需要键入更多的字符 然而改用纯函数的缩写形式就方便了 缩写形式是 函数表达式 用 替代Function并省略自变量一项 其中一元自变量用特殊符号 表示 多元时用 n表示第n个自变量 2 f Sin 1 Cos 2 f 2 3 说明 在例中In 1 是前例中定义的纯函数的缩写形式 在Out 1 中的 1与 意义相同 都表示自变量 缩写形式使纯函数表示法大大简化 用 字符表示自变量 用 表示纯函数 In 2 中的表达式 2 即 1 2 2 表示当 1 2时的函数值 In 3 中将纯函数用f表示 因此In 4 中的f 2 3 也是求纯函数的函数值 引入纯函数 实际上给出了另一种定义函数f x y sin x cos y 的方法 而且不必考虑自变量使用什么字符表示 还有符号 表示所有自变量 n表示从第n个起往后的所有自变量 函数的属性 查看函数的属性函数的属性用于指明函数所具有的某些特殊性质 Mathematica的内部函数大都带有一些属性 也可以给自定义函数添加属性 查看Sin x 的属性 Attributes Sin 查看 建立和清除属性的Attributes f 查看名为f的函数的属性 Attributes f attr1 attr2 设置f的属性Attributes f 设置f的无任何属性 添加和清除属性的函数 SetAttributes f attr1 attr2 添加属性到f的属性表中ClearAttributes f attr1 attr2 清除f的指定属性Clear f 清除f的定义但不清除属性 ClearAll f 清除f的定义和属性但不清除符号f Remove f 清除符号f 常用的函数属性 1 ProtectedProtected使函数的定义式受到保护 不能重新定义 Mathematica的内部函数都有此属性 以防被用户修改 除了使用上面列出的设置 添加 清除函数外 还有对这一属性的专门操作函数 Protect f 给函数f加上Protected属性 UnProtect f 清除函数fProtected属性 注意 内部函数也能被解除保护 重新定义和重新加上保护 但重启Mathematica时自动恢复原状 f x 2xProtect f ff x 3x 2 ReadProtected属性ReadProtected使函数的定义式不能用 查看 但是并不保护这个函数 f x 2x SetAttributes f ReadProtected f f x 3x f 2 3 Locked属性Locked将函数的属性锁定 既不能修改也不能清除 但是函数的定义式可以改变 当未加保护属性时 4 Listable有属性Listable的函数能将f a b c 变成 f a f b f c Sin 1 2 3 5 NumericFunction如果函数具有属性NumericFunction 当自变量是数时则Mathematica认为函数值也是数 例如Sin x 有此属性
展开阅读全文
相关资源
相关搜索

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


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

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


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