- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
mathematics第5讲方案策划.ppt
软 件 介 绍;
5.1 自定义函数
5.2 函数的应用;5.1 自定义函数
前面几章所介绍的各种函数都是在Mathenatiea系统中给好定义、明确功能,提供给用户直接调用的。
但在实际问题中还有许多函数因为用户特殊需要,而系统中没有定义,在这种情况下需要由用户自己来给出定义,以供后面使用的方便,这就是下面要介绍的自定义函数。;5.1.1 自定义一元函数
5.1.2 自定义多元函数
5.1.3 自定义函数的保存与重新调出;5.1.1 自定义一元函数
自定义一元函数方法如下:
f [x_] := 自选表达式
例如f[x_] := 2x + 3等,如果将此式同数学中常用的函数定义符号f(x)=2x+3相比较,容易看到二者间的差别。
按照Mathematica的规定,应该将圆括号换为专用于函数的方括号,即f[x]=2*x+3。
于是二者间的主要差别有二:
一是自变量“x_”与“x”的差别,
二是定义符“:=”与“=”的差别。;5.1.1 自定义一元函数
(1) 先看,x_与x功能上的差别
【例1-1】
f[x_]:= 2 x + 3b;
f[x]
f[y]
f[b]
f[{1, 2, 3}];5.1.1 自定义一元函数
(1) 先看,x_与x功能上的差别
【例1-1】
g[x]:= 2x + 3b;
g[x]
g[y]
无定义,找不到与右端表达式相匹配的y,原样输出
g[b]
g[{1, 2, 3}];5.1.1 自定义一元函数
(1) 先看,x_与x功能上的差别
上面例子说明:
① 自定义函数符号f[x_] := 2x + 3b中的x_(在x后面必须紧跟着加一个下划线)同数学函数符号f(x)中x的功能基本上一样,都是起着自变量的作用,
在Mathemtica里将x_称为规则变量或模式变量,
而f[x]中的x类似于数学里的一个常量,即f[x]只代表f[x_]在某一点的值。;5.1.1 自定义一元函数
(2) 再看“=”与“:=”功能上的差别
差别是:前者为立即赋值, 后者为延时赋值
亦即使用“=”号时,右边表达式在定义时被立即赋值,而使用“:=”号时,右边的表达式在定义时暂不赋值,直到被调用时才被赋值。
请看下面的例子:;5.1.1 自定义一元函数
(2) 再看“=”与“:=”功能上的差别
请看下面的例子:
【例1-2】
Clear[f, g];
x = 2;
f[x_] = x^2;
g[x_] := x^2;
f[3]
g[3];5.1.1 自定义一元函数
(2) 再看“=”与“:=”功能上的差别
上面例子说明,f[x_] = x^2在定义时便被赋???
x = 2,在调用它时,f[3]中的值已是22了,
而g[x_] := x^2在定义时暂时不赋值,直到调用g[3]时才被赋值g[3] = 32。
在使用自定义函数时,要特别注意到它与数学中已经习惯使用的函数符号f(x)在这两点上的不同,以避免一些不必要错误的发生。;5.1.1 自定义一元函数
(2) 再看“=”与“:=”功能上的差别
例中设置开头语句Clear[f, g],是为了清除掉前面对f与g的所有定义,否则容易引起同例1中f,g的混淆,常用的清除函数有:
f[x_] :=. 清除f[x_]的定义
Clear[f] 清除f的所有定义;5.1.1 自定义一元函数
说明:
(1) x_的使用使x可作自变量:若f[x]=3+x,则f[x]与f[y]不同
(2) :=为延时赋值,每次调用时才计算,大多数情况下与赋值=产生相同的结果,但有时必须使用。
例如,定义递归函数必须使用延时赋值:
f[0] = 1;
f[n_] := n f[n - 1];
f[7];5.1.1 自定义一元函数
说明:
分段函数定义也必须使用延时赋值:
f[x_] := Which[
x 0, x^2,
x 5, x^3,
True, 0]
(3) =较快,:=较慢;上一讲中铁路托运行李问题,可以编写代码如下:
f[w_] : = If[w = 50,
0.25 w,
If[w = 100,
0.35 w - 5,
0.45 w - 15]]
f[40];【例3-15】用Newdon迭代法求方程x=ex – 2在1.2附近的根。
流程图:
代码如下:
f[x_] := x - Exp[x] + 2;
x0 = 1.2;
While[Abs[x - x0] 10^(-
文档评论(0)