网站大量收购独家精品文档,联系QQ:2885784924

Mathematica教程4.doc免费

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.2微分方程的数值解???????????????? ??? 在Mathematica中用函数DSolve[]得到微分方程的准确解,用函数NDSolve得到微分方程的数值解,当然在此处要给出求解区间(x,xmin,xmax)。 ???? NDSolve也是既能计算单个的微分方程,也能计算联立微分方程组。它能对大多数的常微分方程和部分偏微分方程求解。在常微分可能有一些未知函数yi,但这些未知函数都依赖于一个单变量x。 NDSolve[{eqn1,eqn2,…},y,{x,xmin,xmax}]求函数y的数值解,x属于[xmin,xmax] NDSolve[{eqnl,eqn2,…},{y1,y2,…}{x,xmin,xmax}]求多个函数yi的数值解 NDSolve以InterpolatingFunction?? 目标生成函数yi的解,InterpolatingFunction目标提供在独立变量x的xmin到xmax范围内求少的近似值。NDSolve用迭代法求解,它以某一个x值开始,尽可能覆盖从xmin到xmax的全区间。   为使迭代开始,NDSolve指定yi及其导数为初始条件。初始条件给定某定点x处的yi[x]及尽可能的导数yi[x],一般情况下,初始条件可在任意x处,NDSolve将以此为起点自动覆盖xmin到xmax的全区域。 下面对初始条件y[0]=0和y[1]=0分别求出x从0到1的范围内y’[x]=y[x]的解。 再看下面的微分方程的数值解 例如: ?? 7.1模块和块中的变量???????????? ???? 前面我们学习了有关Mathematica的各种基本运算及操作,为了使Mathematica更有效的工作,我们可对Mathematica进行模块化运算。在模块内部通过编写一系列表达式语句,使其实现一定的功能。在Mathematica内部也提供了很多程序包,我们将学习如何调用它们。 ????? 一般情况下,Mathematica假设所有变量都为全局变量。也就是说无论何时你使用一个你定义的变量,Mathematica都假设你指的是同一个目标。然而在编制程序时,你则不会想把所有的变量当作全局变量,因为如果这样程序可能就不具有通用性,你也可能在调用程序时陷入混乱状态。给出定义模块或块和局部变量的常用 形式: Module[{x,y,...},body] 具有局部变量x,y…的模块 Module[{x=x0,y=y0,…},body] 具有初始值的局部变量的模块 lhs:=Module[vars,rhs/:cond] rhs和cond共享局部变量 Block[{x,y,... },body]运用局部值x,y, …计算body Block[{x=x0,y=y0,…},bddy] 给x,y,..赋初始值 ?? Mathematica中的模块工作很简单,每当使用模块时,就产生一个新的符号来表示它的每一个局部变量。产生的新符号具有唯一的名字,互不冲突,有效的保护了模块内外的每个变量的作用范围。首先我们来看Module函数,这个函数的第一部分参数,里说明的 变量只在Module内起作用,body执行体,包含合法的Mathematica语句,多个语句之间可用“ ;”分割下面定义有初值的变量t,Mathematica默认它为全局变量:   ln[1]:=t=lO Out[1]=10   模块中的t为局部变量,因此它独立于全局变量t ln[2]:=Module[{t},t=8;Print[t]] 全局变量t的值仍为10: ln[3]=t=lO Out[3]=10 下面定义函数中的中间变量t为局部变量并调用f: 全局变量t的值仍为10: ln[6]:=t=10 Out[6]=10 我们可以对模块中的任意局部变量进行初始化,这些初始值总是在模块执行前就被计算出来。下面给局部变量t赋初值u:调用函数g; Mathematica中的模块允许你把某变量名看作局部变量名。然而又存在有时你又希望它们为全局变量时,但变量值为局部的矛盾,这时我们可以用Block[]函数。下面是一个含有全局变量x表达式,使用x的局部值计算上面的表达式: ??? 在Mathematica中编制程序时,必须使程序中的各个部分尽可能的独立,这样程序才便于读懂、维护和修改。确保程序各部分不相干的主要方法是设置具有一定作用域的变量。在Mathematica中有两种限制变量作用域的基本方法:模块(Module)和块(Block)。我们在书写实际程序中,模块比块更具普遍性。然而在交互式计算中需要定义作用域时,块更实用。 ?? ? Module[vars,body]所要做的是把执行模块时表达式body的形式看成Mathematic

文档评论(0)

38号店铺 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档