四、函数的创建
(一)、用赋值运算符创建函数
y:=2*x-1
(二)、用映射创建函数
格式
f:=x–>body 简化函数后再创建函数
f:=x->body直接创建函数
f:=x-->x*2-1;
注意有无等号的区别
(三)、创建分段函数
1.piecewise
格式
piecewise([条件1,对象1],[条件2,对象2],…)
f:=x-->piecewise([x>0 or x=-1 and x<=0,-x]);
注意 or 和 and 两边都要有空格
类似 0<=x<=1的表达式是无效的!
pw:=x->piecewise([x>0 and x < 1,1],[Otherwise,0]);
//Otherwise代表不包含在已有condition中的其他情况:
(四)、复合函数的创建
格式
f@g
f:=x-->piecewise([x<1 or x>-1,1],[x=1 or x=-1,0],[x>1 or x
g:=x->exp(x);
f@g;
(五)、调用系统函数
y:=x->sin(x);
//注意括号不能省,否则系统会把sinx当成一个标识符,如图
也可以创建多元函数,需要加圆括号将所有变量括起来,变量间使用逗号分隔
g:=(x,y)->x^2+y^3
五、显示函数图形
(一)、plot(目标,,)
设置图形属性,可以改变图形坐标轴长度,颜色,图形比例等
常用图形属性设置
图形属性简写功能默认
Scaling=Constrained#C所有坐标轴单位长度相等自动设置
GridVisible=TURE#G显示坐标网格无网格
Axes=Origin #O坐标系包含原点自动设置
AxesVisible=FALSE无不显示坐标轴显示坐标轴
ViewingBox=[x1..x2,y1..y2] 无二维坐标轴范围自动设置
ViewingBox=[x1..x2,y1..y2,z1..z2]无三维坐标轴范围自动设置
Color=[r,g,b] 或 RGB::name无图形颜色略
Height=m无图形高度80
Width=n无图形宽度120
Header=text无在图像顶部添加文本(字符串)无
Footer=text 无在图像底部添加文本(字符串)无
LineStyle=Solid实线
LineStyle=Dashed虚线
LineStyle=Dotted点线
LineWidth=n线宽,默认为0.35
Mesh采样点数目(与曲线的光滑程度有关,越大越光滑),默认为Mesh=121
Submesh额外采样点的密度,默认Submesh=0
AdaptiveMesh自适应加密采样,默认为0,即不采样
PointStyle点形状,默认值是PointStyle=FilledCircles
8种:Squares, FilledSquares, Circles, Crosses, XCrosses, Diamonds, FilledDiamonds, Stars
PointSize点尺寸,默认值是PointSize=1.5,单位是毫米.
RGB色彩模式
Color=RGB::RedColor=[1,0,0]
Color=RGB::GreenColor=[0,1,0]
Color=RGB::BlueColor=[0,0,1]
(二)、创建显函数的二维图像
1.plot::Function2d(f,x=xmin…xmax,,)
f:=x->sin(x);
g:=plot::Function2d(f,x=0..PI);//此时仅仅是创建了一个图形赋值给g
plot(g);//生成图形
接下来设定图形属性
g:=plot::Function2d(f,x=0..PI,Color=RGB::Red,LineStyle=Dashed);
plot(g,#C,#G)
g:=plot::Function2d(sin(x),x=0..2*PI,Color=RGB::Red,LineStyle=Dashed,Mesh=4,AdaptiveMesh=0);
plot(g,#C,#G)
试着改变Mesh的值,看看取样点的取值对图像的影响
2.plot::Curve2d([x,y],t=tmin…tmax,,)
其中x与y分别是x(t),y(t)的表达式
f:=plot::Curve2d([sin(t),cos(t)]);
plot(f,#C);
3.plot::Implicit2d(f,x=xmin…xmax,y=ymin…ymax,,)
注意f是f(x,y)的表达式,默认等号右边为0。
plot::Implicit2d不能使用Submesh和AdaptiveMesh,而且Mesh有两个参数,默认为Mesh=[11,11]
plot(plot::Implicit2d((x-y)*(x+y),x=-3..3,y=-3..3))
4.plot::Polar([r,u],v=vmin…vmax,,)
其中,r表示r(v)极径,u表示u(v)极角
plot(plot::Polar([2*(1-cos(r)),r],r=0..2*PI))//绘制心形曲线
建议图形的定义和绘制分开写
注意Mesh是plot::Polar的参数而非plot函数的参数
//比较以下两个代码的区别
g:=plot::Polar([2*(1-cos(r)),r],r=0..2*PI,Mesh=13);
plot(g);//只有这个代码修改的Mesh值有效
g:=plot::Polar([2*(1-cos(r)),r],r=0..2*PI);
plot(g,Mesh=13);
(三)、绘制点、点列和直线段
1.绘制点
plot::Point2d(x,y,,)
plot::Point2d([x,y],,)
plot::Point2d(matrix[x,y],,)
PointStyle点形状,默认值是PointStyle=FilledCircles
8种:Squares, FilledSquares, Circles, Crosses, XCrosses, Diamonds, FilledDiamonds, Stars
PointSize点尺寸,默认值是PointSize=1.5,单位是毫米.
设置点的形状和尺寸
A:=plot::Point2d(0.5,0.5,PointStyle=Squares);
B:=plot::Point2d(0,0,PointSize=5);
plot(A,B,Width=50,Height=50)
2.绘制点列
plot::PointList2d(pts,<>,<>)
plot::PointList2d(M,<>,<>)
pts :点坐标的列表,即点列 [[x1,y1],[x2,y2],[x3,y3],…]
或者[ [ x[i],y[i] $i=1…n] ]注意双重方括号
M:点坐标的n*2矩阵,如matrix([[x1,y1],[x2,y2],…])
或matrix[ [ x[i],y[i] $i=1…n] ]
Alist:=plot::PointList2d([[1,1],[2,2],[3,3]]);
plot(Alist);
//或者用序列 注意$前没有逗号
Alist:=plot::PointList2d([[i,i]$i=1..3]);
plot(Alist)
3.绘制直线段
plot::Line2d([x1,y1],[x2,y2],,)
以[x1,y1]和[x2,y2]为端点的线段
L:=plot::Line2d([1,1],[2,2])
plot(L)
4.添加文本
plot::Text2d(“text”,[x,y],,)
“text”:要添加的文本,必须用双引号括住
[x,y] :要添加文本的位置
常用属性
TextFont 文本的字体,默认值是["sans-serif", 11];
TextRotation文本的旋转角度,弧度制,默认值是0;
HorizontalAlignment文本相对于添加位置的水平方位,默认值是Left,还有Center和Right
VerticalAlignment文本相对于添加位置的垂直位置,默认值是BaseLine,还有Bottom、Center和Top
综合例子
T:=plot::Text2d("haa",[1,2*a],a=0.1..2,TextFont=[20]);
R:=plot::Rectangle(0..2,0..4);
plot(T,R)
T1:=plot::Text2d("ha",[1,1],TextRotation=PI/4,HorizontalAlignment=Left,TextFont=[20]);
T2:=plot::Text2d("haa",[1,-1],TextRotation=-PI/4,HorizontalAlignment=Left,TextFont=[20]);
T3:=plot::Text2d("haaa",[-1,-1],TextRotation=PI/4,HorizontalAlignment=Right,TextFont=[20]);
T4:=plot::Text2d("haaaa",[-1,1],TextRotation=-PI/4,HorizontalAlignment=Right,TextFont=[20]);
plot(T1,T2,T3,T4,#C)
六、绘制数列、圆、多边形图像
1.plot::Sequence(x,n=nmin…nmax,,)
x:即x(n),数列的通项公式
n:必须都是整数
常用属性参数
Color=RGB::Red
LinesVisible 线是否显示,默认是LineVisible=FALSE,即不显示
PointVisible 点是否显示,默认是PointVisible=TRUE,即显示
delete n:
A:=n-->1/2*sin(2*PI/(6*2^(n-1)))*6*2^(n-1);
ap:=plot::Sequence(A,n=0..8);
plot(ap)
2.plot::Circle2d(r,[x,y],,)
r:半径
[x,y]:圆心,若不写,默认在原点
常用属性参数
LinesVisible 线是否显示,默认是LineVisible=TRUE,即显示
Filled 内部是否填充,默认是Filled=FALSE,即不显示
FillColor 内部填充颜色,默认是FillColor=RGB::Red
3.绘制多边形
plot::Polygon2d(pts,,)
plot::Polygon2d(M,,)
pts:[[x1,y1],[x2,y2],…]
M:n*2规模矩阵 matrix([[x1,y1],[x2,y2]…])
常用参数
LineStyle 线是否显示,默认显示,此时可以设置关于线属性的其他参数
Closed 默认Closed=FALSE,即终点与起点不连接
FillColor 内部填充颜色
Fillpattern 填充方式
PointVisible 是否显示点
C:=plot::Circle2d(1,[0,0]);
n:=1;
Vie:=plot::Polygon2d([[cos(2*PI*k/(6*2^(n-1))),sin(2*PI*k/(6*2^(n-1)))]$k=0..6*2^(n-1)]);
plot(C,Vie)//绘制圆内接正多边形
4.绘制矩形
plot::Rectangle(xmin…xmax,ymin…ymax,,)
xmin…xmax 矩形的左右边界
ymin…ymax 矩形的上下边界
常用参数
LineVisible:线是否显示
Filled:内部是否填充
七、计算极限
limit(f,x=x0) 计算双侧极限
limit(f,x=x0,Left)计算左侧极限
limit(f,x=x0,Right)计算右侧极限
f:函数或数列表达式
x=x0 : 被求极限的位置,x0也可以换成也可以是infinity或-infinity
注意若极限不存在,则返回undefined
limit(1/x,x=infinity,Left);
limit(1/x,x=-infinity,Right);//结果都是0
八、运算
1.多项式除法运算
divide(P,Q,[x])
P:分子的多项式表达式
Q:分母的多项式表达式
[x]:多项式的变量
返回商式和余式
2.解方程或不等式
solve(f,x)
solve(f,x=a…b) 返回函数在[a,b]之间的零点
S:=solve(x^2=2,x);
如果想获得精确解
float(S);
系统默认是保留十位有效数字的,如果想保留更多位:
DIGITS:20:float(solve(x^2=2,x));
solve(x-2>2,x);//解不等式,结果是4到正无穷
3.其他命令
linsolve:求解线性方程组
RootOf:求解多项式的根
testeq:检验两个表达式是否相等
标签:plot,..,Color,默认,Mesh,MATLAB,Mupad,PI,初学者
来源: https://blog.csdn.net/qq_42899589/article/details/86193077