声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3708|回复: 8

[mathematica] MATHEMATICA讲座(1) ----徐安农教授

[复制链接]
发表于 2006-5-9 15:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
MATHEMATICA讲座第一讲
1 数的运算
算例
378/123
N[378/123,6] (*取小数点后6位的近似值*)
Pi^2
E^(-1)
100!
N[Pi,100]
N[I^(-I)]
2 常用数学函数

Sqrt[ ]平方根, Exp[ ]指数函数, Log[ ] 对数函数,
Sin[ ] 正弦函数, Cos[ ] 余弦函数,
Tan[ ] 正切函数, Cot[ ] 余切函数,
Sec[ ] 正割函数, Csc[ ] 余割函数,
ArcSin[ ] 反正弦函数, ArcCos[ ] 反余弦函数,
ArcTan[ ] 反正切函数, ArcCot[ ] 反余切函数,
ArcSec[ ] 反正割函数, ArcCsc[ ] 反余割函数,
Sinh[ ] 双曲正弦, Cosh[ ] 双曲余弦,
Tanh[ ] 双曲正切, Coth[ ] 双曲余切,
Sech[ ] 双曲正割, Csch[ ] 双曲余割,
ArcSinh[ ]反双曲正弦, ArcCosh[ ]反双曲余弦,
ArcTanh[ ]反双曲正切, ...
算例
Sin[N[Sqrt[3],50]]
3 其它函数
! 阶乘
Mod[n,m] n取模m的结,
Quoti ent[n,m] n除以m的商的整数部分
GCD[n,m]LCM[n,m] n和m的最大公约数和最小公约数
Round[ ] 距离近似数x最近的整数
Floor[ ] 不大于x的最大整数
算例
100!
Quoti ent[10,3]
GCD[105,30]
Round[-1.234]
Floor[-1.234]
4 变量的赋值与替换
算例
f1=x^2+3 x+1 (*将表达式赋给变量f1*)
f1/.x->3 (*求f1当x=3时的值f1(3)*)
f1/.x->x+1 (*在f1中用x+1替换x得到f1(x+1)*)
f1=. (*取消变量f1的定义*)
f1/.x->3 (*此时已经得不到所想的结果f1(3)*)
5 多项式计算
Expand[p] (* 多项式展开*)
Factor[p] (*多项式因式分解*)
算例
p1=x^3-6x^2+11x-6
p2=(x-1)*(x-2)*(x-3)
Factor[p1]
Expand[p2]


MATHEMATICA讲座第二讲
一元函数的图形
一 命令语句
Plot[表达式,{变量,下限,上限},可选项]
Plot[{表达式,表达式,...},{变量,下限,上限},可选项]
二 可选参数项
第一类参数
1. PlotRange->{y1,y2} 指定作图纵座标范围为(y1,y2)
默认值为Atuomatic或指定 All
执行算例
Plot[Tan[x],{x,-2Pi,2Pi}]
Plot[Tan[x],{x,-2Pi,2Pi},PlotRange->{-10,10}]
Plot[Exp[-x^2]*Sin[6x],{x,-2,2},PlotRange->{-0.5,0.5}]
Plot[Exp[-x^2]*Sin[6x],{x,-2,2},PlotRange->All]
2.AspectRatio->Automatic 按实际比例作图
默认值为Atuomatic=0.618:1
执行算例
Plot[Sqrt[1-x^2],{x,-1.5,1.5}]
Plot[Sqrt[1-x^2],{x,-1.5,1.5}, AspectRatio->Automatic]
3. Axes->Automatic 画坐标轴自动确定位置
Axes->None 不画坐标轴
Axes->{x0,y0} 指定坐标原点在(x0,y0)处
执行算例
Plot[Cos[x],{x,-2Pi,2Pi}]
Plot[Cos[x],{x,-2Pi,2Pi},Axes->None]
Plot[Cos[x],{x,-2Pi,2Pi},Axes->{1,2}]
4 AxesLabel->None 不说明坐标轴的标记
AxesLabel->{x,y} 指定横轴为x纵轴为y
AxesLabel->{u,v} 指定横轴为u纵轴为v
执行算例
Plot[Sin[x]/x,{x,-10,10},AxesLabel->None]
Plot[Sin[x]/x,{x,-10,10},AxesLabel->{x,y}]
Plot[Sin[x]/x,{x,-10,10},AxesLabel->{时间T,电流I}]
5. Ticks->{i,j} 规定坐标轴上的刻度位置
Ticks->{t1,t2,t3,...}
执行算例
Plot[{ArcSin[x],ArcCos[x]},{x,-1,1},
PlotStyle->{{RGBColor[0,1,1],Thickness[0.01]},
{RGBColor[1,0,1],Dashing[{0.05,0.05}]}}]
第二类 参数
1.DisplayFunction->Identity 只生成图形现在不显示
执行算例
Plot[{Sin[Tan[x]]-Tan[Sin[x]]},{x,1,2},
DisplayFunction->Identity]
Plot[{Sin[Tan[x]]-Tan[Sin[x]]},{x,-2,2}]
2. PlotPoints->50 指定计算函数值的取点数为 50
执行算例
Plot[{Sin[Tan[x]]-Tan[Sin[x]]},{x,-2,2},PlotPoints->50]
3. MaxBend 说明曲线的折线在相邻两段之间的最大折角
执行算例
4. PlotDivision 说明取点的限度
执行算例
5.PlotStyle->Thickness[t] 描述线宽
PlotStyle->GrayLevel 描述灰度
PlotStyle->RGBColor[r,g,b] 描述颜色
PlotStyle->Dashing[{d1,d2,...}] 描述虚线的画法
PlotStyle->PointSize[0.03] 描述点的大小
执行算例
Plot[{Sin[x],Sin[2x],Sin[3x]},{x,0,2Pi},
PlotStyle->{RGBColor[1,0,0],RGBColor[0,1,0],
RGBColor[0,0,1]}]
Plot[Sin[1/x],{x,-1,1}]
Plot[Sqrt[1+x^2],{x,-6,6},PlotStyle->Dashing[{0.02,0.01}]]
Plot[Sin[Cos[Sin[x]]],{x,-Pi,Pi}]
Plot[(Tan[Sin[x]]-Sin[Tan[x]])/x^2,{x,-5,5}]
Plot[{E^x,ArcTan[x],E^ArcTan[x]},{x,-5,5},PlotPoints->100]
三 图形的重新显示,组合,存储和输出
Show[t] 重新显示
Show[t1,t2,...,tn] 将几个图形合在一起
执行算例
f1=Plot[x,{x,0.1,2},PlotRange->{0,2}]
f2=Plot[1/x,{x,0.1,2},PlotRange->{0,3}]
f3=ParametricPlot[{2,t},{t,0,2}]
Show[f1,f2,f3]
Display["filename",图形]保存图形到文件中存为Postsceipt
格式
Hardcopy[图形] 将图形送去打印
四 二维参数图形
ParametricPlot[{x(t),y(t)},{t,下限,上限},可选项]
执行算例
ParametricPlot[{Sin[t],Cos[t]},{t,0,2*Pi},
AspectRatio->Automatic]
ParametricPlot[{Sin[2*t],Cos[3*t]},{t,0,2*Pi},
AspectRatio->Automatic]
y1=ParametricPlot[{Cos[t]^3,Sin[t]^3},{t,0,2*Pi},
AspectRatio->Automatic]
y2=ParametricPlot[{Cos[t],Sin[t]},{t,0,2*Pi},
AspectRatio->Automatic]
Show[y1,y2]
z1=ParametricPlot[{t-Sin[t],1-Cos[t]},{t,0,2*Pi},
AspectRatio->Automatic]
五 极坐标图形
执行算例
r[t_]:=(3Cos[t]^2-1)/2
ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi}, AspectRatio->Automatic]
r[t_]:=2(1-Cos[t])
ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi},
AspectRatio->Automatic]
r[t_]:=2Sin[3t]
ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi},
AspectRatio->Automatic]
r[t_]:=Cos[2*t]
ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi},
AspectRatio->Automatic]
r[t_]:=0.5*t
ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi},
AspectRatio->Automatic]
r[t_]:=Exp[t/3]
ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi},
AspectRatio->Automatic]
r[t_]:=Cos[8*t]
ParametricPlot[{r[t] Cos[t],r[t] Sin[t]},{t,0,2Pi},
AspectRatio->Automatic]
六 动画制作
<<Graphics\Animatio.m 调入动画制作软件包
Animate[图形,{自变量,下限,上限}],{参变量,下限,上限,步长}]
执行算例
<<Graphics\Animatio.m
Animate[Plot[Sin[x+t*Pi],{x,0,10Pi}],{t,0,5/3,1/3}]
Table[k, 100]
MATHEMATICA讲座第三讲
三维作图

一 命令语句
Plot3D[函数表达式,,,{变量,上限,下限},{可选项}]
Plot3D[{函数表达式,着色表达式},{变量,上限,下限},
{变量,上限,下限},{可选项}]

二 可选参数项
1 PlotRange,说明要求的图形显示范围
2 PlotLabel,说明图的名称标注
3 AspectRatio,说明整个图的高度比
4 Boxed:说明是否给图形加一个立体框
5 BoxRation:说明图形立体框在三个方向的长度比
6 ViewPoints:在将三维图形投射到平面上时使用的观察点.
7 Mesh:说明在曲线上是否画网格
8 HiddenSurface:曲面被挡住的部分是否隐掉
9 Shading:在曲面上是否涂阴影
10 lightScources:设置照明光源
11 Lighting:说明是否打开已经设置的光源
12 AmbienLight:漫射光设置.默认值是黑色,用GrayLevel[0]表示
13 ClipFill:作出的图形中被切掉的那些部分用什么方法填充
14 Axes:说明是否画坐标轴以及把坐标轴中心放在什么地方
15 Ticks:规定坐标轴上刻度的位置

执行算例
1 默认情形
Plot3D[x^2+y^2,{x,-1,1},{y,-1,1}]
2 适当选取X,Y,Z轴的比例关系
Plot3D[x^2+y^2,{x,-1,1},{y,-1,1},BoxRatios->{1,1,1.5}]
3 不加阴影的情形
Plot3D[x^2+y^2,{x,-1,1},{y,-1,1},
BoxRatios->{1,1,1.5},
Shading->False]
4 不打开照明的情形
Plot3D[x^2+y^2,{x,-1,1},{y,-1,1},
BoxRatios->{1,1,1.5},
Lighting->False]
5 不设网格的情形
Plot3D[x^2+y^2,{x,-1,1},{y,-1,1},
BoxRatios->{1,1,1.5},
Boxed->False,
Axes->False,
Mesh->False]
-SurfaceGraphics-
6 用参数方式图形更合乎实际情形
ParametricPlot3D[{函数表达式},{变量,上限,下限},
{可选项}]
ParametricPlot3D[{v Sin,v Cos,v^2},
{v,0,1},{u,0,2Pi},
BoxRatios->{1,1,1}]
ParametricPlot3D[{u,u^2,t},{u,-1,1},{t,0,1},
PlotPoints->25,Lighting->True,
ViewPoint->{2,-1,1}]
7 视点的选择
Plot3D[Cos[Sqrt[x^2+y^2]],{x,-10,10},{y,-10,10},
PlotPoints->25,Lighting->True,
ViewPoint->{1,1,2}]
Plot3D[Cos[Sqrt[x^2+y^2]],{x,-10,10},{y,-10,10},
PlotPoints->25,Lighting->True,
ViewPoint->{0,0,1}]
Plot3D[Cos[Sqrt[x^2+y^2]],{x,-10,10},{y,-10,10},
PlotPoints->25,Lighting->True,
ViewPoint->{0,1,2}]
ParametricPlot3D[{u^2,u,v},
{v,0,2},{u,-2,2},
BoxRatios->{1,1,0.6},ViewPoint->{1,3,1},Shading->True]
8 将多个曲面放在一张图上
Z1=Plot3D[x*y,{x,0,1},{y,0,1}]
Z2=ParametricPlot3D[{u,u,t},{u,0,1},{t,0,1},
PlotPoints->25,Lighting->True]
Z3=ParametricPlot3D[{1,u,t},{u,-1,1},{t,0,1},
PlotPoints->25,Lighting->True]
Show[Z1,Z2,Z3,BoxRatios->{1,1,1},
ViewPoint->{1,1,1},Shading->False]
9 动画制作
<<Graphics\Animatio.m
Animate[ParametricPlot3D[{u,u^2,t},{u,-1,1},{t,0,1},
PlotPoints->25,Lighting->True,
ViewPoint->{Cos[2*Pi*t],Sin[2*Pi*t],1}],
{t,0,1,1/6}]
波纹面动画演示
注意:此演示需要较大内存,耐心等待。
<<Graphics\Animatio.m
u[x_,y_,t_]:=Sum[(32*(1+Cos[n*Pi])*(1-Cos[m*Pi])*Sin[n*Pi*x]*Sin[m*Pi*y]*Cos[Sqrt[m^2+n^2]*Pi*t])/(m^2*n^2*Pi^2),
{m,1,4},{n,1,4}]
Animate[Plot3D[u[x,y,t],{x,0,1},{y,0,1},PlotRange->{-8,8}],{t,0,1.75,0.25}]
10 等值线图和密度图
例1 逢山开路问题
要在一山区修建公路,首先测得一些地点的高程,数据见下表 *)
A={{370,470,550,600,670,690,670,620,580,450,400,300,100,150,250},
{510,620,730,800,850,870,850,780,720,650,500,200,300,350,320},
{650,760,880,970,1020,1050,1020,830,800,700,300,500,550,480,350},
{740,880,1080,1130,1250,1280,1230,1040,900,500,700,780,750,650,550},
{830,980,1180,1320,1450,1420,1400,1300,700,900,850,840,380,780,750},
{880,1060,1230,1390,1500,1500,1400,900,1100,1060,950,870,900,930,950},
{910,1090,1270,1500,1200,1100,1350,1450,1200,1150,1010,880,1000,1050,1100},
{950,1190,1370,1500,1200,1100,1550,1600,1550,1380,1070,900,1050,1150,1200},
{1430,1450,1460,1500,1550,1600,1550,1600,1600,1600,1550,1500,1500,1550,1550},
{1420,1430,1450,1480,1500,1550,1510,1430,1300,1200,980,850,750,550,500},
{1380,1410,1430,1450,1470,1320,1280,1200,1080,940,780,620,460,370,350},
{1370,1390,1410,1430,1440,1140,1110,1050,950,820,690,540,380,300,210},
{1350,1370,1390,1400,1410,960,940,880,800,690,570,430,290,210,150}};
(*下面作三维地形图*)
ListPlot3D[A/400]
(*增加一些可选项*)
ListPlot3D[A/400,HiddenSurface->False,Boxed->False]
(*下面作等值线图*)
ListContourPlot[A/400]
(*下面作密度图*)
ListDensityPlot[A/400]
例2 二元函数的等值线图和密度图
Plot3D[Sin[x^2+y^2],{x,0,Pi},{y,0,Pi}]
ContourPlot[Sin[x^2+y^2],{x,0,Pi},{y,0,Pi}]
DensityPlot[Sin[x^2+y^2],{x,0,2Pi},{y,0,2Pi}]
MATHEMATICA讲座第四讲

方程求解

一. 代数方程求解
Solve[f[x]==0,x] (*一个方程求解*)
Solve[{f1[x,y]==0,f2[x,y]==0},{x,y}]
N[%]给出数值解
执行算例
Solve[x^4-x^3-6x^2+1==0,x]
N[%]
执行算例
Solve[{x-2y==0,x^2-y==1},{x,y}] (*方程组求解*)
执行算例
Solve[a*x^2+b*x+c==0,x]
(*请注意,能够求出公式解的情况是很少的,比如五次以上的代数
方程就已经没有公式解了。*)
执行算例
Solve[x^5+5x^3-3==0,x]
N[%]

二.求超越方程的近似解
FindRoot[f[x]==0,{x,x0}] 求方程f(x)=0在x0附近的根
执行算例
f=Sin[x]Exp[2x]-Cos[x]
FindRoot[f==0,{x,0.5}]
MATHEMATICA讲座第五讲

微积分运算

一. 极限
Limit[函数表达式,x->x0]
执行算例
Plot[Sin[x]/x,{x,-10,10}]
Limit[Sin[x]/x,x->0]
执行算例
Plot[Sqrt[x^2+3x]-x,{x,0,100}]
Limit[Sqrt[x^2+3x]-x,x->Infinity]//N
有的时侯Mathematica会求不出极限
Limit[(1+1/x)^x,x->infinity]
如果改写成下面的形式,则可以求出极限值
Limit[(1+x)^(1/x),x->0]
用下面的方式计算的更快
Exp[Limit[(1/x)Log[1+x],x->0]]

二. 微分
D[f[x],x]
D[f[x,y],y]
D[f[x],{x,n}]
执行算例
D[x^3+3x^2-5x+1,x]
D[Sin[x]*Exp[x y],y]
FindMinimum[f[x],{x,x0}](*求函数的极值*)
执行算例
L[x_]:=Exp[-x^2/2]
FindMinimum[-L[x],{x,0}]

三.不定积分与定积分
Integrate[f[x],x] 求不定积分
Integrate[f[x],{x,a,b}] 求定积分
NIntegrate[f[x],{x,a,b}] 求数值积分
Simplity[f[x]] 将表达式化简
执行算例
Integrate[1/Sqrt[1-x^2],x]
执行算例
Integrate[1/Sqrt[1-x^2],{x,-1,1}]
执行算例
Integrate[(x+1)/(x^2+3x+5),x]
D[%,x](*验证之*)
Simplify[%]
执行算例
NIntegrate[1/Sqrt[1-x^2],{x,-1,1}]
Plot[Sin[x]/x,{x,-2Pi,2Pi}]
NIntegrate[Sin[x]/x,{x,0.000001,Pi}]

四.幂级数展开
Series[f[x],{x,x0,n}] 将函数f(x)在x0点展开n阶
Normal[%] 去掉幂级数的余项尔后可以求值或画图形
执行算例
S=Series[Sin[x],{x,0,10}]
S1=Normal[S]
a1=Plot[Sin[x],{x,0,2Pi},PlotStyle->RGBColor[1,0,0] ]
a2=Plot[S1,{x,0,2Pi}, PlotStyle->RGBColor[0,0,1]]
Show[a1,a2,AspectRatio->Automatic]
回复
分享到:

使用道具 举报

发表于 2006-5-10 14:25 | 显示全部楼层
三贴加威望2点

多情清秋
06.5.10
发表于 2006-5-21 18:42 | 显示全部楼层
看来这个也不好拿呀!要努力才行!
发表于 2006-5-21 18:43 | 显示全部楼层
看来这个也不好拿呀!要努力才行!
发表于 2006-5-21 18:44 | 显示全部楼层
发表于 2006-5-22 17:34 | 显示全部楼层
是要努力才行!
发表于 2006-5-23 15:55 | 显示全部楼层
要是能下载下来看就好了
发表于 2006-6-21 15:50 | 显示全部楼层
我还以为是视频呢
发表于 2006-6-24 21:41 | 显示全部楼层
有没有视频的
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-10 12:18 , Processed in 0.078246 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表