mathcad(4)

2019-01-27 19:01

y=-4.889,z=-2.206。另外,也可以在求解模块前不定义初值,而是将求解模块定义成函数形式,然后用初值调用此函数来获得方程组的解,这种方法特别适合于试验不同初值,以获得不同的解,例如: Given

x2-2y+3z〓4 x-y+sin(z)〓5 cos(x)+sin(y)+cos(z)〓1

f(x,y,z):=Find(x,y,z) %定义求解函数f(x,y,z) f(1,1,1)T = [0.916 -4.889 -2.206]

f(-10,10,10)T = [0.246 -5.475 -2.337]

但Find函数也不是什么方程都能求解,对于某些方程组,不论你选取什么初值,Find函数可能都会告诉你,该方程组在这个初值下找不到解。在这种情况下,Mathcad为我们提供了另外一个代替Find的函数minerr,在用函数Find找不到解时,可以用这个函数来替代Find,其用法与Find相同,例如,上面2个例子中含有Find的一行可写成minerr(x,y,z)T及f(x,y,z):=minerr(x,y,z)的形式。但是要注意的是,minerr方法求出的是方程的近似解,其误差与方程的性态与初值有很大的关系,建议只有在Find无效时,才使用minerr方法求解。另外,不论用何种方法,求解模块中的自变量个数应不少于方程的个数。

求解模块不但能够求出方程组的解,它还能够在求解模块中输入不不等式条件以求出在某些不等式限定条件下方程的解,甚至在求解模块中都是不等式而没有任何一个方程,这可是Mathcad的一大特点。我们下面就具体例子说明它的用法及其适用范围。例如

Given x+y〓2 x2+y2〓3 f(x,y):=find(x,y)

TT

f(2,1) = [1.707 0.293] f(0,1) = [0.293 1.707]

选取不再的初值,解可能会不相同,但是,增加一个不等式条件后:

Given x+y〓2 x2+y2〓3 y>x+1 f(x,y):=find(x,y)

TT

f(2,1) = [0.293 1.707] f(0,1) = [0.293 1.707]

在求解方程过程中,为了得到某个确定的解,可以适当增加不等式条件,但一定不能与已有的方程或不等式矛盾。

4、微分方程的数值解

对于求解微分方程或微分方程组的初值问题数值解,即求下面方程或方程组:dYdX?F(x,y),Y(x0)?Y0,Mathcad为我们提供了函数3个函

数。rkfixed(y,x0,x1,npoints,D)用定步长Runge-Kutta法求方程的数

值解,其中y是含有n个初始条件的向量(对于一阶方程,n=1),[x0,x1]是方程要求解的区间,npoints是在区间[x0,x1]内插入npoints个等分点,将[x0,x1]分成(npoints+1)等份,D是这n个函数的导数所构成的列向量,即函数向量F(x,y)(对于n=1,即某个简单的函数f(x,y)的形式);rkadapt(y,x0,x1,npoints,D)采用变步长的Runge-Kutta法求解,最多

1-16

有npoints个分点,其它同上;bulstoer(y, x0,x1,npoints,D)采用Bulirsh-Stoer方法求解,其求解精度比定步长的Runge-Kutta法略好一点,其它同rkfixed函数的说明。这3个函数都返回一个矩阵,其首列对应求解区间内的npoints个点上的x值,其它列对应它在这npoints个点上的函数值(即解)。对于求解微分方程的边值问题,应该首先将边值问题转化为初值问题再求解,具体作法请参考有关微分方程数值解方面的书籍。

例 在[0,1]上求初值问题y??x2?y2,y(0)??1的数值解。 y0=-1 x0:=0 x1:=1 n:=100 D(x,y)=x2+y2

<0>

S:=rkfixed(y,x0,x1,n,D) length(S)=101

((ST)<50>)T=[0.5 -0.631] ((ST)<100>)T=[1 -0.233]

S是一个101行2列的矩阵,第0列是x在各分点上的值,第一列是对应的函数值。下面是解的曲线图:

例 解方程 y????y??2y,y(0)?1,y?(0)?3。

设y(x)?y0(x),y?(x)?y1(x), 则

dy0dx?y1(x),dy1dx??y1(x)?2y0

即若设Y?(y0,y1)T,F(x,y)?(y1,?y1?2y0)T,Y0?(1,3)T, 则有

dYdx?F(x,y),Yx?0?Y0,因此求解过程如下:

?1?y????3?y1??D(x,y)????y?2?y0??1S:?rkfixed?y,0,10,1000,D?

其中S是一个1001行3列的矩阵,其中第0列是x在各分点上的值,

最后的一列即第二列才是对应点上的函数值。

1.4 图形绘制与动画制作

1-17

Mathcad的绘图功能虽然不如下面我们要介绍的2个数学软件强,但它也能够满足实际应用的需要了。

1、绘制平面图形

选择Insert/Graph/X-Y Plot可绘制直角坐标系的平面图形(快捷键@),选择Insert/Graph/Polar Plot可绘制极坐标图形(快捷键Ctrl+7)。例如

2

f(x):=x.sin(x) g(x):=x.sin(x)

双击绘图区域,就会弹出一个对话框,可对图形选项进行修改:对数轴或者直角坐标系轴、刻度的标注方法、坐标轴是否交叉、线型、坐标轴及图形的标题等等,另外,也可直接单击图形的占位符修改如变量或函数的形式及个数、变量或函数的取值范围等。另外,从上一节中,我们可以看出,对2个长度相同的列向量,我们将其中一列看成是自变量,另一列看成是函数值,就可以对它绘图。 2、绘制空间图形

选择Insert/Graph/Surface Plot绘制曲面图(快捷键Ctrl+2),选择Insert/Graph/Contour Plot绘制等高线图(快捷键Ctrl+5),选择Insert/Graph/3D Scatter Plot绘制三维散点图,选择Insert/Graph /3D Bar Char绘制直方图,选择Insert/Graph/Vector Field Plot 绘制向量场图,三维图可进行旋转观察,其它说明与上面相同。

Mathcad画曲面图的作法是:将曲面的高度值存入一个矩阵,然后调用Insert/Graph/Surface Plot,将矩阵变量填入图形中的占位符内,下面画出z=x2+y2的图象,由于它的显示效果及功能都太差劲,我们不想过多说明。等高线的输入要求与此相同。

三维直方图的画法很简单,它只需要先建立一个向量,然后调用Insert/Graph /3D Bar Char,在出现的绘图的图形占位符处输入这个向量符号即可。例如

bar:=(3 2 1 4 7 3 9 6 8) %然后创建直方图,在占位符处输入bar

1-18

向量场图的绘制方法是:先创建一个矩阵,矩阵中的每一个元素都表示该场中的某一个点(x,y),此点用复数Z=x+iy的形式表示,然后将此矩阵向量填入向量场图的占位符处即可。要注意复数的输入方法,例如:3+2i的2与i之间不应有乘号,即使是输入i,也应输入1i才行。

3、动画制作

Mathcad能够制作动画并且还能将它存为AVI格式的文件以供其它程序如媒体播放器播放。我们以Help/Resource Center/Animation中的一个例子来介绍动画的制作过程。

例 制作极坐标下的图形r(x)=x(螺旋线)的动画,其中x为角度。 先输入绘图函数及x的取值范围,其中FRAME是一个系统变量,它不能在工作区内赋值,只能通过View/Animate赋值,系统默认初始值为0。下面一行的意思是,对此图形从x=0到x=FRAME(即帧),按x每次增加0.1计,生成若干幅不同的图形(即不同的帧)。 r(x):=x x:=0,0.1..FRAME

然后,调用Inert/Graph/Polar Plot插入一个极坐标图形,但由于FRAME=0,你将看不到螺旋线。现在,打开View/Animate菜单,你会看到弹出一个对话框,其中FRAME的初值为From(它表示从第From帧开始播放),终值为To(它表示到To帧终止播放),每秒的播放速度为At。选取合适的值,比如我们想让这个动画播放2秒,每秒16帧,则可选取From=0, To=35, At=16。然后,在图形区域内,按下鼠标左键并拖动,选取此图形要求播放动画的部分,单击弹出菜单的Animate按钮,你就会看到动画。另外,你也可以在紧接着弹出的Playback(回放)窗口中往复观察其执行结果。最后,如果你高兴的话,可以单击对话框中的Save As按钮,将之存成AVI文件以供其它程序使用。 在动画制作过程中,最关键是:画出若干幅(帧)图象,而每一幅(帧)

2

都与变量FRAME有关,并且是连续变化的。下面是在y=x的图象上,直线y=c(其中c为常数,它与FRAME有关,总是在变化)垂直于y轴从y=0移动到y=1的例子。先定义函数及规定取值范围。 f(x):?x2g(x):?FRAME39x:??1,?0.99..1

然后按@键画出图形,双击图形区域,选取交叉坐标轴。再调用菜单View/Animate,取From=0, To=39, At=10, 按下左键,拖动鼠标,选择全部图形区域,然后单击对话框中的Animate按钮,就可观察到一条直线从x轴开始,平行于x轴慢慢向上移动,最后到y=1的位置时动画结束,时间正好是4秒。怎么样,制作一个平面图形动画真是太容易了!不过我得提醒你,绘图的范围要选得合适,即每帧的图形x及y的坐标范围都要一样,否则会发生滚屏现象。

1.5 符号计算

1-19

Mathcad的符号运算功能不如Mathematica与MATLAB强大,但它直观易懂、基本上不用记忆即可使用。它所有的符号运算都包含在菜单Symbolics之内,你可以按以下步骤在Mathcad中进行符号运算:

●输入要计算的合法数学表达式,其中大部分数学符号都可用快捷键或通过数学面板输入。用鼠标选定要计算的数学公式,或者将十字丝移至数学区域内,然后执行菜单Symbolics中的某个合适的计算功能计算结果,此时Mathcad将会把计算结果显示在紧靠数学区域的下面。例如输入积分

b?ax?edxx

exp(b)?b?exp(b)?exp(a)?a?exp(a)在输入上面的积分后,选Symbolics/Evaluate/Symbolically菜单命令或按快捷键Shift+F9即可在当前数学公式的下面,得到计算结果。另外,你也可以进入Symbolics/Evaluation Style选项,修改表达式输出结果的位置,使结果显示在表达式的后面。

●输入数学公式后,紧接着按Ctrl+Shift+.,Mathcad显示“?→”,在占位符处输入符号计算相应的关键字或直接从数学面板上选取关键字,将十字丝移出数学区域或者直接按回车键即可。

(x?y)expand?x?4?x?y?6?x?y?4?x?y?y4432234

另外对于某些需要指定变量的命令,如方程求解命令、幂级数展开命令等,可以采用上面的方法,也可以采用如下方法:进入数学区域后,用编辑线选择指定的变量,然后执行某个需要指定变量的命令,如Symbolics/Variable中的命令。具体方法如下:

sin(a?x)sin(a?x)??13?3?15?56a?x???a??x???a??x?O?x?6??120??

??13?5?15?56x?a???x??a???x??a?O(a)?6??120?如果你不愿意记住关键字,那你可以从数学面板上选取,全部关键

字都在“Symbolic Keyword Palette”子板上,它们是:?→(输入单个占位符)、??→(输入双占位符)、float(表达式求实数值)、complex(表达式求复值)、expand(展开表达式)、solve(方程求解)、simplify(化简表达式)、substitute(变量代换)、collect(整理表达式)、series(级数展开)、assume(规定变量的类型、范围等)、parfrac(将多项式化成有理分式)、coeffs(提取多项式的系数)、factor(提取公因子)、fourier及invfourier(付立叶变换及逆变换)、laplace及invlaplace(拉式变换及逆变换)、MT→(矩阵转置)、M-1→(矩阵求逆)、|M|→(行列式求值)、

1-20


mathcad(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏教版小学语文二年级上册《美丽的丹顶鹤》教学设计2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: