第一篇:linux shell编程学习笔记shell运算符号和运算命令
一、shell运算符号
1、加法
+ ——expr 43+21、expr $x + $y
2、减法
-——expr 43$y
3、乘法
*
——由于 * 在Shell命令行中当通配符用需要用转义符号 ——expr 43 * 21、expr $x * $y
4、除法
/ ——只给出结果的整数部分(并不是四舍五入)——expr 43 / 21、expr $x / $y
5、取余(求模运算)
% ——求模运算常用来判断一个数是否为另一个数的倍数。——expr 43 % 21、expr $x % $y
6、自增 1)i++
—— i=i+1 [root@ndbB ~]# i=1 [root@ndbB ~]# echo $[i++] 1
[root@ndbB ~]# echo $i
2)i+=2 —— i=i+2
7、自减 1)i--—— i=i-1 2)i-=2 —— i=i-2
//先赋值给表达式,然后再递增1 //此时输出的值是递增之前的X //确认X的值
//此时输出的值是递增之后的X
8、自乘 1)i*=2 —— i=i*2
9、自除
1)i/=2 —— i=i%2
二、shell运算命令
1、expr ——只能做整数运算,自动返回运算结果 格式:expr整数1
运算符整数2
2、$[]或$(())——需要使用echo输出结果,运算类型与expr类似 ——乘法 * 不用加转义符号
——使用变量时,直接指定变量名,不用加$ 格式:#echo $[ 整数1
运算符整数2 ] 或
#echo $((整数1
运算符整数2))
3、let ——操作变量值,只运算,不输出结构 ——若要查看结果,需借助echo命令
第二篇:tracert命令学习笔记
如果有网络连通性问题,可以使用 tracert 命令来检查到达的目标 IP 地址的路径并记录结果。tracert 命令显示用于将数据包从计算机传递到目标位置的一组 IP路由器,以及每个跃点所需的时间。如果数据包不能传递到目标,tracert 命令将显示成功转发数据包的最后一个路由器。当数据报从我们的计算机经过多个网关传送到目的地时,Tracert命令可以用来跟踪数据报使用的路由(路径)。该实用程序跟踪的路径是源计算机到目的地的一条路径,不能保证或认为数据报总遵循这个路径。如果我们的配置使用DNS,那么我们常常会从所产生的应答中得到城市、地址和常见通信公司的名字。Tracert是一个运行得比较慢的命令(如果我们指定的目标地址比较远),每个路由器我们大约需要给它15秒钟。
Tracert的使用很简单,只需要在tracert后面跟一个IP地址或URL,Tracert会进行相应的域名转换的。
tracert 最常见的用法:
tracert IP address [-d] 该命令返回到达 IP 地址所经过的路由器列表。通过使用-d 选项,将更快地显示路由器路径,因为 tracert 不会尝试解析路径中路由器的名称。
Tracert一般用来检测故障的位置,我们可以用tracert IP在哪个环节上出了问题,虽然还是没有确定是什么问题,但它已经告诉了我们问题所在的地方,我们也就可以很有把握的告诉别人----某某地方出了问题。
第三篇:MATLAB原理应用实验报告第三章(符号运算)
《MATLAB原理及应用》实验报告 的符号运算
第三章 MATLAB一.实验目的
1、掌握符号对象的命名方法
2、掌握符号表达式的基本运算
3、掌握符号级数的求法
二.实验设备
计算机、MATLAB软件 三.实验内容
1.确定符号表达式的变量
为了简化符号对象的操作和计算,MATLAB为用户提过了findsym命令。
r=findsym(S)确定符号表达式或者矩阵S中自由符号变量
r=findsym(S,n)确定符号表达式或者矩阵S中靠近x最近的n个独立符号变量。【实验3-1】使用MATLAB的命令确定符号表达式的变量。
在MATLAB的命令窗口中输入下例内容:
>> syms a x y z t
确定下面简单符号表达式中的符号变量信息:
>>findsym(sin(pi*t))
ans =
t
确定下面简单符号表达式中的符号变量信息:
>>findsym(x+i*y-j*z)
ans =
x, y, z
确定下面简单符号表达式中的符号变量信息:
>>findsym(a+y,1)
ans =
y 2.符号表达式元算
1.符号表达式的四则运算
表达式的四则运算与数字运算一样,用+、-、/、运算符实现,其运算结果依然是一个符号表达式。
【实验3-2】
在MATLAB的命令窗口中输入下例内容:
>>f=sym('2*x^2+3*x-5');%定义符号表达式
g=sym('x^2-x+7');f+g ans = 3*x^2+2*x+2 ans = 3*x^2+2*x+2 >> f^g ans =(2*x^2+3*x-5)^(x^2-x+7)3.符号表达式的提取分子和分母运算
如果符号表达式是一个有理分式或可以展开为有理分式,可以可利用numden函数来提取符号表达式的分子或分母。期一般调用格式为
[n,d]=numden函数来提取符号表达式
该函数提取的符号表达式s的分子和分母,分别将它们存放在n和d中。
【实验3-3】
在MATLAB的命令窗口中输入下例内容: >> f= sym('a*x/(b+x)');>> [n,d]=numden(f)n = a*x d = b+x numden函数在提取各部分之前,将符号表达式有利化后返回所得分子和分母 >> g=sym('(x^2+3)/(2*x-1)+3*x/(x+1)');>> [n,d]=numden(g)n = x^3+7*x^2+3 d =(2*x-1)*(x+1)如果符号表达式是一个符号矩阵,numden返回两个新矩阵n和d,其中n是分子矩阵,d是分母矩阵。
>> h=sym('[3/2,(2*x+1)/3;a/x+a/y,x+4]')h = [ 3/2,(2*x+1)/3] [ a/x+a/y, x+4] >> [n,d]=numden(h)n = [ 3, 2*x+1] [ a*(y+x), x+4] d = [ 2, 3]
[ x*y, 1] 4.符号表达式的因式分解与展开
MATLAB提供了符号表达式分解与展开的函数,函数的调用格式为 ①factor(s):对符号表达式s分解因式。②expand(s):对符号表达式s进行展开。
③collect(s):对符号表达式s进行合并同类型。
④collect(S,v)将表达式S中相同次幂的合并,v的默认值是x 【实验3-4】
>> syms x y
下面简单符号表达式s1因式分解
>> s1=x^3-y^3;
>> factor(s1)
ans =
(x-y)*(x^2+x*y+y^2)
下面简单符号表达式s2进行展开
>> s2=(-7*x^2-8*y^2)*(-x^2+3*y^2);
>> expand(s2)
ans =
7*x^4-13*x^2*y^2-24*y^4
下面简单符号表达式s3按变量y合并同类型
>> s3=(x+y)*(x^2+y^2+1);
>> collect(s3,y)
ans =
y^3+x*y^2+(x^2+1)*y+x*(x^2+1)
下面简单符号整数分解因式
>> factor(sym(630))
ans =
(2)*(3)^2*(5)*(7)5.符号表达式的化简
MATLAB提供的对符号表达式化简的函数如下
Simplify(s);应用MuPAD简化规则对s进行化简。Simple(s):调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。【实验3-5】
在MATLAB的命令窗口中输入下例内容:
>> s=sym('(x^2+5*x+6)/(x+2)');>> simplify(s)ans = x+3 >> s=sym('[2*cos(x)^2-sin(x)^2,sqrt(16)]');>> simplify(s)ans = [ 3*cos(x)^2-1, 4] 函数simple试用了几种不同的化简工具,然后选择在结果表达式中含有最少字符的那种形式。
下面是表达式cos(3arccos(x))的化简结果
>> s=sym('cos(3*acos(x))');>> simple(s)%自动调用多种函数对s化简,并显示每步结果 显示一系列化简过程后,最后显示化简结果
ans =
4*x^3-3*x 6.级数符号求和
求无穷级数的和需要符号表达式求和函数symsum,其调用格式为
Symsum(s,v,n,m)其中s表示一个级数的通项,是一个符号表达式。v是求和变量,v省略时使用系统的默认变量。n和m是求和的开始项和末项。【实验3-6】求 1111 22223k在MATLAB的命令窗口中输入下例内容:
>> syms k >> symsum(1/k^2,k,1,inf)ans = 1/6*pi^2 >> eval(ans)ans =
1.6449
7.符号微积分
1.符号的积分
符号积分由函数int来实现,一般调用格式如下。
int(s):没有指定积分变量和积分阶数时,int(s,v): 义v为自变量,对被积函数或符号表达式求不定积分。
int(s,v,a,b): 求定积分运算,a,b分别表示定积分的上下限。求函数的定积分
【实验3-6】
(1)cosxdx
在MATLAB的命令窗口中输入下例内容:
>> f=sym('cos(x)');
>> int(f)
ans =
sin(x) 2.符号的微分
diff函数用于对符号表达式求导数,一般调用格式如下。
diff(s):按findsym 函数指示的默认变量对符号表达式s求一阶导数。
diff(s,’v’):以v为自变量,对符号表达式s求一阶导数。
diff(s,n):按findsym 函数指示的默认变量对符号表达式s求n阶导数。
diff(s,’v’,n)::以v为自变量,对符号表达式s求n阶导数。
【实验3-7】 已知f(x)=ax2+bx+c,求f(x)的微分。
在MATLAB的命令窗口中输入下例内容:
>> f=sym('a*x^2+b*x+c');
>> diff(f)
ans =
2*a*x+b 8.符号方程的求解
在MATLAB中,求解用符号表达式表示的代数方程可以用solve实现,其调用格式如下:
solve(s):求解符号表达式s的代数方程,求解变量为默认变量。
solve(s,v):求解符号表达式s的代数方程,求解变量为v
Solve(s1,s2…sn,v1,v2 …vn):求解符号表达式s1,s2…sn组成的代数方程,求解变量分别为v1,v2 …vn。
【实验3-8】
求方程x2+2x+1=0的解
在MATLAB的命令窗口中输入下例内容:
>> f=sym('x^2+2*x+1=0');>> solve(f)ans =-1-1
9.课后练习题
222aruzm 1.提取符号表达式的自由变量
(当符号表达式中含有多余一个符号变量时,只有一个变量是独立变量,其余的符号当作常量。如果不指定那一个变量当作是自由变量,matlab将基于一定原则选择一个自由变量。)提示:findsym(s,n)
x212x5 2.在MATLAB中计算多项式的父母和分子 x23x2(提示:使用[n,d]=numden(A))
323 2.1、建立符号函数x2x
235(1)提取该表达式的分子和分母,并分别付给两个变量
(2)对这两个变量分别进行代数运算(加减乘除及乘方)3.在MATLAB中,按照不同的方式合并表达式(xe类项。
2ttt(xxe1)(xe)的同类项。e3.1.按来合并表达式
y3xy)(xye2yx)的参数
f
34、使用simple和simplify两个指令分别化简结果有什么不同
1612832xxx,比较两个
xx2x3的和。5.求级数1+x+x+…+x+…和1(使用symsum函数)
11212
32k6.分别求下例积分(1)
7.b2111dxdx
(2)
(3)1x2a1x211x2dx
ycosx2 求
y'、y''、y'''
x22x104x3z8.求三元非线性方程组 yz1的解
第四篇:实验3 关系运算设计(c语言编程)(定稿)
实验3 关系运算设计
一、实验目的
熟悉笛卡儿积、关系复合运算、关系的自反闭包、对称闭包和传递闭包的概念,并编程设计求其运算。
二、实验内容
1.由用户输入两个集合A和B,计算A与B的笛卡尔积。提示:根据笛卡儿积的定义,只需将集合A的各个元素与集合B的各个元素进行配对即可。集合A、B可用一维数组表示,要求配对后的结果用有序对的集合的形式输出。源代码:#include
int a[80],b[80],i,j,k,l;
printf(“输入a,b的元素个数:n”);
scanf(“%d%d”,&i,&j);
printf(“输入a的元素:n”);
for(k=0;k
scanf(“%d”,&a[k]);
printf(“输入b的元素:n”);
for(k=0;k scanf(“%d”,&b[k]); printf(“a,b的笛卡尔积:”); for(k=0;k for(l=0;l printf(“<%d,%d>,”,a[k],b[l]); return 0;} 运算 结 果 截 图 : 2.由用户输入两个关系R和T的关系矩阵,计算关系R和T复合运算后得到的关系的关系矩阵。提示: 利用关系矩阵MR=(aij), MT=(bij)来存储关系R和T,那么它们的复合运算就是两个关系矩阵的布尔积,其运算类似于线性代数中矩阵的乘法,区别是用合取“∧”代替线性代数矩阵运算中的乘法,用析取“∨”代替线性代数矩阵运算中的加 法。 源代码:#include for(j=0;j<4;j++) printf(“%dt”,R[i][j]); printf(“n”);}printf(“n”); printf(“关系T的关系矩形:n”);for(i=0;i<4;i++){ for(j=0;j<4;j++) printf(“%dt”,T[i][j]); printf(“n”);} printf(“n”);printf(“关系R和关系T的复合运算得到的关系的关系矩形: for(i=0;i<4;i++){ for(l=0;l<4;l++) { k=0; for(j=0;j<4;j++) if(R[i][j]&&T[j][l]) { a[k]=1; n”); k++; } else { a[k]=0; k++; } if(a[0]||a[1]||a[2]||a[3]) F[i][l]=1; else F[i][l]=0; } } for(i=0;i<4;i++){ for(j=0;j<4;j++) printf(“%dt”,F[i][j]); printf(“n”);} return 0;} 运算结 果截: 图 3.由用户输入集合A和集合A上的某一关系R的关系矩阵,计算关系R的自反闭包的关系矩阵。提示:假设关系R是集合A={a1, a2, „, an}上的关系,则R的自反闭包r(R)= R∪IA,其中IA表示A上的恒等关系。利用关系矩阵MR=(aij)来存储关系R,那么自反闭包r(R)的矩阵Mr=MR+MIA,这里MIA是主对角线全为1的单位矩阵,+运算为逻辑加运算,即析取∨。源代码:#include int n,i,j;printf(“请输入集合A的元素个数:”);scanf(“%d”,&n);int A[n],R[n][n];printf(“请输入集合元素:”);for(i=0;i for(i=0;i for(j=0;j printf(“%dt”,R[i][j]); printf(“n”);} printf(“n”);printf(“关系R的自反闭包的关系矩形:n”);for(i=0;i if(i==j) { R[i][j]=1; printf(“%dt”,R[i][j]); } else printf(“%dt”,R[i][j]);} printf(“n”); } return 0;} 运算 结 果 截 : 图 4.由用户输入集合A和集合A上的某一关系R的关系矩阵,计算关系R的对称闭包的关系矩阵。提示:假设关系R是集合A={a1, a2, „, an}上的关系,则R的对称闭包s(R)= R∪R-1,其中R-1表示R的逆关系。利用关系矩阵MR=(aij)来存储关系R,那么对称闭包s(R)的矩阵Ms=MR+MR-1,这里+运算为逻辑加运算,即析取∨。源代码:#include int n,i,j;printf(“请输入集合A的元素个数:”);scanf(“%d”,&n);int A[n],R[n][n];printf(“请输入集合元素:”);for(i=0;i for(i=0;i 运算 结 果 截 图 :{ } printf(“n”);printf(“关系R的对称闭包的关系矩形:n”);for(i=0;i } printf(“n”);return 0;if(R[i][j]==1)printf(“%dt”,R[i][j]); R[j][i]=1;for(j=0;j } } 5.由用户输入集合A和集合A上的某一关系R的关系矩阵,计算关系R的传递闭包的关系矩阵。提示:假设关系R是集合A={a1, a2, „, an}上的关系,则R的传递闭包t(R)= R∪R2∪…∪Rn。利用关系矩阵MR=(aij)来存储关系R,那么利用Warshall算法可以求得其传递闭包t(R)的矩阵Mt。(本题选做,Warshall算法参考教材)源代码:#include int n,i,j,l,k,a[4];printf(“请输入集合A的元素个数:”);scanf(“%d”,&n);int A[n],R[n][n],T[n][n],K[n][n],L[n][n];printf(“请输入集合元素:”);for(i=0;i } printf(“n”);printf(“关系R的传递闭包的关系矩形:n”);for(j=0;j for(i=0;i for(i=0;i } for(i=0;i R[i][j]=1;for(l=0;l k=0;for(j=0;j if(R[i][j]&&R[j][l]) { a[k]=1; k++; } else { a[k]=0; k++; } if(a[0]||a[1]||a[2]||a[3])T[i][l]=1;else T[i][l]=0; } } for(i=0;i } for(l=0;l k=0;for(j=0;j if(K[i][j]&&T[j][l]) { a[k]=1; k++; } else { a[k]=0; k++; } if(a[0]||a[1]||a[2]||a[3])L[i][l]=1;else L[i][l]=0; } for(i=0;i R[i][j]=1; printf(“%dt”,R[i][j]);} else } printf(“%dt”,R[i][j]); 运printf(“n”);return 0; } } 算 结 果 截 图 : 三、实验小结(本次实验的心得体会,字数不限) 终于做完实验三了,,很高兴 还没怎么复习,心情很复杂。。。 ~~ ~~。 ------ 3DSmax学习笔记(7)------挤出命令 挤出是3DSmax中经常使用非常重要的一个命令.A.在二维图像中,它是使二维图像(线)转化为三维图像的重要工具.这里面有两 种情况: (1)当二维图像是一个未封闭的图形时,使用挤出命令所得到的三维图像是 一个很薄的没有厚度的3D图形: 2.当二维图像是一个封闭的图形(如园,园环,封闭的无规则的图形等等)。使用挤出命令后所得到的一定是个以原图为基础的三维立体图形 在实际中,一般是采用封闭的线条进行挤出建模的,为了达到这个目的,还要配合两样工具.一个是轮廓工具,一个是焊接工具.从上一节中,我们知道,轮廓工具的作用是在图形---线的基础上,向里或者是向外再复制一条与原图相似线,并且组成一个封闭的二维图形,这样再使用挤出命令就可得到一个三维的立体图形: 另外还有一个焊接工具.在很多情况下,视图中表面上看到是封闭的二维图形,实际上有的两线相交的地方并没有粘合在一起而形成闭合的样条线。正如前面所说的,在这种情况下使用挤出命令,得到的只是一个很薄的没有厚度的3D图形。 如何解决这个问题呢? 那就要使用焊接工具,焊接工具的作用是将在视图中看不清楚是否相连的两个顶点焊接在一起而形成一个封闭的二维图形.(2)操作简述 先将二维图形转化为可编辑样条线,再用鼠标左键点击样条线点的图标 点----点击焊接工具 然后框选图形所有顶------在小方框内输入10左右的数字(不能太大,也不能太小)-------再次点击焊接按纽。OK。图示如下: 在挤出命令成功后,在命令面板上会显示出有关参数: 参数中数量是表示挤出物体的高度(有正----向外突,有负----向里突),如果使用鼠标也可以达到同样的目的,方法是按着鼠标左键不放而进行向里或者向外拖动。 分段是指在高度上分成多少段。如果要想这个物体更园更光滑。那就要在面板上点击可编辑样条----点击插值,在插值中输入较大的步数 B.在三维图像中,同样可以使用挤出命令:但这个三维物体必须先转化为可编辑多边形,挤出命令才会出现。在三维图像中,挤出命令多与插入命令,轮廓命令,倒角命令配合使用。在这种情况下,同这些工具一样.它只作用於面-----可将面缩进或挤出来达到修改图形的目的.它与插入命令,轮廓命令,倒角命令还有不同的地方是,它还可以对多边形的边进行挤出.挤出与插入配合使用的方法: 1。点击插入命令,点击物体的某一面(该面立显红色)按着左键不动,进行上下左右移动,就可以确定插入的大小,或者点击右面的小方框;在小方框内输入数字同样可以确定插入大小。 2。再点击挤出命令,在弹出的小方框内输入正数,往外挤。反之,输入负数则往内挤,图示如下:第五篇:3DSmax学习笔记(7)------挤出命令