450 likes | 661 Views
数学实验. 1.3 分段函数. Mathematica 的常用函数. 例 1 观察取整函数 Round, Floor, Ceiling 的用法。. Print[Round[1.4],Floor[1.4],Ceiling[1.4]] Print[Round[-1.4],Floor[-1.4],Ceiling[-1.4]] Print[Round[1.5],Floor[1.5],Ceiling[1.5]] Print[Round[-1.5],Floor[-1.5],Ceiling[-1.5]]. 例 2 观察符号函数 Sign 及 Max, Min 对函数的影响。.
E N D
1.3 分段函数 Mathematica 的常用函数
例1 观察取整函数Round, Floor, Ceiling的用法。 Print[Round[1.4],Floor[1.4],Ceiling[1.4]] Print[Round[-1.4],Floor[-1.4],Ceiling[-1.4]] Print[Round[1.5],Floor[1.5],Ceiling[1.5]] Print[Round[-1.5],Floor[-1.5],Ceiling[-1.5]] 例2 观察符号函数Sign及Max, Min对函数的影响。 Plot[Sign[Cos[x]], {x,-2Pi,2Pi}] Plot[Max[Sin[x],Cos[x]], {x,-2Pi,2Pi}] Plot[Min[Sin[x],Cos[x]], {x,-2Pi,2Pi}]
用递归方法定义函数 Mathematica中可以利用递归方式定义函数。 例如,定义求阶乘的函数: fac[0]=1 fac[n_]:=n fac[n-1] 求前n个自然数的和: he[1]=1 he[n_]:=n+he[n-1] 注意:n应该是整数,否则出现无限循环。 系统默认的循环次数为256次。可设置系统 变量$RecursionLimit 的值修改这个缺省值。
例3 定义分段函数 定义分段函数 1、使用约束条件控制定义范围 y1[x_]:=3-Sqrt[-x]/;x<0 y1[x_]:=x^2
2、使用If 条件语句定义分段函数 y2[x_]:=If[x<0,3-Sqrt[-x],x^2,100]
3、使用Which条件语句定义分段函数 如: Which[x==2,1,x>3,3,True,0]
例3 定义分段函数 y[x_]:=Which[x<=0,0,x<=1,x^2,x<=2,1,x<=3,3-x,True,0]
基本逻辑运算符有: Implies[p,q]等价于 !p||q.
个人所得税的纳税问题 1、实际背景 税法规定:公民的个人工资、薪金应依法纳税。所得税的计算办法为:在每个人的月收入中超过800元以上的部分应该纳税。应纳税款实行分段累积税率,按下列税率表计算:
若某人的月工资收入为x,请列出他应交纳的税款y与x之间的函数关系。若某人的月工资收入为x,请列出他应交纳的税款y与x之间的函数关系。
2、数学推导 • 按税法规定,当x≤800元时,不必纳税. y=0; • 当800<x≤1300元时,纳税部分是x-800. y=5%(x-800); • 当1300<x≤2800元时, y=25+10%(x-1300); • 以此类推,可以得出如下的纳税计算公式:
3、计算程序 Shui1[x_]:=Which[0<x<=800,0, 800<x<=1300,0.05*(x-800), 1300<x<=2800,0.10*(x-1300)+25, 2800<x<=5800,0.15*(x-2800)+175, 5800<x<=20800,0.20*(x-5800)+625, 20800<x<=40800,0.25*(x-20800)+3625, 40800<x<=60800,0.30*(x-40800)+8625, 60800<x<=80800,0.35*(x-60800)+14625, 80800<x<=100800,0.40*(x-80800)+21625, True,0.45*(x-100800)+29625]
也可使用递归方法定义: Shui2[x_]:=Which[0<x<=800,0, 800<x<=1300,0.05*(x-800), 1300<x<=2800,0.10*(x-1300)+Shui2[1300], 2800<x<=5800,0.15*(x-2800)+Shui2[2800], 5800<x<=20800,0.20*(x-5800)+Shui2[5800], 20800<x<=40800,0.25*(x-20800)+Shui2[20800], 40800<x<=60800,0.30*(x-40800)+Shui2[40800], 60800<x<=80800,0.35*(x-60800)+Shui2[60800], 80800<x<=100800,0.40*(x-80800)+Shui2[80800], True,0.45*(x-100800)+ Shui2[100800]]
x 我们也可以作出分段税率的图象: 在分段税率图中,怎样表现出应纳税的数额? 问题1
问题2 怎样计算图形中所示的面积?
把图示面积分成若干水平排列的矩形条,第一条的高度都是5%,宽度恰好是月收入x与各税率段的起点之差。于是可得纳税额的另一计算公式:把图示面积分成若干水平排列的矩形条,第一条的高度都是5%,宽度恰好是月收入x与各税率段的起点之差。于是可得纳税额的另一计算公式: y=0.05×(max{x-800,0}+max{x-1300,0} +max{x-2800,0}+max{x-5800,0}+max{x-20800,0} +max{x-40800,0}+max{x-60800,0}+max{x-80800,0} +max{x-100800,0}) Mathematica中相应的命令是: Shui3[x_]:=0.05*(Max[x-800,0]+Max[x-1300,0]+Max[x-2800,0]+Max[x-5800,0]+Max[x-20800,0]+Max[x-40800,0]+Max[x-60800,0]+Max[x-80800,0]+Max[x-100800,0])
1.4 一元函数的图形 Plot 函数的使用方法 如: Plot[Tan[x],{x,-2Pi,2Pi}] Plot[Tan[x],{x,-2Pi,2Pi},PlotRange->{-10,10}]
作图原理 以给定的表达式作为计算对象,根据给定的取值范围选取自变量的样点数,再计算出相应的函数值,得到函数图象的一组型值点。型值点的个数可以通过选择项(PlotPoints) 进行调整。 根据型值点数据构造出图形的基本要素,进而形成函数曲线的一个图形表达式,表示为Graphics。最后调用系统内部定义的显示程序($DisplayFunction)把图形表达式投射到计算机屏幕上。 可以使用InputForm 函数了解作图过程的细节。InputForm[Plot[Tan[x],{x,-2Pi,2Pi},PlotRange->{-10,10}]
画多个函数的图形 如: Plot[{Sin[x],Cos[x]},{x,-2Pi,2Pi}]
使用选择项对图形进行修饰 Mathematica 绘图时允许使用选择项对绘制的图形细节提出各种要求和设置。如:指定原点位置、不画坐标轴,指定颜色等等。每个选择项有一个确定的名称,以“选择项名->选择项值”的形式放在Plot中最后边的位置。 修饰曲线的样式(第一类选择项)
用法说明 如: Plot[Sin[x],{x,-Pi,Pi},PlotStyle->{Thickness[0.01],RGBColor[1.000,0,0.502],Dashing[{0.03,0.02}]}]
例如: Plot[Sin[x],{x,-Pi,Pi},PlotStyle-> RGBColor[0,0,1],GridLines->Automatic,Background-> RGBColor[1,1,0]] Plot[Tan[x],{x,-2Pi,2Pi},PlotStyle-> RGBColor[0,0,1],PlotRange->{0,5},AspectRatio-> 1/2,PlotLabel->"y=tan x"]
例如: Plot[Sin[x],{x,-Pi,Pi},PlotStyle-> RGBColor[0,0,1],Axes->None,Frame->True] Plot[Sin[x],{x,-Pi,Pi},PlotStyle-> RGBColor[0,0,1],Background-> RGBColor[1,1,0],AxesLabel->{"x", "sin(x) "}] Plot[Sin[x],{x,-Pi,Pi},PlotStyle-> RGBColor[0,0,1],Background->RGBColor[1,1,0],Ticks-> {{-3,-1.5,0,1.5,3},{-1,0,1}}]
Show 函数 例如: g1=Plot[Sin[x],{x,-Pi,Pi},PlotStyle-> RGBColor[0,0,1],GridLines->Automatic,Background-> RGBColor[1,1,0]] Show[g1,AspectRatio->Automatic] Show[g1,Axes->{True,False},GridLines->None] ph1=Plot[Sin[x],{x,-2Pi,2Pi}] ph2=Plot[Tan[x],{x,-2Pi,2Pi}] Show[ph1,ph2,PlotRange->{-3,3}]
例如: ParametricPlot[{Cos[x],Sin[x]},{x,-Pi,Pi},PlotStyle-> RGBColor[0,0,1],Background-> RGBColor[1,1,0],AspectRatio->1,Axes->None] a=Input["Input a real number:"] b=Input["Input a real number:"] ParametricPlot[{Sin[a t],Cos[b t]},{t,0,2Pi},PlotStyle-> RGBColor[0,1,0],AspectRatio->Automatic] ParametricPlot[{{Sin[t],Cos[t]},{1.5t,t^2}}, {t,-Pi,Pi}, PlotStyle->RGBColor[0,1,0],AspectRatio-> Automatic]
例如: t1=Table[{x,x^3},{x,-3,3,0.2}] ListPlot[t1,PlotStyle->RGBColor[0,0,1]] ListPlot[t1,PlotStyle-> {RGBColor[0,0,1],PointSize[0.015]},PlotJoined-> True,AspectRatio->1]
函数图象的观察 绘制幂函数y=x, y=x3, y=x6, y=x30在区间[0,2]上的图形. P[x_,p_]:=x^p Plot[{P[x,1],P[x,3],P[x,6],P[x,30]},{x,0,2},PlotRange->{0,2}, AspectRatio->0.8,PlotLabel->"n=1, 3, 6, 30",PlotStyle-> {RGBColor[1,0,0], RGBColor[1,0.502,0], RGBColor[0,1,1], RGBColor[0,1,0]}]
比较函数f(x)=x,g(x)=x+x3, h(x)=x3在x→0时函数的性态. Plot[{x,x+x^3,x^3},{x,0,0.5}, AspectRatio->Automatic, PlotStyle->{RGBColor[1,0,0], RGBColor[0,1,0], RGBColor[0,0,1]}]
比较函数f(x)=x,g(x)=x+x3, h(x)=x3在x→∞时函数的性态. Plot[{x,x+x^3,x^3},{x,10,100}, PlotStyle-> {RGBColor[1,0,0], RGBColor[0,1,0], RGBColor[0,0,1]}]
观察p连续变化时,幂函数图象的变化. pdata1=Table[p,{p,-5,-1,0.5}] pdata2=Table[p,{p,-1,0,0.1}] pdata3=Table[p,{p,0,1,0.1}] pdata4=Table[p,{p,1,5,0.5}] pdata=Join[pdata1,pdata2,pdata3,pdata4]; Do[Plot[{x,1,x^pdata[[p]]},{x,0,2},PlotRange-> {0,3},PlotLabel->"p="<>ToString[pdata[[p]]],PlotStyle-> {RGBColor[1,0,0],RGBColor[0,1,0],RGBColor[0,0,1]}],{p,1,Length[pdata]}]
幂函数与指数函数、对数函数的比较. Plot[{x^10,1.1^x},{x,0,800}, PlotRange->{0,10^29}, PlotStyle->{RGBColor[1,0,0], RGBColor[0,0,1]}] Plot[{x^0.3,100 Log[10,x]},{x,0,5*10^7}, PlotStyle-> {RGBColor[1,0,0], RGBColor[0,0,1]}]