




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自定义函数,简单函数的定义复杂情况纯函数函数的属性,简单函数的定义,自定义函数的方法fx_:=x2+yf2fyfa-1在例中,In1定义了数学意义上的函数f(x)=x2+y,自定义函数仍用:函数名自变量的形式,其中自变量x用x_表示,而=用:=表示,等号右边的数学表达式按常规形式.这一步执行后,没有输出结果,但Mathernatica记忆了关系式fx_:=x2+y。,在例中首先定义了自变量是u,v的二元函数f(u,v)=u2-v2,在In3中以u=1,v=l+x代入得到函数值1-(l+x)2,在In4和In5中就是对表达式1-(1+x)2求导和积分。这说明,对自定义函数仍可按人的意图进行各种符号运算。不过在Mathematica中自定义函数时,格式较为特殊,容易出现错误。,x与x_的区别,gx:=x2+y;fx_:=x2+yg2;f2gy;fyfx_可以定义函数,gx不能定义一个函数Mathematica只记住了符号gx表示x2+y,但g2和gy等并没有值被求出。Mathematics约定fx中的x_表示函数f的自变量,而fx表示函数f当自变量取值为x时的函数值。,“:=”与“=”的差别,如果将例中的:=改用=,却一切正常,看不出问题.但它们的差别可由下例说明。两种等号的差别之一:x=2;fx_=2x;gx_:=2x;?f?gf3g3,在例中因为开始己经定义x=2,当使用“=”定义f(x)时,立即将右边的数学表达式进行求值,将x=2代入得到函数定义式fx_=4,Mathematica记忆的是fx_=4。而使用“:=”时,Mathematics总是将输入的函数定义式原样记忆。,如果事先没有定义x=2,则不会出现上述问题,被Mathematica记忆的仍是fx=2x.使用表达式fx_=2x与使用表达式fx_:=2x没有区别,再求f3时都是将x=3代入定义式右边的数学表达式,得到6。也就是说,都可以理解成了f(x)=2x了,因此两种等号没有差别。二种等号的差别之二,在例中前一个函数定义后右边的积分立即被求出,而后一个函数在定义后并不进行积分,再求函数值时才进行积分.使用“?”查看可知,被Mathematica记忆的函数表达式不同。使用“=”时立即对右边的数学表达式进行计算,使用“:=”时右边的数学表达式不变,当求函数值时才进行计算。定义函数时,两种等号都可以使用,应当弄清两者的差别适当选用,不要造成定义函数必须使用“:=”的错觉。,由多个表达式定义的函数,可以使用递推公式定义函数。自定义计算n!的函数。f0=1;fn_:=nfn-1;f10说明:在例中In1定义了函数值f0,In2的函数定义式是递推公式,由此实际上定义了f(n)=n!.但以上定义有缺陷,如果求f0.5就会出错,因为Mathematica并不认为n表示非负整数。解决方法是用n_Integer?Positive替代n_,说明n是整数(头为Integer)并且满足是正数的条件,其中问号是后一条件的分隔符.,参数个数不确定的函数,定义一个函数时,允许事先对参数指定默认值,如果使用时不给出参数值,就自动将默认值作为参数值。这样的参数格式如下:x_:v其中冒号后面的v表示参数x的默认值.fx_,y_:0:=x2+y2;f3;f3,4以上In1中定义了第2个参数的默认值为0,这样在求值时允许不给出第2个参数的值。但是如果两个参数都使用默认值,就会出问题,在In2中就无法识别所给的一个参数值究竟是赋给哪一个参数的。当只有一个可选参数时,使用以上方法是最方便的。,复杂情况,(1)参数的一般表示法_可以表示任何一个表达式x_代表一个名为x的表达式.x_h代表一个名为x附加有限制性说明h的表达式._可以代表任何一个或多个表达式x_可以代表名为x的一个或多个表达式.x_h代表名为x附加说明h的一个或多个表达式._可以代表任何零个或多个表达式x_可以代表名为x的零个或多个表达式.x_h代表名为x附加说明h的零个或多个表达式.,f:=2a;fx;fy+2;f1,2说明:上例定义的是一元函数,无论自变量取何值都得到同一函数值,实际上定义了一个常值函数。最后的f1,2是不合法的,因为一个下划线只能代表一个参数,Mathematica不能求值。f_:=x+y;g_:=ab;fa;f1,2,s;g;gr;g1,2说明:上述两个例子演示了单下划线、双下划线、三下划线的区别,一然而它们却没有实用价值,因为它们时函数定义式右边的数学表达式不起作用.真正有实用价值的应用是自定义带有可选参数的函数。,Plotsina_,b_,opt_:=PlotSinx,x,a,b,opt;Plotsin0,2Pi,AxesLabel-t,r,AxesOrigin-Pi,0可选项可以是任意多个或没有,因而在定义式中使用了三下划线.fx_:=0+x;gx_,y_:=xy;f1,2,3,4,5;g-1,2,3,4,5说明:这两个自定义函数并不复杂,但会使人感觉到,使用个数不确定的参数,既令人费解又容易出错。以上作为函数参数使用的带有下划线的那些表达式称为模式,模式指明了参数的结构与名称,设置可选参数默认值的普遍方法如果可选参数较多,可以使用以下两种方法设置默认值:SetOptionsf,option1-value1,.设置函数f的一个或多个可选参数的默认值。Optionsf=option1-value1,.设置函数f的全部可选参数的默认值。以上两种设置方法的差别在于,后一个是设置全部可选参数的默认值,而前者可以只设置或改变部分默认值。后一函数还可以用于查阅默认值。,Optionsf=a-1,b-2;fx_,opt_:axb/.opt/.Optionsf?f;f2;f2,b-3;f2,a-2;f2,a-2,b-3以上函数的定义式的形式为:函数表达式/.输入的可选参数表/.默认的可选参数表。执行过程是:首先将非可选参数的值代入函数表达式,然后将输入的可选参数表中给出的可选参数值代入函数表达式,因为用户给出的可选参数值先进行替换,就不会再用默认值替换了。用户没有给出值的可选参数,最后一律被默认值替换。这里需要注意opt的格式,是将所有输入的可选参数表达式放入一个表中,这是操作符“/.”要求的。,纯函数,纯函数的表达式Mathematica还使用一种特殊的函数表示式,能定义一种没有函数名字的函数,称这种函数为纯函数表达式:Function自变量,函数表达式表示一个函数。Functionx,x2;Functionx,x22;Functionx,x23也可以定义多元纯函数。Functionx,y,SinxCosy;Functionx,y,SinxCosy2,3,纯函数表达式的缩写形式,以上纯函数表达式比普通函数的表达式还复杂,需要键入更多的字符。然而改用纯函数的缩写形式就方便了,缩写形式是:函数表达式SetAttributesf,ReadProtected?f;fx_:=3x;f2(3)Locked属性Locked将函数的属性锁定,既不能修改也不能清除,但是函数的定义
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基本公共服务现状及其发展趋势分析
- 产品创新与市场适应度对比表格
- 全球化背景下的跨文化交流能力练习题
- 抓教风促学风教学秩序整改月活动方案
- 混凝土养护与拆模方案
- 粉橙色扁平风总结汇报
- 制药工程-毕业实习报告
- 加气混凝土砌块专项施工方案
- 北京中展国际展览工程有限公司财务管理制度
- 领导力培训与团队发展关系研究
- 雨棚棚盖检验批质量验收记录表
- DB14T 1049.1-2020 山西省用水定额 第1部分:农业用水定额
- 医院感染监测清单
- 医疗废物管理相关法律、法规介绍
- 手把手教华为PTN设备业务配置
- 工程施工安全保证体系新版
- 政审在校证明
- 燕房线电缆技术规范
- 三年级道德与法治(下)知识点总结
- 变电站一次通流-通压试验方法的探讨与实践
- 线槽灯安装施工工法
评论
0/150
提交评论