常用初等数学函数
abs(z):绝对值 pi:π I:虚数单位 infinity:无穷
factorial(n):n的阶乘
x^y : x的y次方 exp(x)指数函数 ln(x)自然对数 log10(x)常用对数log[b](x)以b为底的对数
sqrt()平方根 surd(x,n) :x的n次根 ceil(x)不小于x的整数 floor()不大于x的整数 round(x)四舍五入 trunc()取整 max(a1,a2,a3,a4....) rand()随机数
sin(x) cos(x) tan(x) sec(x) cse(x) cot(x) arcsin(x)......:三角函数
a..b:表示区间
lhs(方程):获取方程的左边项 rhs(方程):获取方程的右边项,常用的命令,例如我们在进行多项式系数处理时常用
isolate(方程,表达式):简化方程
with():调用一些函数包
>f:=x(自变量)→x^2(函数);定义函数
注:写循环语句时不能通过enter直接换行,要使用shift+enter进行换行,当然我们要想几个命令同时运行但一行写不下时也可以用此命令换行
多项式:
sort:降幂排列函数
例如:
>sort_poly:=x+x^2-x^3+1-x^4;
>sort(sort_poly);
对于多元多项式情况比较复杂些不强调时按混合项总幂排,若强调某一个变量时放在前面>sort(poly,[y,x]),还有特殊的按字典排序
>sort(poly,[x,y],'plex')
作各种运算时会自动合并同类项,对于多项式只有完全相同的项才会自动合并,若要针对某个变量合并,要用collect命令
>collect(poly,x);
若是先对x合并再对y合并
>collect(poly,[x,y]);
多项式的加减用+-即可,rem、quo分别是多项式除法的商和余,divide则是用来检测整除性,若能整除得到true
当用*时并不会计算,只有用强制命令expand(展开,包括三角函数)才会把两个多项式的乘积算出来
>expand((x+1)*(x-2));
degree和coeff分别确定多项式的次数以及待定项的系数
>coeff(poly,x^4)
>coeff(poly,x,'power');所有项的系数,在化简中常用的命令,可以提取特定项前面的系数
factor:因式分解
simplify:表达式简化,若前面我们将式子中的一些量改写为其他形式,simplify可以将改写的形式代入进去化简,十分好用五星好评
>simplify(sqrt(x^2*y^2),assume=positive); 假定正数情况下简化
>simplify(x*y*z+x*y+x*z+y*z,{x*z=1}); x*z=1简化时用的附加关系
combine是expand的相反命令,combine对三角函数化简非常重要,combine(epr,trig)将三角函数幂的形式转化为倍频形式,combine(epr,power)将三角函数化简为幂的形式
convert:等价形式的转换命令,例如小数和分数的转换,三角函数和指数的转换
>convert(sin(x),exp);
>convert(0.1233655,rational);
代换命令
变量代换为数值subs
>subs(x=a,y); 英文substitude符号代换,化简时常用的命令,意味着之后部分输入的x在运算结果中都显示为a,功能更强大的代换命令为alias()
>evalf(%); 计算表达式的值 eval[n](表达式,x=3)计算x=3时表达式的值,n位有效数值
>algsubs(a*b=3,poly); 数值代换
解方程
>solve(f,x);
>solve({f1,f2},{[x,y]})
>fsolve(f,x)
isolve:整数范围类的解
微分与积分
>limit(f(x),x=0);infinity
>diff(f(x,y),x,y);混合偏导
>diff(f(x),x$3);三阶导
>implicitdiff(f,y,x)隐函数求导
>implicitdiff(f,{z(x,y)},{z},x,y,notation-Diff);二次偏导
>D(f);函数算子
>D[2](f);对第二个变量求导
>int(f,x=a..b);
>int(int(f,y=0..x^2),x=0..5);双重积分
>series(expr,eqn,n);
>taylor(sin(x),x=0,15);
>mtaylor(f,[x=1,y=1],3);多变量温柔的溪流展开
>FourierApprox(f,x=-pi..pi,discont=true):傅里叶展开
微分方程的符号解
>dsolve(diff(y(x),x)=x+y(x),y(x));
注:对较长的式子我们用变量表示(例如:>y1:=diff(y(x),x)=x+y(x);
>dsolve(y1,y(x));)
例:求微分方程组
>alias(x=x(t),x0=x(0),y=y(t),y0=y(0)):取别名
>dsolve(diff(x,t)=-x-5*y+1,diff(y,t)=x+y*t,x0=1,y0=1,x,y);
例:求微分方程的幂级数解
>ode:=D(D(y))(x)+x*y(x):
>dsolve({ode,y(0)=0,D(y)(0)=0},y(x),type=series);
例:常微分方程的数值解
type=numeric即可
例:微分方程结果绘图
>u:=dslove(......):求解
>plots[odeplot](u,0..15,color=blue,thickness=2,frame=20);绘图
例:解二阶方程
>dsolve(diff(y(x),x$2)+3*x^2+y(x),y(0)=0,y(x));
注:DEtools程序包含有微分方程绘图命令,可以绘制方向场
DEplot:绘制微分方程组解的图形
DEplot3d:绘制微分方程组解的三维图形
dfieldplot:绘制微分方程组的方向场
PDEplot:绘制一阶偏微分方程的图形