1 / 44

科学计算软件 第二章

科学计算软件 第二章. 基本概念 ( 上 ). 初学者易犯的错误. 大小写错误 括号错误 :三种括号的不同用途,注意括号要匹配 函数使用错误 : Sinx 空格符号错误 :相乘时要加空格或用乘号 未清除某些变量的先前定义或赋值 建议 检查 语法、拼写错误 出错时 重启内核. 更改 notbook 中的字号. edit 菜单 —— 属性命令 (Preferences)—Formatting Options—Font Options. 2.1 常数. Pi 或 π :圆周率 E 或 e :自然对数的底

meriel
Download Presentation

科学计算软件 第二章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 科学计算软件 第二章 基本概念 (上)

  2. 初学者易犯的错误 • 大小写错误 • 括号错误:三种括号的不同用途,注意括号要匹配 • 函数使用错误:Sinx • 空格符号错误:相乘时要加空格或用乘号 • 未清除某些变量的先前定义或赋值 • 建议 • 检查语法、拼写错误 • 出错时重启内核

  3. 更改notbook中的字号 • edit菜单——属性命令(Preferences)—Formatting Options—Font Options

  4. 2.1 常数 • Pi或π:圆周率 • E或e:自然对数的底 • Degree:Pi/180,可用于将角度转化为弧度(mathematica中三角函数以弧度为单位) • GoldenRatio:黄金分割比,系统中默认的二维图形的宽高比 • Infinity或 ∞:无穷大,系统中作为一个特殊的常数 • EulerGamma:欧拉常数

  5. 2.1 常数 • 例1 计算出Pi的50位有效数字的近似值 N[Pi,50] • 例2

  6. 2.2 内置函数 • 函数可以用函数名表示,也可采用基本输入模板,如:Sqrt[x]或 表示x的平方根。 • 注意下述语句的区别 2^(0.5) 2^(1/2) 2^(1/2.0) • 例3 Sqrt[1521]

  7. 2.2 内置函数 • 例4 高次方根 8^(1/3) (-8)^(1/3) • 例5 N[Sqrt[2]] N[Sqrt[2],50]

  8. 2.2 内置函数 • Abs[x]:求实数x的绝对值或复数x的模 • 例6 Abs[5] Abs[-5] Abs[5+12I]

  9. 2.2 内置函数 • Sign[x]:返回x的符号,0的符号为0 • 例7 Sign[-27.5] Sign[0] Sign[6.254] • Plot[Sign[x],{x,-2,2}]

  10. 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 函数实际上就是阶乘的延拓。

  11. 2.2 内置函数 • Factorial[n]或n!给出n的阶乘 • 特别地,0的阶乘定义为0!=1 • 例8 5! 0! Factorial[3.5]

  12. 2.2 内置函数 • 随机数生成器在概率论与统计分析中非常有用 • Random[ ]:给出区间[0,1]上均匀分布的伪随机数 • Random[类型]:给出指定类型的均匀分布的伪随机数。类型包括Interger,Real和Complex。对整型和实型,返回值的范围为0到1,对复型,返回值范围为0和1+i确定的矩形内。 • Random[类型,范围]:返回指定范围内均匀分布的伪随机数 • Random[类型,范围,n]:返回指定范围内均匀分布的有n位有效数字的伪随机数

  13. 2.2 内置函数 • 例9 Random[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}]

  14. 2.2 内置函数 • prime [praim] • n. 最初, 青春, 精华 • adj. 主要的, 最初的, 有青春活力的, 最好的, 第一流的, 根本的, [数]素数的 • v. 预先准备好, <口>让人吃(喝)足, 灌注, 填装 • Prime[n]:给出第n个素数 • 例10 求出第7个素数 Prime[7]

  15. 2.2 内置函数 • Fibonacci • numbers[复][数]斐波纳契数列(一种整数数列, 其中每数等于前面两数之和) • 1,1,2,3,5,8,13,21 • Fibonacci[n]:给出第n个斐波纳契数 • 例 11 Fibonacci[7]

  16. 2.2 内置函数 • Mathematica中有三种对实数取整的方式 • Round[x]:返回最靠近x的整数,若小数部分恰好为0.5,则返回最靠近的偶数 • round vt. 弄圆, 使成圆形, 绕行, 四舍五入 • Floor[x]:返回不超过x的最大整数,或称为向负无穷方向取整 • floor n. (房间, 走廊等的)地面, 地板, 基底, (室内的)场地, 层, 海底, 议员席

  17. 2.2 内置函数 • Mathematica中有三种对实数取整的方式 • Ceiling[x]:返回不小于x的最小整数,又称为向正无穷方向取整 • ceiling n.天花板, 最高限度 • 例 12 Round[5.75] Floor[5.75] Ceiling[5.75]

  18. 2.2 内置函数 • IntegerPart[x]:返回x的整数部分 • integer n. 整数 • FractionalPart[x]:返回x的小数部分 • fractional adj. 部分的, 碎片的, 分数的, 小数的 • IntegerPart[x]+FractionalPart[x]=x • 例 13 IntegerPart[4.67] FractionalPart[4.67] IntegerPart[4.67]+ FractionalPart[4.67]

  19. 2.2 内置函数 • Quotient[m,n]:返回m除以n得到的商 • quotient n. 商, 份额 • Mod[m,n]:返回m除以n得到的余数 • 例14 Quotient[17,3] Mod[17,3]

  20. 2.2 内置函数 • GCD[m,n]:返回m与n的最大公约数 • LCM[m,n]:返回m与n的最小公倍数 • FactorInteger[n]:给出n的素数分解 • 自行练习

  21. 2.2 内置函数 • Timing[表达式]:计算表达式,并返回内核所花费的CPU时间 • 例18 为了计算第1 000 000个素数,内核需要花费多少时间? • Prime[1000000]//Timing • Timing的结果与具体机器性能有关

  22. 2.2 内置函数 • Log[x]:求x的自然对数;Log[b,x]: 求x以b为底的对数 • Exp[x]:自然指数函数 • 例 20 计算log2100 Log[100] Log[2,100] Log[2,100]//N • 注:Mathematica总是给出精确的答案

  23. 2.2 内置函数 • 基本三角函数 • 正弦、余弦、正切、正割、余割、余切 • Sin,Cos,Tan,Sec,Csc,Cot • 双曲函数 • Sinh,Cosh,Tanh,Sech,Csch,Coth • 反双曲函数 • 以上内容请同学们自学

  24. 2.2 内置函数 • 注:Mathematica中三角函数的参数以弧度为单位,可通过基本输入模板上的按钮输入角度,或者用角度乘内置常数Degree(Pi/180)以转换为弧度。 • 例23 计算sin 60o的平方 Sin[60 Degree]^2

  25. 2.2 内置函数 • Print[表达式]:显示表达式,后接分行符 • Print[表达式1,表达式2,…]:显示表达式1,表达式2,…,然后只接一个分行符 • 例27 输出字符 Print["This prints a line of text."] • 看看去掉引号会怎样?Mathematica支持中文吗

  26. 2.2 内置函数 • 例28 a=1;b=2;c=3;d=4;e=5; Print[a,b,c,d,e] • 试试将a、b、c、d、e写成列表再用Print输出

  27. 2.2 内置函数 • Mathematica中有一类函数以字母Q结尾,这些函数用来检测特定的条件,并返回逻辑值 • DigitQ • EvenQ • OddQ • SameQ • SrtingQ • IntegerQ

  28. 2.2 内置函数 • 例 29 ? PrimeQ PrimeQ[5] PrimeQ[6] • 例 30 多项式的判断 ? PolynomialQ PolynomialQ[x^2 y+x+Sqrt[y],x] PolynomialQ[x^2 y+x+Sqrt[y],y]

  29. 2.3 基本的算术操作 • 加:Plus[a,b,……]; • 乘:Times[a,b,……]; • 减:Subtract[a,b]; • 除:Divide[a,b] • 相反数:Minus[a] • 幂:Power[a,b],Power[a,b,c]等价于a^(b^c)

  30. 2.3 基本的算术操作 • 例31 Plus[2,3,4] Times[2,3,4] Power[2,3,4]

  31. 2.3 基本的算术操作 • FullForm[表达式]:显示表达式的内部形式 • 例32 FullForm[a+b+c] FullForm[a-b] FullForm[(a*b)^c]

  32. 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中

  33. 2.3 基本的算术操作 • 例33 x=3; x++ x=3 ++x 等价于 x=3; x x=x+1; 等价于 x=x+1

  34. 2.3 基本的算术操作 • 例 34 x=3;y=4; x+y x x=3;y=4; x+=y x 等价于 x=x+y

  35. 2.4 字符串 • StringLength[字符串]:求字符串长度 • StringJoin[字符串1,字符串2......]:连接字符串 • StringTake[字符串,{m,n}]:从第m个字符开始取n个字符 • StringDrop[字符串,{m,n}]:删除字符串中从第m个字符开始的n个字符 • StringInsert[字符串1,字符串2,n]:将字符串2插入字符串1的第n个字符前生成一个新字符串 • 自学

  36. 2.5 赋值、替换与逻辑关系 • Mathematica提供了两种类型的赋值 • lhs = rhs:即时赋值语句,在进行赋值时计算rhs • lhs : = rhs:延时赋值语句,以后调用时才计算rhs • 例 38 用递归定义函数时(第2.9节),必须用“:=” f[0] = 1; f[n_] := n f[n-1] • 此处使用“=”会出错,因为这时函数还没有定义完

  37. 计算过程 f[5] ? 5 f[4] ->f[4] ? 4 f[3] ->f[3] ? 3 f[2] ->f[2] ? 2 f[1] ->f[1]=1 f[0] = 1; f[n_] := n f[n-1]

  38. 2.5 赋值、替换与逻辑关系 • 例 39 定义分段函数时(第2.9节),必须使用“:=” g[x_] := x^2/;x>=0 g[x_] := -x^2/;x<0 • 定义时并不计算,只有具体代入x的值后才计算 • 第一章的例子 x=3 f[x_]=Sin[x] Plot[f[x],{x,0,2 Pi}] • 问题出现在哪里?

  39. 2.5 赋值、替换与逻辑关系 • 替换:要计算表达式的值,而又不想给某个符号赋值,可以使用替换符号/. • 例 41 假设要计算x=3时表达式x^2+5x+6的值,而又不想给x赋值 x^2+5x+6/. x->3 ?x • 如果x之前有值,这样处理可不可行?

  40. 2.5 赋值、替换与逻辑关系 • /.也可以用来把一个表达式替换为另一个表达式 • 例 42 Sqrt[2x+3]+(2x+3)^2/.2x+3->3y+5 • 例 43 一次进行多个替换 2x+3y/.{y->x,x->y}

  41. 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:“=”表示赋值或定义,“==”表示判断

  42. 2.5 赋值、替换与逻辑关系 • 例 44 1 == 2 1 != 2 1 <= 2 a+a == 2a 2 == 2 2 != 2 2 <= 2 a < a

  43. 2.5 赋值、替换与逻辑关系 • 逻辑运算 • And[p,q]或p&&q或p∧q:逻辑与 • Or[p,q]或p||q或p∨ q:逻辑或 • Xor[p,q]或p:逻辑异或 • Not[p]或 !p 或 ¬p:逻辑非 • Implies[p,q] p ⇒ q:逻辑蕴含

  44. 2.5 赋值、替换与逻辑关系 • 例 45 利用Mathematica验证逻辑分配律 p ∧ (q ∨ r)=(p ∧ q) ∨ (p ∧ r) lhs=p&&(q || r); rhs=(p&&q)||(p&&r); lhs == rhs *逻辑表达式可使用LogicalExpand命令进行比较* LogicalExpand[lhs] ŠLogicalExpand[rhs]

More Related