MATLAB–Mupad 初学者(四)~(八)

四、函数的创建

(一)、用赋值运算符创建函数

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,x],[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<-1,-1]);
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::Red		Color=[1,0,0]
Color=RGB::Green	Color=[0,1,0]
Color=RGB::Blue		Color=[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:检验两个表达式是否相等

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值