mathematica 积分变换与微分方程
实验七 用Mathematica解常微分方程

实验七 用Mathematica 解常微分方程实验目的:掌握用Mathematica 软件求微分方程通解与特解的方法的语句和方法。
实验过程与要求:教师利用多媒体组织教学,边讲边操作示范。
实验的内容:一、求微分方程的通解在Mathematica 系统中用DSolve 函数求解微分方程,基本格式为:DSolve [微分方程,未知函数名称,未知函数的自变量]实验1 求微分方程x y 2='的通解.解 In[1]:= DSolve[y '[x ]==2x ,y [x ],x ]Out[1]=实验2 求微分方程x xe y y y 2323=+'-''的通解.解 In[2]:= DSolve[y ''[x ]-3y '[x ]+2y [x ]==(3x )Exp[2x ],y [x ],x ]Out[2]=实验3 求微分方程x y y sin 23='+''的通解.解 In[3]:=DSolve[y ''[x ]+3y '[x ]==2Sin[x ],y [x ],x ]Out[3]=其中方程中的等号应连输2个“=”,二阶导数记号应连输两个单引号.二、求微分方程的特解在Mathematica 系统中求特解的函数仍为DSolve ,而基本格式为:DSolve [{微分方程,初始条件},未知函数名称,未知函数的自变量]实验4 解微分方程0,20=+='=x y y x y .解 In[4]:=DSolve[{y '[x ]==2x +y [x ],y [0]==0},y [x ],x ]Out[4]=实验用笔算和机算两种方法求解下列微分方程:x xe y y y x x xy y x y y y e y y 43332.43.3cos 244.26.1=-'-''++='=+'-''=-'0,)1.(60)0(,sec tan .50=='+==-'=x x x y e y y e y x x y y。
数学实验 Mathematic实验十 微分方程

天水师范学院数学与统计学院实验报告实验项目名称微分方程所属课程名称数学实验实验类型微积分实验实验日期2011.11.23班级学号姓名成绩【实验目的】1.掌握用Mathematica求微分方程及方程组解的方法;2.学习求微分方程近似解的欧拉折线法.【实验原理】1.求解微分方程的命令DSolve.对于可以用积分方法求解的微分方程和微分方程组,可用Dsolve 命令来求其通解或特解.例DSolve[y''[x]+y'[x]-2*y[x]==0,y[x],x]如果要求初值问题,输入DSolve[{y''[x]+4y'[x]+3y[x]0,y[0]0,y'[0] 10},y[x],x]2.求微分方程数值解的命令NDSolve.对于不可以用积分方法求解的微分方程初值问题,可以用NDsolve命令NDSolve[{y'[x] y[x]^2+x^3,y[0] 0.5},y[x],{x,0,1.5}] 【实验环境】Mathematic 4【实验过程】(实验步骤、记录、数据、分析)1.欧拉折线法.例10.1 用欧拉折线法解初值问题. Clear[x ,y ,dx ,f]; x[0]=0; dx=0.1; y[0]=1;x[n_]:=x[n]=x[n-1]+dx ;y[n_]:=y[n]=y[n-1]+(1+y[n-1])*dx ; euler=Table[{x[n],y[n]},{n ,0,10}]; zhx=TableForm[euler ,TableHeadings {None ,{"x","y(Euler)"}}]Clear[g1,g2,y1,g3]; g1=Graphics[Line[euler]]; g2=ListPlot[euler]; y1[x_]=2Exp[x]-1;g3=Plot[y1[x],{x ,0,1}]; Show[g1,g2,g3,Axes True] Table[y1[x[n]]-y[n],{n ,1,10}] 2.用DSolve 命令解微分方程.例10.2 求微分方程22xxe xy y -=+'的通解.Clear[x ,y];DSolve[y'[x]+2x*y[x]x*Exp[-x^2],y[x],x]例l0.3 求微分方程0xxy y e '+-=在初始条件(1)2y e =下的特解. Clear[x ,y];DSolve[{x*y'[x]+y[x]-Exp[x]0,y[1]2E},y[x],x]例10.4 求微分方程x e y y y x 2cos 52=+'-''的通解. Clear[x ,y];DSolve[y''[x]-2y'[x]+5y[x]==Exp[x]*Cos[2x],y[x],x]//Simplify例10.5 (*example10.5*). Clear[x ,y ,t];DSolve[{x'[t]+x[t]+2y[t]==Exp[t],y'[t]-x[t]-y[t]==0,x[0]==1,y[0]==0},{x[t],y[t]},t]//Simplify 3.用NDSolve 命令求微分方程的近似解.例10.6 求初值问题:(1)(1)0,(1.2)1xy y xy y y '++-==在区间[1.2,4]上的近似解并作图.f1=NDSolve[{(1+x*y[x])*y[x]+(1-x*y[x])*y'[x]==0,y[1.2]==1},y ,{x ,1.2,4}]Plot[Evaluate[y[x]/.f1],{x ,1.2,4}] y[1.6]/.f1例10.7 求范德波尔方程2(1)0,(0)0,(0)0.5y y y y y y ''''+-+===-在区间[0,20]上的近似解.Clear[x ,y];NDSolve[{y''[x]+(y[x]^2-1)*y'[x]+y[x]==0,y[0]==0,y'[0]==-0.5},y,{x,0,20}];Plot[Evaluate[y[x]/.%],{x,0,20}]【实验结论】(结果)1.用Mathematica求微分方程及方程组解的方法;2.学习求微分方程近似解的欧拉折线法.附录1:源程序实验十微分方程第一题(1)Clear[x,y];DSolve[y''[x]+6*y'[x]+13*y[x]0,y[x],x] y x3x C2Cos2x3x C1Sin2x(2)Clear[x,y];DSolve[D[y[x],{x,4}]+2*y''[x]+y[x]0,y[x],x]//S implifyy x C2x C4Cos x C1x C3Sin x(3)Clear[x,y];DSolve[D[y[x],{x,4}]-2*y'''[x]+y''0,y[x],x]y x C1x C2x2C32x C4x3y 12(4)Clear[x,y];DSolve[y''[x]-2*y'[x]+5*y[x]Exp[x]*Sin[2*x],y[ x],x]y xx C2Cos2x x C1Sin2x18x Cos2x2Sin2x12x Cos2x x218Sin4x(5)Clear[x,y];DSolve[y''[x]-6*y'[x]+9*y[x](x+1)*Exp[3*x],y[x ],x]y x 163x3x2x36C16x C2第二题(1)Clear[x,y];DSolve[{y''[x]+4y'[x]+29y[x]0,y[0]0,y'[0]1 5},y[x],x]y x32x Sin5x(2)Clear[x,y];DSolve[{y''[x]-y[x]4*x*Exp[x],y[0]0,y'[0]1 },y[x],x]y x 12x222x22x x22x x2(3)Clear[x,y];DSolve[{y''[x]+y[x]+Sin[2x]0,y[Pi]1,y'[Pi] 1},y[x],x]y x133Cos x Sin x Sin 2x第三题Clear[x,y];DSolve[{(x^2-1)y'[x]+2*x*y[x]-Cos[x]0,y[0]1},y[x],x]y x1Sin x 1x 2Clear[x,y];g1=NDSolve[{(x^2-1)*y'[x]+2*x*y[x]-Cos[x]0,y[0]1},y,{x,0,1}]y InterpolatingFunction 0.,1.,Plot[Evaluate[y[x]/.g1],{x,0,1}]0.20.40.60.812468Graphics第四题Clear[x,y,t];DSolve[{x'[t]+5*x[t]+y[t]Exp[x],y'[t]-x[t]-3*y [t]Exp[2*x]},{x[t],y[t]},t]//Simplifyx t1210115t45t15t x15t15t2x7215t15415C115C2715415C115C2,y t1210115t15t15t x75t15t2x715C115415C2 7215t15C115415C2第五题Clear[x,y,t];DSolve[{x'[t]+3*x[t]-y[t]0,y'[t]-8*x[t]+y[t] 0,x[0]==1,y[0]4},{x[t],y[t]},t]x t t,y t4t第六题Clear[x,y];DSolve[x^2*y''[x]+x*y'[x]-4*y[x]x^3,y[x],x]y x x35C1x2x2C2第七题Clear[x,y];NDSolve[{y''[x]+x*y'[x]+y[x]0,y[1]0,y'[2]5 },y,{x,0,4}]y InterpolatingFunction0.,4.,Plot[Evaluate[y[x]/.%],{x,0,4}]50403020101234 Graphics附录2:实验报告填写说明1.实验项目名称:要求与实验教学大纲一致。
Mathematica中微积分使用

一个返回的是y[x]的表达式,并不能给出y[0],y’[x] 一个返回的是y的纯函数
例:
DSolve[y'[x] + 2x y[x]== x E^(-x^2), y, x] DSolve[{y'[x] + 2x y[x]== x E^(-x^2), y[1]==2E}, y, x]
2
1 (1 x )
2
dx
0
分段函数的积分
Hale Waihona Puke 2| x 1 | dx
0
原函数无法用初等函数表示的积分
sin x x
dx
极限概念的理解
方法:列表、作图、动画
数列极限的直观说明
观察数列 an=1/n2在n趋于无穷时的变化趋势
函数极限的直观说明
考察函数f(x)=sinx/x当x趋向于0时的变化趋势
它有时求不出,可结合极限存在的条件 有时需对被求极限的式子作一变形 无穷振荡处极限的表示方法
导数和微分
导数: D[f,x] 计算偏导数 D[f,x1,x2,…] 计算多重导数 D[f,{x,n}] 计算n阶导数 微分 Dt[f] 计算全微分 Dt[f,x] 计算全导数 Dt[f,x1,x2,…] 计算多重全导数 Dt[f,x, constants—>{c1,c2,…}] , 其中c1,c2,…为常数
求最值所对应的程序
f[x_] = 2x^3 - 6x^2 - 18x + 7 zhudian = Solve[f'[x] == 0, x] fxyvalue = Union[({x, f[x]}/.zhudian), {{a,f[a]}}, {{b, f[b]}}] fvalue = Transpose[fxyvalue][[2]] fmax = Max[fvalue] fmin = Min[fvalue] xx1 = Position[fxyvalue, fmax] xx2 = Position[fxyvalue, fmin] xmax = fxyvalue[[xx1[[1, 1]]]] xmin = fxyvalue[[xx2[[1, 1]]]]
Mathematica入门(一)

NUDT
Mathematica入门 入门
表的操作 Join[ t1 , t2] Union[ t1 , t2] 将表 t1 和表 t2连接成一个表 将表 t1 和表 t2 的并集组成一个表
某些特殊属性表的建立 Table[ f , {i,imin , imax , stepi} , { j , jmin , jmax , stepj}]
t1 = 1, 2, 4 t2 = 1, 3, Sin x , Cos x
8 8@ @ <D D 8 <
表元素的操作 t[[n]] 表示表 t 的第 n 个元素(同Part[t , n]的意义 个元素( 的意义) 的意义 t[[i , j]] 表示表 t 中第 i 个子表的第 j 个元素 Length[ t ] 表示表 t 的元素个数
p = x + 2 x y+ y p . x® 1
2
p = x2 + 2 x y + y2 p . x ® 1, y ® 2
8 <
NUDT
Mathematica入门 入门
(5)表 表是存贮多个数、变量或算式等对象的一种数据结构, 表是存贮多个数、变量或算式等对象的一种数据结构,一 个表用一对花括号表示,其成员(元素) 个表用一对花括号表示,其成员(元素)在括号内用逗号 隔开,同一个表的成员可以是不同的数据类型, 隔开,同一个表的成员可以是不同的数据类型,表的成员 还可以是一个表(子表)。 还可以是一个表(子表)。
1
-1.5
-1
-0.5 -0.5
0.5
1
1.5
-2
-1
1
2
-1
-1
-2
NUDT
Mathematica入门 入门
Mathematica——常微分方程、拉氏变换与级数实验(最新整理)

§13.5常微分方程、拉氏变换与级数实验[学习目标]1.会用Mathematica 求解微分方程(组);2.能用Mathematica 求微分方程(组)的数值解;3.会利用Mathematica 进行拉氏变换与逆变换;4.能进行幂级数和傅里叶级数的展开。
一、常微分方程(组)Mathematica 能求常微分方程(组)的准确解,能求解的类型大致覆盖了人工求解的范围,功能很强。
但不如人灵活(例如在隐函数和隐方程的处理方面),输出的结果与教材上的答案可能在形式上不同。
另外,Mathematica 求数值解也很方便,且有利于作出解的图形。
在本节中,使用Laplace 变换解常微分方程(组)的例子也是十分成功的,过去敬而远之的方法如今可以轻而易举的实现了。
求准确解的函数调用格式如下:DSolve[eqn ,y[x],x] 求方程eqn 的通解y (x ),其中自变量是x 。
DSolve[{eqn ,y[x 0]= =y 0},y[x],x] 求满足初始条件y (x 0)= y 0的特解y (x )。
DSolve[{eqn1,eqn2,…},{y 1[x],y 2[x],…},x]求方程组的通解。
DSolve[{equ1,…,y 1[x 0]= =y 10,…},{y 1[x],y 2[x],…},x] 求方程组的特解。
说明:应当特别注意,方程及各项参数的表述方式很严格,容易出现输入错误。
微分方程的表示法只有通过例题才能说清楚。
例1解下列常微分方程(组):(1),(2), (3) ,25)1(12+++='x x y y y x x y y )(132++='⎩⎨⎧-='='y z z y(4)的通解及满足初始条件y (0)=0,z (0)=1的特解。
⎩⎨⎧-='='yz zy 解:In[1]:=DSolve[y ′[x]= =2y[x]/(x+1)+(x+1)^(5/2), y[x],x]Out[1]=⎭⎬⎫⎩⎨⎧⎭⎬⎫⎩⎨⎧+++→]1[)1()1(32][22/7c x x x yIn[2]:=DSolve[y ′[x]= =(1+y[x]^2)/((x+x^3)y[x]),y[x],x]Out[2]={{}, {}}2211]1[11][x c x x y ++---→2211]1[11][xc x x y ++--→In[3]:=DSolve[{y ′[x]= =z[x],z ′[x]= = -y[x]},{y[x],z[x]},x]Out[3]={{y[x]→C[1]Cos[x]+ C[2]Sin[x],z[x]→C[2]Cos[x]- C[1]Sin[x]}}In[4]:=DSolve[{y ′[x]= =z[x],z ′[x]= = -y[x],y[0]= =0,z[0]= =1},{y[x],z[x]},x]Out[4]={{y[x]→Sin[x],z[x]→Cos[x]}}提示:认真观察上例,可以从中学习输入格式,未知函数总带有自变量,等号用连续键入两个等号表示,这两点由于不习惯会出错!导数符号用键盘上的撇号,连续两撇表示二阶导数,这与习惯相同。
mathematica中求解微分方程的命令

mathematica中求解微分方程的命令
Mathematica中求解微分方程的命令是DSolve。
他可以求解一
阶和多阶的常微分方程和偏微分方程。
例如,要求解一阶常微分方程y'(x) + y(x) = 0,可以使用命令:DSolve[{y'[x] + y[x] == 0, y[0] == 1}, y[x], x]
其中,y[x]是未知函数,y'[x]表示y关于x的导数,y[0] == 1
是初始条件。
要求解二阶常微分方程y''(x) - 2y'(x) + y(x) = 0,可以使用命令:DSolve[{y''[x] - 2y'[x] + y[x] == 0, y[0] == 1, y'[0] == 0}, y[x], x]
其中,y''[x]表示y关于x的二阶导数,y'[0] == 0和y[0] == 1
是初始条件。
如果是偏微分方程,可以使用命令DSolveValue来求解。
例如,要求解二阶偏微分方程uxx[x, y] + uyy[x, y] = 0,可以使用命令:
DSolveValue[{D[u[x, y], x, x] + D[u[x, y], y, y] == 0, u[0, y] == Sin[y], u[x, 0] == Exp[-x]}, u[x, y], {x, y}]
其中,u[x, y]是未知函数,uxx[x, y]表示u关于x的二阶混合
偏导数,uyy[x, y]表示u关于y的二阶混合偏导数,u[0, y] == Sin[y]和u[x, 0] == Exp[-x]是边界条件。
如何利用mathematica求微分变换

如何利用Mathematica求微分变换?zwfnepu一、有积分变换也应该有微分变换众所周知,对方程进行数学变换是求解复杂微分方程的很好方法,其中积分变换就是其中一种常用的数学变换工具。
最重要的积分变换有傅里叶变换、拉普拉斯变换。
由于不同应用的需要,还有其他一些积分变换,其中应用较为广泛的有梅林变换和汉克尔变换,它们都可通过傅里叶变换或拉普拉斯变换转化而来。
是否存在一个与积分变换相反的数学变换?大家都知道,积分与微分是正逆数学过程。
显然,有积分变换也应该有微分变换。
积分变换和微分变换那个更容易?学过微积分的人都知道,求一个函数的微分易,求一个函数的积分难,且有些函数的显式积分并不存在,因此可以断定的是,微分变换一定比积分变换更容易上手,且实用范围更广泛。
然而如何构建一个与积分变换相反的数学变换?在这方面,我国学者赵家奎做出了杰出的贡献,1988年赵家奎出版了专著《微分变换及其在电路中的应用》[ 1],该书得到国内外学者的广泛引用,遗憾的是都将赵家奎翻译为Zhou,JK[ 2]. 初步判定这应该是不熟悉普通话的华人,比如香港人、新加坡人翻译的。
目前微分变换在结构动力学、固体导热、流体力学得到了应用[ 3- 6]。
二、如何利用Mathematica求微分变换的解答微分变换中T方程都是类似数组的代数方程。
那么如何利用Mathematica求T方程的解答?注意到如下数组的构建和运算(1)数组的构建(2)数组的运算参考文献[ 1]赵家奎. 微分变换及其在电路中的应用[M] . 武汉: 华中理工大学出版社, 1988.[ 2] Zhou JK (1986) Differential transformation and its application for electrical circuits. Huazhong University Press, Wuhan[3] MalikM, AllaliM. Characteristic equations of rectangular plates by differential transformation[ J] . Journal of Sound and Vibration,2000, 233( 2) : 359- 366.[ 4] Ho S H, Chen C K. Free vibration analysis of non- homogeneous rectangular membranes using a hybrid method[ J] . Journal of Sound an d Vibration, 2000, 233( 3) : 547- 555.[ 5]Abazari R, Borhanifar A (2010) Numerical study of Burgers an d coupled Bur gers’ equations by differential transformation method. Comput Math Appl 59:2711–2722[ 6]Allahviranloo T, Kiani NA (2009) Solving fuzzy differential equations by differential transformation method. Inf Sci 179:956–966。
Mathematica在微分方程上的应用

5 Sinx , 4 Sinx , 3 Sin x, 2 Sinx, Sinx , 0, Sinx , 2 Sin x, 3 Sin x, 4 Sinx, 5 Sin x
因為 Plot 函式可以一次處理一連串的函數,所以可以很容易地繪出上所有特 定解。在這之前,我們先產生一組由 Hue 函式組成的 colors 串列,其中 Hue[0] 代表的是深紅色,Hue[0.3]為綠色,Hue[0.6]為淺藍色,Hue[0.7]為深藍色:
yx yx
故該變數仍可進一步地自由加以利用,例如求算 y ( x) 2 對 x 的一階導數,可以直 接沿用 y[x]變數符號,而不另外使用 z[x]或其他變數名稱:
Dyx2, x 2 yx yx
當需要將 sol 的結果代入 y[x]時,也可以利用 Mathematica 提供的代入子 (/.) 加以進行,在 sol 的後面緊接著 1 代表代入的是第一組解 (雖然也是唯一的 一個解,在其他的情況則可能會有兩個以上的解):
Dyx . sol1, x yx Cosx . sol1 True
將特定數值代入常數項 C[1]即可得到特定解,下面得到一組當 C[1]分別等於
-5、-4、-3、-2、-1、0、1、2、3、4、5 等值時的特定解,並將此組特定解集
合命名為 spesol:
spesol Tableyx . sol1 . C1 i, i, 5, 5
Mathematica教程-4基本微积分

求解微分方程函 数y
Dsolve[{eqn1,eqn2,…},{y1,y2,….},x] 求解微分方程组
解y[x]仅适合其本身,并不适合于y[x]的其它形式, 如y’[x],y[0]等,也就是说y[x]不是函数。 例如我们如果有如下操作,y’[x],y[0]并没有发生变化
解的纯函数形式
这里y适合y的所有情况
In[1] : Limit[ Sin 5 * x S in 3 * x / Sin x ,x 0]
Out[1] 2
lim arctan x
x
In[6] : Limit ArcTan x ,x Infinity
Out[6]
NIntegrate[Sin[Sin[x]],{x,0,Pi}]
幂级数(泰勒公式)展开
一个函数描述了在某个区域内值的对应关系, 有时考察一个函数在某一点附近的性质时,可以用 一个有限次的多项式作为这个函数的近似,这就是 幂级数展开(Taylor展开)的意义。Mathematica 可以非常方便地求出任一个复杂函数表达式的任意 阶幂级数展开。运算格式:Series[f[x],{x,x0,n}]: 表示f(x)在x=x0做Taylor展开至 (x x0阶)n(带余项)。
当x趋向于x0时求 expr的极限
Limit[expr,x->x0,Direction->1]
当x趋向于x0时求 expr的左极限
Limit[expr,x->x0,Direction->-1]
当x趋向于x0时求 expr的右极限
例:求下列极限
sin 5x sin 3x lim x0 sin x
Dt[f,x1,x2,…]
Dt[f,x,Constants->{c1,c2,….}]
Mathematica第6章 微分方程的求解

第6章微分方程的求解6.1 微分方程解在Mathematica中使用Dsolove[]可以求解线性和非线性微分方程,以及联立的微分分方程组。
在没有给定方程的初值条件下,我们所得到的解包括C[1],C[2]是待定系数。
求解微分方程就是寻找未知的函数的表达式,在Mathematica中,未稳中有降函数用y[x]表示,其微分用y'[x],y''[x]等表示。
下面给出微分方程(组)的求解函数1.用Dsolve求解微分方程y[x]解y[x]仅适合其本身,并不适合于y[x]的其它形式,如y’[x],y[0]等,也就是说y[x]不是函数,例如我们如果有如下操作,y’[x],y[0]并没有发生变化。
2.解的纯函数形式使用Dsolve命令可以给出解的纯函数形式,即y,请分析下面的例子这里y适合y的所有情况下面的例子可以说明这一点在标准数学表达式中,直接引入亚变量表示函数自变量,用此方法可以生成微分方程的解。
如果需要的只是解的符号形式,引入这样来变量很方便。
然而,如果想在其他的的计算中使用该结果,那么最好使用不带亚变量的纯函数形式的结果。
3.求微分方程组请分析下面的例子当然微分方程组也有纯函数形式。
4.带初始条件的微分方程的解当给定一个微分方程的初始条件可以确定一个待定系数。
请看下面的例子第二个例子由于给出一个初始条件所以只能确定C[1].5.进一步讨论对于简单的微分方程的解比较简单,对一些微分方程它的解就复杂的多。
特别是对一些微分方程组或高阶微分方程,不一定能得具体的解,其解中可能含有一些特殊函数。
并且很多特殊函数的提出就是为了解这些方程的如:上面三个方程中分别使用了三种类型的函数,可以查看系统帮助了解他们的性质和含义。
对于非线性微分方程,仅有一些特殊的情况可用标准数学函数得到解。
Dsolve能够处理所有在标准数学手册有解的非线性微分方程。
例如:可以看出第二个方程的解已经非常复杂。
6.2 微分方程的数值解在Mathematica中用函数DSolve[]得到微分方程的准确解,用函数NDSolve得到微分方程的数值解,当然在此处要给出求解区间(x,xmin,xmax)。
mathematica 积分微分方程

mathematica积分微分方程一、简介Mathematica是一款功能强大的数学软件,它提供了丰富的函数和工具,可以方便地进行积分微分方程的计算和求解。
本教程将介绍如何使用Mathematica进行积分微分方程的求解,帮助您更好地理解和掌握数学方法。
二、基本概念积分微分方程是一种常见的数学问题,它涉及到函数的积分和微分。
在解决这类问题时,我们需要根据方程的特点,选择合适的积分和微分方法,如牛顿-莱布尼兹公式、级数法等。
通过Mathematica,我们可以轻松地实现这些方法,并得到准确的答案。
三、Mathematica的使用1.安装和打开Mathematica软件。
2.导入所需的函数和符号。
在Mathematica中,可以使用Integrate和D函数来求解积分微分方程。
3.编写方程并导入数据。
将方程中的变量和数据导入Mathematica中,以便进行计算和分析。
4.使用Integrate函数求解积分。
根据方程的特点,选择合适的积分方法,如牛顿-莱布尼兹公式或级数法,并使用Mathematica进行计算。
5.使用D函数求解微分方程。
根据方程的特点,选择合适的微分方法,如分离变量法或级数法,并使用Mathematica进行计算。
6.检查结果是否符合预期。
检查计算结果是否符合预期,并根据需要进行调整和优化。
四、示例以下是一个简单的示例,展示如何使用Mathematica求解一个简单的微分方程:解:我们要求解方程y''+y=cos(x)的解。
(1)导入所需的函数和符号:In[1]:=Integrate[D[y,x]^2+y,{x,x0,x1}]//SimplifyOut[1]=y''[x]+y[x]==0(2)编写微分方程:In[2]:=y[x_]=Cos[x]+a*y[x]+b*y'[x]//DSolve[%,a,x]Out[2]=y[x]==-Cos[x]/a-(a^2/2)/Sin[x]+(b*a^2/2)/Cos[x]+C[1](3)使用D函数求解微分方程:In[3]:=a=1;b=2;x=0;y=y[x];y'=y'[x];D[y,x]//SimplifyOut[3]=(y-Sin[x])+a*(D[y,x]-Cos[x])+b*(D[y',x])/2通过上述步骤,我们可以得到方程的解为y(x)=f(x)。
[数学]第三四讲 用Mathematica进行函数的计算和解微积分和解方程
![[数学]第三四讲 用Mathematica进行函数的计算和解微积分和解方程](https://img.taocdn.com/s3/m/94c1bd51f242336c1fb95e09.png)
如: 求下列数列的极限:
2 , 2 2 , 2 2 2 ,, an1 2 an
命令:x={Sqrt[2]//N}; For[i=2,i<=10,i++,x=Append[x, Sqrt[2+x[[i-1]]]]]; x
求极限
外部程序包中的求极限命令 要使用需先调入程序包Calculus;
如: 已知 f ( x, y ) x 2 y y 3 ,求其一阶与二阶偏导数:
命令:f[x_,y_]=x^2*y+y^3
……
求多元函数的偏导数和全微分
求全微分和全导数
Dt[f[x, y]] Dt[f[x, y[x]],x]
如: 已知 f ( x , y )
x 2 y 2 ,求它的全微分和全导数:
第三讲
用Mathematica进行 函数的计算和解微积分
用Mathematica进行函数的运算
四则运算与运算次序 Mathematica的内部函数 自定义函数
Mathematica的特殊函数
四则运算与运算次序
在Mathematica中的四则运算
和:+ 减:- 积:* 或 空格 商:/ 乘方:^
命令: ParametricD[Cos[t],Sin[t],t]
求导数和求微分
求隐函数的导数
首先自定义一个函数ImplyD[ ] 再利用这个函数求解隐函数的倒数 如: 求由 x 2 2 y 2 1 所确定的隐函数y=y(t)的导数: 命令: ImplyD[f_,x_,y_]:=Solve[D[f,x]==0,y’[x]] ImplyD[x^2+y[x]^2,x,y]
《数学实验》实验报告——用Mathematica软件解微分方程

例1
求解下列微分方程: 1)
y 2 (1 y) (2 y) 2
In[1]:= DSolve[(y[x]^2)(1-y'[x]) (2-y'[x])^2,y[x],x] Out[1]=
书中结果为: y x c 1/( x c) ,其中 c 为任意常数。 y z 2) z y In[1]:= DSolve[{y'[x] z[x],z'[x] -y[x]},{y[x],z[x]},x] Out[1]= {{y[x]C[1] Cos[x]+C[2] Sin[x],z[x]C[2] Cos[x]-C[1] Sin[x]}} 3)
中 1 2 3 为任意常数。 例 2 求常微分方程 y′= x2 + y2,满足初始条件 y(0)= 0 的数值解。 In[1]:= s1=NDSolve[{y'[x]==x^2+y[x]^2,y[0]==0},y,{x,-2,2}] Out[1]= {{yInterpolatingFunction[{{-2.,2.}},<>]}} In[2]:= y=y/.s1[[1]] Out[2]= InterpolatingFunction[{{-2.,2.}},<>] In[3]:= Plot[y[x],{x,-2,2},AspectRatioAutomatic,PlotRange{-1.5,1.5}]
例1 求解下列微分方程: 1) 2) 3)
y 2 (1 y) (2 y) 2
y z z y y 3 y 3 y y ( x 5)e x
例2 求常微分方程 y′= x2 + y2,满足初始条件 y(0)= 0 的数值解 例3 求函数 t 5 和 et sint 的拉氏变换 例 4 用拉氏变换解微分方程:
mathematica 微分方程

mathematica 微分方程解决常微分问题,命令是 DSolve,举个例子:y'=x命令为:DSolve[y'[x] == x, y'[x], x] 按 shift + enter 运行.结果为:{{y[x]->x^2/2+C[1]}}.DSolve[2 x*y''[x] == Sqrt[1 + y'[x]^2], y[x], x]{{y[x] -> C[2] + 1/3 Sqrt[x] ((-3 + x) Cosh[C[1]] + (3 + x) Sinh[C[1]])}}y = C2 + 1/3 √x * ((x-3)*Cosh(C1) + (x+3)*Sinh(C1)),C1, C2为任意常数.Cosh(C1) = (e^(C1) + e^(-C1))/2Sinh(C1) = (e^(C1) - e^(-C1))/2扩展资料Mathematica 分为两部分:内核和前端。
内核对(即 Mathematica 代码)进行解释,并且返回结果表达式。
前端由Theodore Gray设计,提供了一个GUI,它使得用户可以创建并且编辑一个“笔记本文档”,该笔记本文档可以包含程序代码和其它格式化的文本(比如公式、图像、GUI组件、表格、声音等),并且支持标准文字处理功能。
所有的内容和格式都可以通过算法生成或者通过交互式方法进行编辑。
文档可以使用层次式单元进行结构化处理,这样便于对文档划分章节。
文档也可以表示为幻灯片形式,便于进行演讲。
笔记本与其内容均以Mathematica 表达式的形式存储,并且可用使用 Mathematica 程序进行创建、编辑和修改,而且还可以转化为其它格式,比如TeX或者XML。
Mathematica用法III

对于非多项式函数,Solve也可以进行求解。 用函数Solve也可以求联立方程组的解。
求解方程组时,我们也可以先定义方程组,再用 Solve命令调用已经定义的方程组进行求解。
在上例中,N元的方程组实际被定义为一个包含N个 元素的列表,表中的每个元素是一个方程(逻辑语句)。
Dt[f,x]
计算f的全微商,所有变量依赖于x
D[f,x,Constants->{a}] 计算f的全微商,设a不依赖于x
SetAttributes [a,Constant]
设a为常数
简单举几个例子:
4、积分
在Mathematica中,用函数Integrate求不定积分和
定积分,用NIntegrate求数值积分,格式如下:
函数FindRoot的缺点是,一次运算只能得到距离起 始点最近的一个解;而且,如果选定的起始点位置不合 适,有可能迭代过程不收敛,从而得不出解。比如:
关于如何选点确保迭代收敛的知识,我们会在后续 的课程中详加说明。现在我们的常用做法是,如果要用 FindRoot求解,就先用Plot命令画出函数图线,观察解 的大概位置,然后在附近选择起始点。如下所示:
2、求极限 Mathematica计算极限的命令是Limit,它的用法如下:
Limit[f,x->x0]
当x->x0时求f的极限
Limit[f,x->x0,Direction->1] 当x->x0时求f的左极限
Limit[f,x->x0,Direction->-1] 当x->x0时求f的右极限
趋向的点x0可以是常数,也可以是+∞,-∞,例如:
由图可知,函数在 0至2.2之间和x轴有两 个交点。所以我们在用 FindRoot命令求根时起 始点可以选在交点附近。
Mathematica-与常微分方程-----方向场和积分曲线

Mathematica-与常微分方程-----方向场和积分曲线Mathematica-与常微分方程-----方向场和积分曲线Mathematica 与常微分方程—方向场和积分曲线摘要:长期以来,从小学到大学十几年,数学一直是我们学习的一门主课,老师所讲的、学生所练、所考的主要是定义叙述、定理证明、公式推算、计算方法、……,数学给我们的印象是,沿定义公理定理推论证明这么一条演绎道路进行的、一个十分严格的数学推理王国和一个充满美感的抽象世界。
然而,我们却不知道,也许也没有想过,这些如此严密、完整、美妙的结论是怎么来的?数学家是通过什么样的方式发现它们的?我们从这些可爱结论本身看不到数学家发现它们的艰辛,也体会不到数学家在发现它们之后的一种喜悦。
关键词:Mathematica常微分方程方向场积分曲线简介Mathematica 是美国Wolfram Research公司研制的一种数学软件,集文本编辑、符号计算、数值计算、逻辑分析、图形、动画、声音于一体,与Matlab、Maple 一起被称为目前国际上最流行的三大数学软件。
它以符号计算见长,同时具有强大的图形功能和高精度的数值计算功能。
在Mathematica中可以进行各种符号和数值运算,包括微积分、线性代数、概率论和数理统计等数学各个分支中公式的推演、数值求解非线性方程、最优化问题等,可以绘制各种复杂的二维和三维图形,并能产生动画和声音。
Mathematic系统与常见的高级程序设计语言相似,都是通过大量的函数和命令来实现其功能的。
要灵活使用Mathematica,就必须尽可能熟悉各种内部函数(包括内置函数和软件包函数)。
由于篇幅限制,本附录仅分类介绍Mathematica的基本功能,及与微积分有关的函数(命令)的使用,其他功能请读者自行查阅帮助或有关参考文献。
方程对于学过中学数学的人来说是比较熟悉的;在初等数学中就有各种各样的方程,比如线性方程、二次方程、高次方程、指数方程、对数方程、三角方程和方程组等等。
Mathematica的使用

函数的运算
定义函数 f[x_]=expr f[x_]:=expr ?f 查询函数f的定义 Clear[f]或f=. 清除函数f的定义 定义递归函数 我们可以用:=运算符定义递归函数, Mathematica默认的最大递归次数为256次 例
f [n _]: n * f [n 1]; f [0] 1;
Mathematica的输入与输出
In[n]∶=
Out[n]=
标记输入,
标记对应的运算结果
这是Mathematica
内部的输入与输出
Mathematica的运算方式
1.“对话”方式 输入一个命令,运行之; 输入一个命令,运行之... 2. “批处理”方式: 将多个命令组成的程序,一次交给 Mathematica处理,完成指定的运算.
注意: 1) Mathematica提供的内部函数,其名称中的字母 大小写是固定的,特别是开头字母 均 为大写。 2) 函数的自变量以方括号[ ] 括起来。
(3). 数学常数 符号 Pi E I Infinity Binomial(n,m) 功能 π(Esc+p+Esc) e (Esc+e+Esc) -1的平方根 ∞ n! /m!(n-m)!
函数形式
FactorInteger[n] GCD[x,y,…] LCM[x,y,…] Prime[n] Re[z] ,Im[z] Abs[z] ,Arg[z] Conjugate[z] Bessell[x] a^^number BaseForm[x,b]
功能
因数分解 求最大公约数 求最小公倍数 求第n个质数 求复数z 的实部,虚部 求复数z 的模,辐角 求复数z 的共轭函数 贝塞尔函数 a进制的数number 以b进制的形式打印x
Mathematica的主要功能

Table[f,{i,imin,imax,stepi},{j,jmin,jmax,stepj}] 表的通项为 f(f 是变量 i 和 j 的函数),min,max,step 规定 了初值、终值、步长,min 和 step 的默认值为 1。
Simplify[expr] Factor[expr] Collect[expr,x] Together[expr] Cancel[expr] Apart[expr] 将表达式变换化简 对表达式进行因式分解 将表达式 expr 中 x 的同次幂合并 对表达式进行通分 约去表达式的分子、分母的公因式 将有理式分解为最简分式的和
效数字) ,但是按标准输出只显示前 6 位有效数字
N[ 表达式 ,数字位数 ] 指定计算表达式的具有任意数字位数的
近似值(指定的数字位数应该大于 16),结果在末位后是四舍五 入的。
4、算术表达式
常量和变量用算术运算符连接而成的式子称为算术表达式。表达式按 照与常规相同的优先级自左向右执行计算。在运算中运用的标点符号 必须是英文的,不能用中文的标点符号, “; ”表示运算但不显示结果。 Mathematica 中和、差、积、商、乘方运算分别用相应的键“+” 、 “-” 、 “*”或空格、 “/” 、 “^”来表示,也可通过基本输入模板来输入。
Mathematica 支持所有的常用的数学函数,下面介绍一些简单而 又常用的数学函数: Sin[x] 正弦函数
Tan[x] Sec[x] 正切函数 正割函数 Cos[x] Cot[x] Csc[x] 余弦函数 余切函数 余割函数
ArcSin[x] ArcTan[x]
Exp[x] Log[x] Abs[x] n!
Mathematica 导数、积分、方程等的数值计算

第4章导数、积分、方程等的数值计算在上一章的符号运算中已经指出,有些数学问题的解可以用一个解析式(数学公式)精确地表示出来,而另一些问题则不能。
遇到这种情况时,人们常会转而去求它的近似数值解,所谓近似数值解是指按照某种逼近思路,推导出相应的迭代公式,当给定一个适当的初始值(或称初始点)后,由迭代公式就可产生一系列的近似解(点),从而一步一步的去逼近原问题的精确解(点)。
在迭代过程中所有的计算(按迭代公式)都是对具体数值进行的,或者说计算的主要对象是具体的数值(主要是实数)。
4.1 函数值与导数值的计算4.1.1函数值的计算在Mathematica系统里,计算函数值的过程同数学里的情况基本相似。Note:先定义函数表达式,再作变量替换。
4.1.2导数值的计算Note:先定义函数表达式,再求导函数,最后作变量替换。
4.2定积分与重积分的数值计算4.2.1定积分的数值计算在Mathematica系统中为我们提供的对定积分进行近似数值计算的函数是NIntegrate,它的调用格式如下:NIntegrate[f(x),{x,a,b}]式中f(x)为被积分函数,x为积分变量,a为积分下限,b为积分上限,有时a可取到-∞,b可取到+∞。4.2.2 重积分的数值计算1.矩形区域G:a≤x≤b,c≤y≤d上的二重积分Note:先对y积分,再对x积分。
2.一般(有界)区域G上的二重积分NIntegrate[f[x,y],{x,x1,x2},{y,y1[x],y2[x]}] OrNIntegrate[f[x,y],{y,y1,y2},{x,x1[y],x2[y]}] Zhou er3.一般区域上的多重积分4.3方程的近似根牛顿迭代法的几何解释在0x 处作曲线的切线, 切线方程为 y = f (0x )+f ’ (0x ) (x -0x ). 令y =0,可得切线与x 轴的交点横坐标 1x =0x -)(' )(00x f x f , 这就是牛顿法的迭代公式. 因此, 牛顿法又称"切线法".分析法(零点存在定理)图形法随机生点法4.4常微分方程数值解4.5 偏微分方程求解(略)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
==y[x], 或 Plot[Evaluate[y[x]/.NDSolve[{y'[x]== == y[0]== ==1},y,{x,0,1}]],{x,0,1}] == 初始条件y(1)=1 初始条件 In[4]:=NDSolve[{y’[x]==y[x],y[1]==1},y,{x,0,1}] Out[4]={{y→InterpolatingFunction[{{0.,1.}},<>]}} 利用图形观察 In[5]:= Plot[Evaluate[y[x]/.NDSolve[{y'[x]== ==y[x], == y[1]== ==1},y,{x,0,1}]],{x,0,1}] == Out[5]=
• 求方程y’’ +y’+x3y=0在区间[0,8]上满足条件 y(0)=0, y’(0)=1的特解 Mathematica命令为: In[10]:=s1=NDSolve[{y’’[x]+y’[x]+x^3*y[x]==0,y [0]==0,y’[0]==1},y,{x,0,8}]; Plot[Evaluate[y[x]/.s1],{x,0,8}]
例1 给出t3sint的拉普拉斯变换
Mathematica命令为: In[1]:=LaplaceTransform[t^3Sin[t],t,s] Out[1]=
24 s ( −1 + s 2 )
(1 + s )
2 4
上式的逆变换是: In[2]:=InverseLaplaceTransform[%,s,t] Out[2]= t3sint
上式的傅立叶逆变换为:
In[5]:=InverseFourierTransform[%,w,t] Out[5]= Cos[t2]
• 为了避免复杂的指数运算, 傅立叶变换中引进 了傅立叶正弦变换和傅立叶余弦变换。它们用 Sin[wt]和Cos[wt]代替傅立叶变换定义中的函 数Exp(iwt), 而且用积分区间(0, )代替(- , )。 例3 给出t2exp(-t)的傅立叶正弦和余弦变换 Mathematica命令为:
∫
−∞
f ( t )e
−2iωt
dt
1ห้องสมุดไป่ตู้2π
b
∫
∞
−∞
F (ω )e 2iωt d ω
一般情况
{a,b} ,
b
( 2π )
1− n
∫
∞
−∞
f ( t )eibωt dt
( 2π )
1+ n
∫
∞
−∞
F (ω )e −ibωt dt
例如 默认情况下的傅立叶变换为 In[4]:=FourierTransform[t^2 Exp[-t^2],t,s]
• 求方程x2y՛՛-2xy՛+2y=3x满足条件y[1]=m, y՛[1]=n的特解 Mathematica命令为 In[10]:=DSolve[{x^2*y՛՛[x]-2x*y՛[x]+2y[x]==3x, y[1]==m, y՛[1]==n}, y[x], x] Out[10]={{y[x]→-3 x+2 m x-n x+3 x2-m x2+n x2-3 x Log[x]}}
f ( t )e dt
iωt
1 2π
∫
∞
−∞
F (ω )e − iωt d ω
{1,-1} ,
∫
1 2π
∞
−∞
f ( t )e
∞
− iωt
dt
1 2π
∫
∞
−∞
F (ω )eiωt d ω
{-1,1} ,
∫
∞
−∞
f ( t )e dt
iωt
∫
∞
−∞
F (ω )e −iωt d ω
符号处理 {0,-2Pi} ,
在不同的领域, 在不同的领域,对傅立叶变换和其逆变换的定义是不同 的,可以用FourierParameters来指出是哪一种定义。 可以用 来指出是哪一种定义。 来指出是哪一种定义
领域 默认 现代物理 纯数学 系统工程 经典物理 取值 {0,1} , 傅立叶变换公式 傅立叶逆变换公式
1 2π
∫
∞
−∞
函数F(w)的逆变换为
1 f (t ) = 2π
∫
∞
−∞
F (ω )e −iωt d ω
例2 给出cos(x2)的傅立叶变换 Mathematica命令为:
In[4]:=FourierTransform[Cos[t^2],t,w]
ω 2 ω 2 1 Out[4]= Cos + Sin 2 4 4
In[6]:={FourierSinTransform[t^2Exp[-t],t,w], FourierCosTransform[t^2Exp[-t],t,w]}
2 2 2 2 ( 2 − 6ω ) 2 ω ( −3 + ω ) , π Out[6]= − π 2 3 2 3 (1 + ω ) (1 + ω )
求微分方程组在满足初始条件的并在x 的数值解 [x0,x1]
NDSolve以InterpolatingFunction 目标生成函 数yi的解,InterpolatingFunction目标提供在独 立变量x的xmin到xmax范围内求解的近似值。 NDSolve用迭代法求解,它以某一个x值开始, 尽可能覆盖从xmin到xmax的全区间。 为使迭代开始,NDSolve指定yi 及其导数为初 始条件。初始条件给定某定点x处的yi [x]及尽 可能的导数y'i [x],一般情况下,初始条件可 在任意x处,NDSolve将以此为起点自动覆盖 xmin到xmax的全区域。
Out[10]=
• 求方程y’’’ +y’’=y1/2在区间[0,10]上满足条件 y(0)=0, y’(0)=0.5, y’’(0)=1的特解 Mathematica命令为: ==Sqrt[y[x]],y In[11]:=s2=NDSolve[{y’’’[x]+y’’[x]== == [0]== ==0,y’[0]== ==0.5, y’’[0]== ==1},y,{x,0,10}]; == == == Plot[Evaluate[y[x]/.s2],{x,0,10}]
• 对初始条件y(0)=0和y(1)=0分别求出x从0到1的 范围内y’(x)=y(x)的解。 初始条件y(0)=1 初始条件 In[1]:=NDSolve[{y՛[x]==y[x],y[0]==0},y,{x,0,1}] Out[1]={{y→InterpolatingFunction[{{0.,1.}},<>]}} 利用图形观察 In[2]:= s=NDSolve[{y'[x]==y[x],y[0]==1},y,{x,0,1}] Out[2]={{y → InterpolatingFunction[{{0.,1.}},<>]}} In[3]:= Plot[Evaluate[y[x]/.s],{x,0,1}] Out[3]=
Out[11]=
• 求方程x’(t) =y(t),y’(t)=-0.01y(t)-sin(x)在区间 tϵ[0,100]上满足条件x(0)=0, y(0)=2.1的特解 Mathematica命令为: ==y[t],y’[t]== ==-0.01y[t]In[12]:=s3=NDSolve[{x’[t]== == == Sin[x[t]],x[0]== y[0]== ==0, ==2.1},{x,y},{t,0,100}]; == == ParametricPlot[Evaluate[{x[t],y[t]}/.s3],{t,0,100}]
• 求方程x2y՛՛+xy՛+(x2-n2)y=0的通解 Mathematica命令为 In[11]:=DSolve[x^2*y''[x]+x*y'[x]+ (x^2+n^2)y[x]==0,y[x],x] Out[11]={{y[x] → BesselJ[I n,x] C[1]+BesselY[I n,x] C[2]}}
• 已知y՛՛+y՛-2y=0, (1) 求方程的通解 (2)求方程满足初始条件y(0)=4, y՛(0)=1的特解 Mathematica命令为 In[8]:=DSolve[y՛՛[x]+y՛[x]-2y[x]==0,y[x],x] Out[8]={{y[x]→e-2 x C[1]+ex C[2]}} In[9]:=DSolve[{y՛՛[x]+y՛[x]-2y[x]==0,y[0]==4, y՛[0]==1},y[x],x] Out[9]={{y[x] → e-2 x (1+3e3x)}}
常微分方程的数值解
常用格式: 常用格式:
NDSolve[{eqn,y[x0]==y0},y[x],{x,x0,x1}]
求微分方程eqn在满足初始条件y(x0)=y0的并在 x [x0,x1]的数值解
NDSolve[{eqn1,eqn2,…, y1[x0]==y10 ,…}, {y1[x], y2[x],…},{x,x0,x1}]
e
s2 − 4
Out[4]=
−2 + s 2 ) ( 4 2
以下是纯数学的傅立叶变换 In[5]:=FourierTransform[t^2 Exp[-t^2],t,s, FourierParameters {-1,1}]
1 Out[5]= − e 4
s2 − 4
π ( −2 + s
2
)
• 微分方程
意义
对expr的傅立叶变换 对expr的傅立叶逆变换 对expr的傅立叶正弦变换 对expr的傅立叶正弦逆变换 对expr的傅立叶余弦变换 对expr的傅立叶余弦逆变换