数学函数的定义与运算Word格式.docx
《数学函数的定义与运算Word格式.docx》由会员分享,可在线阅读,更多相关《数学函数的定义与运算Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
Out[4]={1,2}
In[5]:
=x=a
Out[5]=1
In[6]:
=x
Out[6]=1
In[7]:
=s=1
Out[7]=1
In[8]:
=a1
Out=1+t
说明:
上例分成两部分:
In[1]--In[4]是4个赋值式。
第1个式子引入了符号x,同时声明x表示2。
第2个式子引入了符号a1,s,t,同时说明了它们之间的关系。
第3个式子同时给多个变量赋以同一值。
第4个式子同时给多个变量赋以不同值。
In[5]重新给x赋值为a,因为已知a=1,因此输出结果是1。
In[6]查看x的值,答案也表明x=1。
In[7]赋值s=1,In[8]查看a1,输出表明a1=1+t。
这时x被重新赋值,s由原来无值变为有值且影响到a1。
也就是说用户输入的变量及其值或关系式一直被Mathematica记忆,并随着用户的重新赋值而更新,即使同时打开多个工作区窗口变量也是共享的。
这一特性既给使用者带来了方便,但也容易因忘记前面已经使用过哪些变量而产生错误。
(3)清除变量
为了避免隐蔽的错误,应该及时清除不再使用的变量。
其方法有以下几种:
x=.清除x的值但保留变量x。
Clear[x]清除x的值但保留变量x(在复杂的使用情况下清除更多的定义)。
Remove[x]将变量x清除。
注意在解方程时,必须清除未知数变量的值,否则会出现错误的结果。
如下例所示
例3
(4)表示输出的专用符号%
%是一个重要的Mathematica符号,其用途如下:
%表示前一个输出的内容。
%%表示倒数第2个输出的内容,依此类推。
%n表示第n个(即Out[n])输出的内容。
所有%的内容一直被Mathematica记忆,它们可以像其它变量一样被后面的计算引用,如下面的例子所示。
例4观察下面输出专用符号“%”的使用方法和输出效果。
=a=x^2+2
Out[1]=2+x2
=2+3
Out[2]=5
=%
Out[3]=5
=%%%
Out[4]=2+x2
In[5]:
=a+%2
Out[5]=7+x2
=%1+%2(%1还是5,%2的结果还是2+x2)
Out[6]=7+x2
注意:
这些%n的内容是被保护的,Clear或Remove不能清除它们。
其实,所有的输入内容也同样被保留和保护,这些内容当然会占据计算机内存。
为了节约内存,可以在解除保护后清除它们。
清除的方法是使用Unprotect[In,Out]和Clear[In,Out],不过一般无此必要。
(4)常用数学函数
Mathematica的基本功能是作为一个高级的函数计算器来使用的,各种操作主要靠函数来实现。
Mathematica提供的函数种类繁多且功能强大,函数一词也不限于数学上的含义,有实现各种操作的函数。
本书将Mathematica本身的内部函数和它自带的软件包中的函数统称为系统函数。
还可以由用户自定义函数,加入到Mathematica中,能像系统函数一样使用。
学习Mathematica主要是分门别类地学习各种函数的功能及其调用方法。
下面只介绍一些简单而又常用的数学函数。
函数的一般形式是:
函数名[参数1,参数2,…]。
4.1基本初等函数
在Mathematica中基本初等函数的格式如下:
Sin[x]正弦函数Cos[x]余弦函数
Tan[x]正切函数Cot[x]余切函数
Sec[x]正割函数Csc[x]余割函数
ArcSin[x]反正弦函数ArcCos[x]反余弦函数
ArcTan[x]反正切函数ArcCot[x]反余切函数
Exp[x]表示exSqrt[x]表示
Log[x]表示lnxLog[a,x](以a为底的对数函数)Power[x,a]指数为a的幂函数
Sinh[x]双曲正弦
Cosh[x]双曲余弦
Tanh[x]双曲正切
Coth[x]双曲余切
Mathematica系统函数的书写规则很严格,务必注意以下几点:
(A)函数名首字符用大写、后面的字符一般用小写,当函数名分成几段时,每段的首字符应大写,函数名中不能含有空格(但自定义函数的首字符不必大写)。
(B)参数用方括号括起来,不能用圆括号。
这是很科学的表示法,事实上常规的数学表示法有问题,比如f(x+y)既可以理解成求函数f当自变量等于x+y时的值,又可以理解为f乘以x+y,Mathematica认为圆括号表示相乘。
4.2其它常用函数
下面列出一些经常用到的函数:
Abs[x]求实数的绝对值或复数的模。
Sign[x]符号函数
Max[x1,x2,…]一组数的最大值。
Min[x1,x2,…]一组数的最小值。
n!
求n的阶乘。
Binomial[n,k]求
。
N[x],N[x,d]截位函数(d为近似截取位数)
Round[x]最接近x的整数(四舍五入)
Floor[x]不大于x的最大整数,即取整函数
Ceiling[x]不小于x的最小整数
4.3自定义函数
Mathematica允许用户使用自己定义的函数,定义方法有初等函数和分段函数两种。
初等函数定义格式:
【自定义函数名[变量_]:
=表达式】
例5:
f[x_]:
=x^3+Exp[x]
f[3]
运行结果是:
27+E^3
注意:
自变量后面一定要加下划线.它是为了区别自定义函数表达式所含的变量,哪个是自变量,哪个是参数,故不能漏掉或摆错位置。
执行自定义函数后,不会出现任何实质性结果,但计算机已经是蓄势待发,自定义函数的变量具有局部性,函数代值后,并不会改变其全局定义值。
引用自定义函数时,不需要带下划线.
例6In[1]:
=f[x_]:
=x*Sin[x]+x^2+2*x
Out[1]=2x+x^2+xSin[x]
=f[1.]
Out[2]=3.84147
In[3]:
=f[Pi/2]
Out[3]=3Pi/2+Pi^2/4
In[4]:
=f[x^2]
分段函数定义格式:
定义分段函数可以用三种格式,分别为用If或which命令定义分段函数以及分段定义函数的方式,下面,重点介绍此种定义方式。
即在每次定义函数时,在后面添加范围限制,其一般格式为:
【/;
范围限制】
例7f(x)=
求f(-
),
.
=x-1/;
x>
=x^2/;
(x<
=0)&
&
(x>
=-1)
=Sin[x]/;
x<
-1
=f[-Pi/2]
Out[2]=-1
=f[-1/2]
Out[3]=1/4
=f[2]
Out[4]=1
说明:
(1)【&
】为“逻辑或”,这里用来确定函数第二段的条件范围。
(2)分段函数还可以像C语言一样用If或which命令定义,例如:
f(x)=x^2,x<
=1,x>
1时,2-x,可以输入命令:
=If[x<
=1,x^2,2-x],或命令:
=which[x<
=1,x^2,2-x],
类似,可以定义多个变量的函数,必须注意下划线是必不可少的,例如:
u[x_,y_]:
=Sqrt[x^2,y^2],要想知道刚刚定义的函数是否正确,可输入u[x,y],按回车键后,系统自动输出表达式。
关于多元函数更多的知识希望同学们自己探索。
(5)近似数的精度控制与函数值的计算
5.1近似数的精度控制
求近似值的函数N。
Mathematica允许用户任意指定数值计算的精度,函数N的调用格式如下:
N[表达式,数字位数]用于指定计算表达式的具有任意数字位数的近似值(指定的数字位数应该大于16),结果在末位后是四舍五入的。
N[表达式]用于计算表达式的近似值,具有机器规定的精度(16位有效数字),但是按标准输出只显示前6位有效数字,如果想要全部显示应该改为按InputForm形式输出(使用Cell菜单中的选择输出形式选项可以更改输出形式或使用InputForm[]函数)。
还可以使用函数NumberForm[Real,n]规定实数的显示位数n。
在Mathematica中,π和e都表示准确数。
例8求π和e的6位、8位、16位和50位有效数字的近似值。
解:
In[1]:
=N[π]
Out[1]=3.14159
In[2]:
=N[π]//InputForm
Out[2]//InputForm=
3.141592653589793
=NumberForm[N[π],8]
Out[3]//NumberForm=
3.1415927
=N[π,50]
Out[4]=3.1415926535897932384626433832795028841971693993751
=N[e,50]
Out[5]=2.7182818284590452353602874713526624977572470937000
5.2计算函数值
当我们输入前面介绍的数学函数时,输出结果不会有多大变化,因为我们还没有指定自变量的取值。
如果将数学函数中的变量用数字取代,则会产生相应的结果。
例9设f(x)=[x],求f(-2.6).(取整函数)
=Floor[-2.6]
Out[1]=-3
例10计算lg5+ln5,保留20位
=Log[10,5]+Log[5]
Out[1]=Log[5]+Log[5]/Log[10]
=N[%,20]
Out[2]=2.30841……
(1)只有使用截位函数【N】,才能得到常规的近似结果值;
(2)若将函数的自变量所代数值用浮点数(带小数点的数),则可直接算出精确16位(但只显示6位)的结果.如例10结果
=Log[10,5.0]+Log[5.]
Out[3]=2.30841
(6)一元函数的作图(二维图形)
强有力的绘图功能是Mathematica的一大特色。
Mathematica可以绘制各种各样的曲线、曲面及一些特殊图形,并且可以用不同风格输出图形,为用户提供了极大的方便。
由于时间关系,我们只讲一元函数,即二维图形的绘制方法,对于三维图形的绘制,同学们自学。
6.1一元显函数的图形
在平面直角坐标系中绘制函数y=f(x)图形的函数是Plot,其调用格式如下:
Plot[数学函数,作图范围,选项->
项值],例如
Plot[f(x),{x,a,b},选项->
项值]【绘制函数f(x)在区间[a,b]范围内,满足选项值的函数f(x)的图形】。
Plot[{f1(x),f2(x),…},{x,a,b}]【同时绘制多个函数的图形】。
【数学函数】指待作图的函数,确认函数表达式中除自变量外所有参数已赋值。
【作图范围】用变元组{自变量,自变量下限,自变量上限}给出。
【选项参数】包含了作图的各种细节要求,一般分为两类:
第一类参数能改变图形的外观,但不影响图形自身的质量;
第二类参数则影响图形自身的质量。
几个常用选项及其取值情况见下表
选项
说明
项值类型
默认项值
AspectRatio
图形的纵横比
数
1/0.618
AxesLabel
坐标轴名
二元文字
无
PlotLabel
给图形加标题
文字
PlotRange
函数值范围
三元变元组
自动
PlotStyle
样式(颜色粗细)
变元组
PlotPoints
计算点数
25
例1绘制如图13-4所示函数y=sinx和y=cosx在[-π,π]上的图形。
=Plot[{Sin[x],Cos[x]},{x,-π,π}]
图2-1一元函数的图形
Out[1]=-Graphics-
Mathematica绘图函数的自动化程度很高,能自动选取若干个xi求出函数值yi=f(xi),再将点(xi,yi)连接起来得到曲线。
且能自动绘制坐标轴,自动选取单位长度和刻度。
这使画图工作变得非常简单,已经能满足一般要求。
如果用户对输出的图形不满意,还有很多可选参数供选用,以便提高图形的输出质量。
与同类软件MATLAB和Mathcad比较,不仅语句简单,而且输出的图形外观也基本符合我国教科书的习惯。
需要注意的是:
当给出的不是一个能直接将xi代入求出yi的函数表达式时,会出问题。
例如:
=
Out[1]=
=Plot[
,{x,-4,4}]
被画图的函数使用表达式∫xdx时,Plot并不首先求出
来,而是直接将一些具体数值xi代入求
,当然出错,这时Mathematica绘图失败并给出一长串的错误提示。
使用函数Plot时,这是最大的常见错误。
解决的办法是使用函数Evaluate[f],告知Mathematica首先求表达式f的值。
例2使用函数Evaluate绘制如图2-2所示积分
在[-4,4]上的图形。
=Plot[Evaluate[
],{x,-4,4}]
图2-2绘制积分曲线
=Evaluate[
]
Out[2]=
这里首先求出∫xdx=
,再执行绘图过程,后面还会看到使用这种转换方法画出微分方程数值解的图形。
下面就常见的可选参数的应用方法以例题的形式给大家展示一下:
Mathematica绘图函数的可选参数很多,可以在需要时再学习。
以下介绍Plot的常用可选参数(有些是绘图函数通用的),它们体现了Mathematica绘图功能的完善程度。
可选参数的形式为:
可选项名→可选项值,当不使用可选参数时,该参数取默认值。
(1)第一类可选参数
第一类可选参数有以下几种。
●PlotRange指定绘图的范围。
它的可选值是:
Automatic【由Mathematica自动选取范围切除无穷值点和尖峰(默认值)】
All【画出所有点】
{min,max}【给出y(三维为z)轴方向的取值范围】
{{x1,x2},{y1,y2}}【分别给出x,y(三维加z)轴方向的取值范围】
例3使用可选参数PlotRange绘制所示函数y=tg(x)的图形。
=Plot[Tan[x],{x,-3,3},PlotRange→{-10,10}]
图2-3使用可选参数PlotRange的图形
●AspectRatio指定图形的高宽比。
默认值为0.618(黄金分割),准确值是1/GoldenRatio,其中GoldenRatio=
是一个Mathematica常数。
如果取Automatic,则高宽比为1,还可以取任何正数。
如果不设置这个参数,则圆变成椭圆,设此参数值为Automatic则可解决问题。
例4使用可选参数AspectRatio绘制如图2-4所示的圆x2+y2=1。
=Plot[{
,-
},{x,-1,1},AspectRatio→Automatic]
图2-4绘制单位圆
●AxesLabel用于给坐标轴加上标记(说明性字符串)。
它有三个值。
None【没有标记(默认值)】
“字符串”【给y(三维为z)轴加上标记】
{“字符串1”,“字符串2”}【分别给出x,y(三维加z)轴的标记】
例5给坐标轴加上标记绘制如图2-5所示函数
的图形。
=Plot[Exp[-x^2],{x,-2,2},AxesLabel→{″x″,″y″}]
图2-5给坐标轴加上标记的图形
提示:
字符串要用双引号括起来,内容可以是Mathematica能够显示的任何表达式。
●Ticks用于给坐标轴加上刻度或给坐标轴上的点加标记。
常用的选项值为:
Automatic【由Mathematica自动加上刻度(默认值)】
None【不加刻度】
{{x1,x2,…},{y1,y2,…}}【在横轴上的点x1,x2,…和纵轴上的点y1,y2,…处加上刻度】
{{x1,“字符串1”},{x2,“字符串2”},…},{{y1,“字符串1”},{y2,“字符串2”},…}}【在横轴上的点x1,x2,…和纵轴上的点y1,y2,…处写上字符串】
例6给横轴上的点加标记,绘制如图2-6所示函数y=sinπx的图形。
=Plot[Sin[πx],{x,0,3},
Ticks→{{{1/2,“t1”},1,{3/2,“t2”},2,{5/2,“t3”},3},
Automatic}]
图2-6给横轴上的点加标记的图形
由上例可以看出,各种可选值能混合使用。
这个选项也可用于三维绘图。
●AxesStyle用于设置坐标轴的颜色、线宽等选项。
它的值为:
{选项1,选项2,…}对所有轴设置相同的选项。
{{x轴选项1,x轴选项2,…},{y轴选项1,y轴选项2,…}分别对各轴设置不同的选项。
例7设置坐标轴的颜色和线宽,绘制如图2-7所示函数
=Plot[1/(1+x^2),{x,-5,5},
AxesStyle→{RGBColor[0,0,1],Thickness[0.01]}]
图2-7设置坐标轴的颜色和线宽后得到的图形
上例中设置了坐标轴的颜色(蓝色)和线宽,这些选项的含义将在后面介绍。
●Frame用于给图形加框。
False不加框(默认值)。
True加框。
例8加框绘制如图2-8所示函数y=sinx2的图形。
=Plot[Sin[x^2],{x,0,3},Frame→True]
图2-8加框的图形
Out[1]=-Graphics
●GridLines用于加网格线。
None【不加网格线(默认值)】
Automatic【由Mathematica自动加上网格线】
{{x1,x2,…},{y1,y2,…}}【在横轴上的点x1,x2,…和纵轴上的点y1,y2,…处加上网格线】
例9加上网格线绘制如图2-9所示函数y=lnx+sin(x+
sinx)的图形。
=Plot[Log[x]+Sin[x+
Sin[x]],{x,0,10},
GridLines→Automatic]
图2-9加上网格线的图形
●Background用于指定背景颜色。
可以使用多种颜色模式,常用选项是:
Automatic【实际颜色与Windows的窗口颜色一致,但利用Mathematica的直接打印功能输出时是白色的(默认值)】
GrayLevel[k]【其中k是0到1之间的数,给出灰度大小,0为黑色,1为白色】
RGBColor[r,g,b]【其中r,g,b是0到1之间的数分别表示红、绿、蓝色的强度,[1,1,1]为白色,[0,0,0]为黑色,[1,0,0]为红色】
例10设置背景颜色绘制如图2-10所示函数y=ex的图形。
=Plot[Exp[x],{x,-1,1},Background→RGBColor[1,1,1]]
图2-10背景为白色的图形
Mathematica提供了设置颜色的简便方法,单击Mathematica菜单Input中的第三项ColorSelector,可以打开颜色选择对话框。
这是一个标准的Windows颜色选择对话框,单击对话框左边的一种基本颜色或者利用对话框右边的色框自定义一种颜色,然后单击确定按钮退出,则在当前工作区的光标处自动写出如RGBColor[0.996109,0.996109,0.500008]的表达式,表示刚才选中的颜色。
●PlotLabel用于在图形上方居中加注释。
None【没有注释(默认值)】
“字符串”【用双引号括起来的字符串】
例11加上注释绘制如图2-11所示函数y=x2sinx的图形。
=Plot[x2Sin[x],{x,0,2π},PlotLabel→“y=x2Sinx”,
AxesLabel→{“x”,“y”}]
图2-11加上注释的图形
(2)第二类可选参数
第二类可选参数有以下几种:
●PlotStyle用于规定曲线的线型和颜色。
常用值是:
Automatic【曲线是黑色实线(默认值)】
GrayLevel[k]【指定曲线的灰度k】
RGBColor[r,g,b]【指定曲线的颜色】
PointSize[d]【其中d是点的直径与整个图形宽度之比(二维时默认值为0.008,三维时默认值为0.01)】
Thickness[r]其中r是线的宽度与整个图形宽度之比(二维时默认值为0.004,三维时默认值为0.001)
Dashing[{r1,r2,…}]交替