(root只能求一个未知数的一个根)
举个例子eg:
f(x):
=x2+2x-8root(f(x),x,1,3)=2
f(x,y):
=x2+y2+2x-9y:
=1root(f(x,y),x,1,3)=2
最后两个参数也是可以缺省的,不过在求根之前必须先给x赋个值才能计算。
Eg:
f(x):
=x2-2x+1x:
=0root(f(x),x)=1
有一点要注意,x赋值不同,根的误差也不同,x赋值离真值太远,误差可能很大。
第一种方法则不存在这个问题。
polyroots(v)这个函数就没那么复杂,参数v是个列向量,用矩阵命令做的。
以上个例子为例,f(x)=3x2-2x+1
(以降幂方向做向量,即从0次幂开始,缺的幂次,系数填0)。
polyroots(v)=
。
可以发现polyroots(v)比root(f(var1,var2,...),var1,a,b)函数要好用,但是root函数除了解多项式也能解别的函数,用法是一样的。
29.Mathcad有比较强大的绘图功能,最常用的就是X-Y二维图。
“插入-图表-X-Y绘图”"insert-Graph-X-Yplot"。
在图形里面,横坐标位置输入x坐标的参数,纵坐标输入y坐标的参数即可。
这个自己一试就知道怎么用了。
它配合root函数一起使用求值很好,因为root函数先要估一个根的范围,先把函数的图画出来,大抵的范围一看就知道了。
30.X-Y二维图中,默认有6个参数可以填,分别是x轴参数,y轴参数,x轴显示范围,y轴显示范围,
Eg:
X轴参数是x,y轴参数是f(x),x轴范围是(-10,-5),y轴范围是(-1,1)。
这个x轴,y轴范围可以用来调整图形显示的精度,可以用来判断根的范围。
其他参数可以通过设置调出来。
31.mathcadX-Y二维图除了能做函数的图形以外,还可以做离散点的函数,x轴,y轴坐标都用列向量提供,它会把对应的点连起来。
(嫌占位置可以用横向量加转置)
32.
解方程(组)的时候,方程的等号或者不等号,都必须是布尔运算符合,否则系统不认识。
解方程组,用given…find,minerr,maxmize,minimize函数计算,最常用的是given-find函数。
举个例子EG:
X:
=1y:
=0z:
=3
如果将“=”换成“→”,代数运算将变成符号运算,这种情况不需要赋初值,直接解出精确解。
计算会慢点,但这点时间对我们而言无所谓,基本感觉不出来。
given
x+y+z=1
x-ey+z=0
x-y+z=1
find(x,y,z)=
可见,解方程组和root函数解方程一样,要先给未知数赋值。
Mathcad里面解方程是用的迭代法,需要一个初始值进行迭代。
given后给出方程组,find函数求得答案。
这里有几点要注意:
1、解方程前必须赋值;
2、given函数必须单独占一行;
3、方程中的等号是布尔运算中的等号(ctrl+=),而不是等号(=)。
4、初始赋值不同,误差也不一样,这个要小心;
5、赋初始值迭代我们可以人工干预,开始并不知道赋值多少比较好,就随便赋个值,然后按照计算的结果再进行赋值,这样结果会比较接近真值。
值得注意的是,像-6.346×10-6这种超级小的数,一般真值就是0,我们按0重新赋初始值。
minerr,maxmize,minimize函数与find函数有什么不同呢,这个可以查看mathcad的帮助。
minerr函数与find函数的区别就是,不管方程有没有解,minerr函数都会把迭代的结果给出来,而find函数则会提示方程无解。
maxmize,minimize两个函数则是解不定方程的,求极值的。
这里的given函数一般就给约束条件比如x>0之类的。
Minimize(f,var1,var2,...)、Maximize(f,var1,var2,...)。
举个例子:
Z(x,y):
=80x+45y
X:
=1y:
=1
Given
33.三角函数,要注意的是,默认是用弧度计算,如果想用角度,可以后面加个deg,或者直接乘以π/180。
34.求极限,积分,微分和求导要注意的是,最后求结果时不是用等号(=),而是和符号运算一样用箭头符号(→)。
求导数的时候,拐角那个点的导数是不存在的,那个点的附近求出来的导数,误差很大,这个要注意。
(eg“0”是一个奇点,求0.0001的导数,误差就很大)
35.符号运算,功能主要都是在符号工具栏里面。
(符号运算的功能都能用到代数计算中)
“→”符号等号,mathcad14自己是这样叫的,是用的最多的符号运算符。
相当于代数运算的等号。
其实也能代替等号,在代数式中运用。
不过返回的是分数(如果等式里面没小数的话),等号返回的则是小数。
求积分,极限,微分,导数都是用“→”。
符号运算的基本格式是:
“表达式+关键字+→”,这个“关键字”在左边的工具栏中,大部分都是。
simplify关键字是化简运算符,功能是将一个多项式中多余的累赘部分去掉,成为一个最精简的式子。
expand关键字是展开运算符,功能是将被乘方,相乘之类相连的式子释放成多项式。
factor关键字是因式分解运算符,功能和展开运算符刚好反过来,将多项式编程连乘(除)的式子。
coeffs关键字是求多项式系数的运算符,“多项式+coeffs+与要求系数相对应的参数+→”,功能是将多项式某个未知数的系数提出来做成一个列向量。
Eg:
2x4+3x2+2x+4coeffs,x→(42302)T,是从0次幂开始的,如果有缺就补0。
以上四个关键字是除了符号等号用的最多的符号运算符。
别的可以查阅帮助。
36.符号运算允许多个关键字一起作用,以简化运算过程。
操作方法就是点完一个关键字以后不按回车而是接着点第二个,第三个关键字就可以了。
Eg:
。
37.符号运算可以解方程,和不等式。
关键字solve。
用法“式子+solve,未知数+→”。
例子:
,注意(ax中间一定不要忘记了输入*乘号)。
(“?
”是布尔运算符与,_c1>√a且a≥0且_c2<-√a时,x的范围就是_c1叠加上_c2的范围。
)
符号运算符解方程和不等式同样可以用到代数计算中去解方程和不等式。
而且不需要赋初始值,虽然计算慢点,但以目前计算机的计算能力,这个时间差可以忽略不计。
Eg:
x2+11x+18=0solve,x→
。
38.符号运算解方程组,方法和代数运算是一样的,用given-find函数。
只是最后那个等号改成了符号等号(→)。
符号运算接方程组也能用到代数计算中。
例如:
把数字换成字母也是一样的。
39.Substitute关键字,变量替换运算。
EG:
x+ysubstitute,x=a,y=b→a+b.(=是布尔运算符)
40.series关键字,泰勒级数展开。
默认是在0点展开(a+a1(x-0)+a2(x-0)2+…),展开到6次幂。
用法“式子+series,a,b,c→”a:
针对哪个变量展开;b:
在那个点展开,用布尔等号表示;c:
最高展开到几次幂。
a,b,c三个参数可以缺省,b,c位置可以互换。
Eg:
cos(x)series,3,x=2→cos
(2)-sin
(2)(x-2)-1/2cos
(2)(x-2)2。
cos(x+y)seriesx,x=2,3→-cos(y)/3-14sin(y)/15-(x-2)(2/3cos(y)-1/3sin(y))+…
41.parfrac关键字,将任意一个有理分式转化成分母为一次或二次的部分分式之和。
对复杂的有理分式化简非常有效。
Eg:
。
42.mathcad的图形功能也是很强大的。
我们用的最多的是二维X-Y直角坐标系。
方法在前面介绍过了。
这里在补充一下。
1、可以用f(t)=sin(t);g(t)=t2,的方式来输入图形。
只需要在横坐标位置和纵坐标位置分别输入f(t),g(t)即可。
2、可以通过向量来作图。
i:
=1…50,xi:
=sin(i),yi:
=i2.(只要元素用矩阵下标来定义,系统就默认它是矩阵的一个元素)方法和前面一样。
3、可以多个函数在一个X-Y坐标系里面作图,只需要在y轴位置输入两个函数就行了,它们之间用逗号“,”隔开。
4、可以读取曲线上任意一点坐标。
方法是:
1、选中图形;2、格式-图标-跟踪,打开X-Y跟踪对话框(format-graph-trace,X-Ytrace对话框)。
3、在图形上想知道坐标的地方点一下,坐标就在对话框里面出现了。
5、缩放(zoom)功能。
选中图形,单击右键选择缩放(zoom),会出来一个对话框。
然后在图形里面用鼠标选择一块你想放大的区域。
对话框里面的放大和缩小按钮就会变亮,按下放大,你选择的部分会铺满整张图,点缩小,则会还原到原始状态。
6、双击图形会出现格式对话框,里面有好多功能。
轨迹选项里面,有个选项叫做“类型”,里面有线条、点、柱状图等选项,我们画直方图就用柱状图类型显示。
43.极坐标系和直角坐标系的使用方法很类似。
就是横坐标参数表示角度(角坐标),纵坐标参数表示长度(线坐标)。
最右边有两个值,表示的是长度(线坐标)的范围(ρ的范围)。
别的操作和直角坐标系是一样的。
(注意的是ρ:
=1这个函数是个圆,虽然函数式中没有角度θ,但实际上是有的,别以为它没有角坐标)
44.Mathcad的程序编写,所有语句都在编程工具栏里面。
1、Addline“层次线”程序模块的标志;(在addline范围内的就是一个程序,出去就程序结束了)
2、”←”局部定义(赋值),相当于代数运算的“:
=”。
3、”if”选择语句;
4、”otherwise”和if语句一起使用,选择语句;
5、”for”循环语句;”while”循环语句;
6、”break”、”continue”中断语句,前者中断整个循环,后者只中断当前进行的一次循环;
7、”return”返回语句。
一般层次线中执行的最后一行(不执行的不算)是程序的返回值,有时候需要中途返回一个值,就用”return”语句;
8、”onerror”错误语句。
“a+onerror+b”当b出错时(不能计算),返回a。
45.关于程序的返回值,程序做执行的最后一个语句就是返回值所在语句。
Eg:
f(x):
=
,当x≥0时,5就是最后一个执行的语句,所以返回值就是5,当x<0的时候,if语句就是最后一个句话,返回值就是2。
但如果把两个语句掉个位置就不行了,因为5在最后,怎么都会执行,永远是最后执行的语句,返回的结果就永远是5了。
46.If语句里面的嵌套。
If语句的格式是”a+if+b”,a是返回的值,b是条件。
嵌套的时候,在a的位置键入层次线addline,就会变成f(x):
=
的样子,此时a的位置就换到下面去了。
otherwise和if一起使用。
表示出了if条件以外的条件。
47.循环语句。
“for”语句格式:
forx∈y
z
x循环变量,y值域;z为”for”语句下执行的语句,会计算值域y中每个x值对应的z值,一般z值会随x的变化而变化。
Eg:
,i的值域就是1到9的整数。
这个值域也可以用向量给出来。
Eg:
,这里i的值域就是向量a,i取值在值域中按顺序一个一个取。
“while”语句格式:
whilex
y
x:
条件表达式;y:
运算表达式。
如果x为真(不为0),则执行运算表达式y。
表达式y的计算必须导致x的变化。
一旦x变为假(=0),循环结束。
不过如果y表达式无法使x变成假,则会陷入死循环,只能按Esc键才能停止计算,这个是要注意的。
Eg:
,(注意:
运算表达式y如果不止一个表达式,要用addline嵌套起来。
)这里专门用了一个变量i来执行循环变量,大多数情况下,函数变量本身就可以承担循环变量的任务。
For语句的循环,循环次数是固定的,而while语句的循环是不定的。
这是二者最大的区别。
48.continue语句和break语句都是用来执行中断循环的语句。
二者的区别在于,continue语句只中断正在执行的一次循环,中断后会进跳过continue语句以后的语句而进入下一次循环;而break语句则是中断整个循环语句,中断后执行循环语句后面的语句。
它们都和条件语句一道使用。
Eg:
,f(n)的功能是当n≥0时,0到n奇数之和返回给f(n);当n<0时,取膜,0到-n之和。
(for语句执行语句不止一个,都要用addline嵌套)。
49.这里专门强调一次,一个程序中,到底哪一句是最后一次执行的语句,要注意,要小心,特别是条件语句多的函数。
50.return语句和onerror语句。
returnx,读到return运算符,终止程序,并返回x。
xonerrory,计算y,如果y发生错误(无意义),则计算x并返回x,否则返回y的计算结果。
onerror运算符是一种特殊的条件运算符。
51.程序的递归,也就是函数自己调用自己本身。
这在每一种语言中都是非常重要的运算方式。
Eg:
,f(n)程序功能是返回n!
。
里面自己调用自己f(n-1),从而实现循环。
52.mathcad有大量的函数,比如mod(x,y),x/y返回余数。
等,多少要了解一些。
以下是几个常用的函数,更多的要去了解,最好能找个mathcad函数大全下下来查比较好。
max(A,B,…):
返回A,B,…所有元素中的最大值。
min(A,B,…):
返回A,B,…所有元素中的最小值。
mod(x,y):
返回余数;
round(x,n):
四舍五入到小数点后n位,若缺省n则默认是0,四舍五入取整;
Round(z,y):
返回round(z/y)?
y;
floor(z):
返回≤z的最大整数;Floor(z,y):
返回≤z的y的最大倍数;
ceil(z):
返回≥z的最小整数;Ceil(z,y):
返回≥z的y的最小倍数;
trunc(z):
去掉z的小数部分,返回整数部分;Trunc(z,y):
返回trunc(z/y)?
y。
53.几个常用的统计函数:
(统计函数的参数都是针对矩阵的)
均值:
mean(A,B,…):
A,B,…所有矩阵内的所有元素相加求均值。
中位数:
median(A,B,…):
返回所有矩阵元素,从小到大排列,正中间的那个元素值,如果是偶数,则去正中两个元素的均值。
方差:
var(M);Var(M),前者是矩阵所有元素的最大似然估计方差,后者是所有元素的无偏估计方差。
。
标准方差:
stdev(M),Stdev(M),分别表示var2(M);Var2(M)。
协方差:
cvar(A,B)。
相关系数:
corr(A,B)。
54.几个矩阵函数:
augment(A,B,…):
矩阵合成函数,就是将矩阵(向量)A,B,…按从左到右的顺序合成矩阵。
Eg:
A=(12);B=(34)则augment(A,B)=(1234)。
stack(A,B,…):
矩阵合成函数,不过它是将矩阵(向量)A,B,…按从上到下的顺序合成矩阵。
Submatrix(A,ir,jr,ic,jc):
提出子矩阵函数,表示一个由矩阵A的第ir行到jr行之间和第ic列到jc列之间的子矩阵。
rows(M),cols(M):
分别是求矩阵M行数和列数的函数。
rank(M):
求矩阵M的秩的函数。
tr(M):
求矩阵M的迹的函数。
sort(V):
将向量V中所有的元素按从小到大的顺序进行排序输出一个新向量。
rref(M):
对矩阵M进行单位化变换,将M左边方阵范围部分变换成一个单位矩阵。
(针对高斯消去法)如果M是个方阵,则得到一个单位矩阵,如果M是个增广矩阵,则变换后,最右边一列则是方程组的解。
indentity(n):
生成一个单位矩阵,行列数为n。
diag(V):
生成一个对角矩阵,对角元素按向量V元素的顺序排列。
eigenvals(M):
求矩阵M的特征值。
eigenvec(M,z):
求矩阵M对应于特征值Z的特征向量。
eigenvecs(M):
求矩阵的特征向量。
55.柱状图:
hist(intvls,data)返回一个列向量,数据data(矩阵)所有元素中,出现在intvls上的频率。
(intvls是个整数,就是把data里所有的元素按从小到大的顺序,均分成intvls份;向量的值就是按从小到大的顺序,每一个等分区间里面元素的个数。
)
histogram(intvls,data)返回具有两列的一个矩阵,第一列包含等长的intvls的中点,其范围为min(data)≤value≤max(data)。
第二列与hist(intvls,data)相同;结果矩阵具有intvls行。
柱状图输出的第一列对于绘制柱状图的水平轴很有用。
(返回一个两列的矩阵,data里面的元素按从小到大顺序均分成了intvls份,有intvls个区间,以区间的中点的值代表这个区间,组成了矩阵第一列;第二列的值就是hist(intvls,data)返回的值,按从小到大的顺序,每个区间里面data分布元素的个数。
)
mode(A,B,C,...)返回元素A、B、C、...中出现频率最高的数。
(下面的比较是自己边用的过程中写的