基本概念上课件_第1页
基本概念上课件_第2页
基本概念上课件_第3页
基本概念上课件_第4页
基本概念上课件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

科学计算软件第二章基本概念(上)初学者易犯的错误大小写错误括号错误:三种括号的不同用途,注意括号要匹配函数使用错误:Sinx空格符号错误:相乘时要加空格或用乘号未清除某些变量的先前定义或赋值建议检查语法、拼写错误出错时重启内核更改notbook中的字号edit菜单——属性命令(Preferences)—FormattingOptions—FontOptions2.1常数例1计算出Pi的50位有效数字的近似值N[Pi,50]例22.2内置函数函数可以用函数名表示,也可采用基本输入模板,如:Sqrt[x]或表示x的平方根。注意下述语句的区别2^(0.5)2^(1/2)2^(1/2.0)例3Sqrt[1521]2.2内置函数例4高次方根8^(1/3)(-8)^(1/3)例5N[Sqrt[2]]N[Sqrt[2],50]

2.2内置函数Sign[x]:返回x的符号,0的符号为0例7Sign[-27.5]Sign[0]Sign[6.254]2.2内置函数对正整数n,阶乘定义为n!=1*2*…*(n-1)*n,通常小数没有阶乘,像0.5!,0.65!都是错误的。将Gamma函数定义为非整数的阶乘,因为当x是正整数n的时候,Gamma函数的值是n-1的阶乘。Γ(x)=∫e^(-t)*t^(x-1)dt(积分下限是零,上限是+∞)(x<>0,-1,-2,-3,……)可以证明Γ(x)=(x-1)*Γ(x-1),所以当x是整数n时,Γ(n)=(n-1)(n-2)……=(n-1)!,这样Gamma函数实际上就是阶乘的延拓。2.2内置函数Factorial[n]或n!给出n的阶乘特别地,0的阶乘定义为0!=1例85!0!Factorial[3.5]2.2内置函数例9Random[Integer]Random[Real]Random[Complex]Random[Real,5]Random[Real,{3,5}]Random[Real,{3,5},10]Random[Integer,{1,10}]Random[Complex,{2+I,5+6I}]2.2内置函数prime[praim]n.最初,青春,精华adj.主要的,最初的,有青春活力的,最好的,第一流的,根本的,[数]素数的v.预先准备好,<口>让人吃(喝)足,灌注,填装Prime[n]:给出第n个素数例10求出第7个素数Prime[7]2.2内置函数Fibonaccinumbers[复][数]斐波纳契数列(一种整数数列,其中每数等于前面两数之和)1,1,2,3,5,8,13,21Fibonacci[n]:给出第n个斐波纳契数例11Fibonacci[7]2.2内置函数Mathematica中有三种对实数取整的方式Ceiling[x]:返回不小于x的最小整数,又称为向正无穷方向取整ceilingn.天花板,最高限度例12Round[5.75]Floor[5.75]Ceiling[5.75]2.2内置函数IntegerPart[x]:返回x的整数部分integern.整数FractionalPart[x]:返回x的小数部分fractionaladj.部分的,碎片的,分数的,小数的IntegerPart[x]+FractionalPart[x]=x例13IntegerPart[4.67]FractionalPart[4.67]IntegerPart[4.67]+FractionalPart[4.67]2.2内置函数Quotient[m,n]:返回m除以n得到的余数quotientn.商,份额Mod[m,n]:返回m除以n得到的余数例14Quotient[17,3]Mod[17,3]2.2内置函数Timing[表达式]:计算表达式,并返回内核所花费的CPU时间例18为了计算第1000000个素数,内核需要花费多少时间?Prime[1000000]//TimingTiming的结果与具体机器性能有关2.2内置函数Log[x]:求x的自然对数;Log[b,x]:求x以b为底的对数Exp[x]:自然指数函数例20计算log2100Log[100]Log[2,100]Log[2,100]//N注:Mathematica总是给出精确的答案2.2内置函数基本三角函数正弦、余弦、正切、正割、余割、余切Sin,Cos,Tan,Sec,Csc,Cot双曲函数Sinh,Cosh,Tanh,Sech,Csch,Coth反双曲函数以上内容请同学们自学2.2内置函数Print[表达式]:显示表达式,后接分行符Print[表达式1,表达式2,…]:显示表达式1,表达式2,…,然后只接一个分行符例27输出字符Print["Thisprintsalineoftext."]例28a=1;b=2;c=3;d=4;e=5;Print[a,b,c,d,e]2.2内置函数Mathematica中有一类函数以字母Q结尾,这些函数用来检测特定的条件,并返回逻辑值DigitQEvenQOddQSameQSrtingQIntegerQ2.3基本的算术操作例31Plus[2,3,4]Times[2,3,4]Power[2,3,4]2.3基本的算术操作FullForm[表达式]:显示表达式的内部形式例32FullForm[a+b+c]FullForm[a-b]FullForm[(a*b)^c]

2.3基本的算术操作几个在特殊场合(常见于循环控制)非常有用的命令Increment[x]或x++:x的值自加1,返回x的原值Decrement[x]或x--:x的值自减1,返回x的原值PreIncrement[x]或++x:x的值自加1,返回新值PreDecrement[x]或--x:x的值自减1,返回新值AddTo[x,y]或x+=y:使x的值增加y,返回x的新值SubtractFrom[x,y]:使x的值减少y,返回x的新值TimeBy[x,y]或x*=y:将x*y的结果存入x中DivideBy[x,y]或x/=y:将x/y的结果存入x中2.3基本的算术操作例33x=3;x++

x=3++x等价于x=3;xx=x+1;等价于x=x+12.3基本的算术操作例34x=3;y=4;x+yxx=3;y=4;x+=yx等价于x=x+y2.4字符串StringLength[字符串]:求字符串长度StringJoin[字符串1,字符串2......]:连接字符串StringTake[字符串,{m,n}]:从第m个字符开始取n个字符StringDrop[字符串,{m,n}]:删除字符串中从第m个字符开始的n个字符StringInsert[字符串1,字符串2,n]:将字符串2插入字符串1的第n个字符前生成一个新字符串自学2.5赋值、替换与逻辑关系Mathematica提供了两种类型的赋值lhs=rhs:即时赋值语句,在进行赋值时计算rhslhs:=rhs:延时赋值语句,以后调用时才计算rhs例38用递归定义函数时(第2.9节),必须用“:=”f[0]=1;f[n_]:=nf[n-1]此处使用“=”会出错,因为这时函数还没有定义完计算过程f[5]?5f[4]->f[4]?4f[3]->f[3]?3f[2]->f[2]?2f[1]->f[1]=1f[0]=1;f[n_]:=nf[n-1]2.5赋值、替换与逻辑关系在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。使用递归解决问题,思路清晰,代码少。使用递归算法要耗用更多的栈空间递归算法都可以改写成与之等价的非递归算法。递归和迭代(循环)密切相关,即函数可以使用递归或迭代返回相同的结果。通常某个计算适用于一种技巧或另一种技巧,只须选择最自然或最理想的方法。用文字定义的一个阶乘计算函数如数字小于零,则将其拒绝。如数字不是整数,则将其拒绝。如数字为零,其阶乘则为1。如数字大于零,则将其乘以下一个更小整数的阶乘若要计算任一个大于零的数字的阶乘,必须至少计算另外一个数字的阶乘。函数在对当前数字执行计算之前,必须先对小于当前数字的相邻数字调用其自身。2.5赋值、替换与逻辑关系递归如果使用不慎,创建的递归函数就可能从不返回结果并且不能到达终点。这种递归导致计算机执行“无限”循环。示例:忽略阶乘计算文字描述中的第一项规则(有关负数的规则),然后计算任意负数的阶乘。这种计算失败的原因是:若要计算-24的阶乘,必须计算-25的阶乘,要计算-25的阶乘,必须先计算-26的阶乘,依此类推。显然,这种计算永远得不出结果。2.5赋值、替换与逻辑关系如果怀疑可能出现递归过多(或无限递归)的情况,则设计函数时就应加入计算函数调用其自身的次数的功能,并设置调用次数限制。如果函数调用自身的次数超过阈值,则函数可以自动退出。2.5赋值、替换与逻辑关系例39定义分段函数时(第2.9节),必须使用“:=”g[x_]:=x^2/;x>=0g[x_]:=-x^2/;x<0定义时并不计算,只有具体代入x的值后才计算第一章的例子x=3f[x_]=Sin[x]Plot[f[x],{x,0,2Pi}]问题出现在哪里?2.5赋值、替换与逻辑关系替换:要计算表达式的值,而又不想给某个符号赋值,可以使用替换符号/.例41假设要计算x=3时表达式x^2+5x+6的值,而又不想给x赋值x^2+5x+6/.x->3?x如果x之前有值,这样处理可不可行?2.5赋值、替换与逻辑关系/.也可以用来把一个表达式替换为另一个表达式例42Sqrt[2x+3]+(2x+3)^2/.2x+3->3y+5例43一次进行多个替换2x+3y/.{y->x,x->y}2.5赋值、替换与逻辑关系逻辑关系(比较关系)Equal[x,y]或x==y:等值判断Unequal[x,y]或x!=y:不等值判断Less[x,y]或x<y:小于关系判断Greater[x,y]或x>y:大于关系判断LessEqual[x,y]或x<=y:小于等于关系判断GreaterEqual[x,y]或x>=y:大于等于关系判断注1:Equal和Unequal可用于非数值量的比较注2:“=”表示赋值或定义,“==”表示判断2.5赋值、替换与逻辑关系例441==21!=21<=2a+a==2a2==22!=22<=2a<a2.5赋值、替换与逻辑关系逻辑运算And[p,q]或p&&q或p∧q:逻辑与Or[p,q]或p||

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论