6.matlab在求解方程中的_第1页
6.matlab在求解方程中的_第2页
6.matlab在求解方程中的_第3页
6.matlab在求解方程中的_第4页
6.matlab在求解方程中的_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在求解方程中的应用在求解方程中的应用许海洋6.1 代数方程代数方程6.2 微分方程微分方程6.3 非线性方程求解非线性方程求解p求多项式零点求多项式零点6.4 常微分方程数值解法常微分方程数值解法6.1 代数方程代数方程 solve (f,t)功能:对变量t 解方程f=0,t 缺省时默认为x 或最接近字母x 的符号变量。 例:求解一元二次方程f=a*x2+b*x+c的实根 syms a b c x f=a*x2+b*x+c; solve (f,x) ans= 1/2/a*(-b+(b2-4*a*c) (1/2) 1/2/a*(-b-(b2-4*a*c) (1/2)1 221xyzxyzxyz

2、g1=x+y+z-1;g2=x-y+z-2;g3=2*x-y-z-1;x,y,z=solve(g1,g2,g3)x = 2/3y = -1/2z = 5/6求解方程组6.2 微分方程微分方程 dsolve(eq, s1, s2, x) 其中eq为方程;s1,s2,为初始条件,缺省时给出含任意常数c1,c2,的通解;x为自变量,缺省时默认为t 。 例:求微分方程的通解 dsolve(Dy=1+y2) ans= tan(t+c1)y的一阶导数的一阶导数 Dy, y的二阶导数的二阶导数 D2y微分方程符号解y = dsolve(Dy=1/(1+x2)-2*y2,y(0) = 0,x)y = 2*x/

3、(2*x2+2)22211yxy 符号解: pretty(y) y(x)= x / (1 + x 2) ezplot(y,-6,6)syms P tP=dsolve(DP=0.02*P*(1-P/500),P(0)=76)P = 500/(1+106/19*exp(-1/50*t)ezplot(P,0,200)pretty(P)例 P =0.02P ( 1 P/500 ) 初始条件: P(0)=76050100150200100200300400t500/(1+106/19 exp(-1/50 t)150500106119te求一元函数零点 fzero(fun, x0) X = fzero(f

4、un, x0)寻找fun在x0附近的零点6.3 非线性方程求解非线性方程求解 已知函数 f(x),求 x 使 f(x)=0 xyxytanxy )21( kxkk(k = 1,2,)例 x = tan x f=inline(x-tan(x)x=fzero(f,3.5)x = 4.4934求多项式零点求多项式零点: roots(p)例1 求方程 x3 4x + 5 = 0 的解P=1 0 -4 5;roots(P)ans = -2.4567 1.2283 + 0.7256i 1.2283 - 0.7256i例2 求 x3 8x2 +6x 30=0的解P=1 -8 6 -30;r=roots(P)

5、r = 7.7260 0.1370 + 1.9658i 0.1370 - 1.9658i6.4 常微分方程数值解法常微分方程数值解法 求解微分方程初值问题在区间t0,tf的数值解的函数为 t,x=ode23(fun,t0,tf,x0,选项) -2/3阶RKF(Runge-Kutta-Felhberg)法 t,x=ode45(fun,t0,tf,x0,选项) -4/5阶RKF(Runge-Kutta-Felhberg)法其中函数fun的编写格式如下:function xdot=fun(t,x)编写函数文件verderpol.m:function xprime = verderpol(t,x)gl

6、obal MUxprime = x(2);MU*(1-x(1)2)*x(2)-x(1);再在命令窗口中执行:global MUMU = 7;Y0=1;0t,x = ode45(verderpol,0,40,Y0);x1=x(:,1);x2=x(:,2);plot(t,x1,t,x2)图形结果 例例2 食饵-捕食者模型 其中x(t),y(t)分别表示食饵和捕食者t时刻的数量。 求r=1,d=0.5,a=0.1,b=0.02,x0=25,y0=2时的数值解,并画出x(t),y(t)的图形以及相图(x,y)。function xdot=shier(t,x)r=1;d=0.5;a=0.1;b=0.02

7、;xdot=diag(r-a*x(2),-d+b*x(1)*x;0)0(, 0)0()( ,)( yyxxbxydytyaxyrxtxs_b.mts=0:0.1:15;x0=25,2;t,x=ode45(shier,ts,x0);t,xplot(t,x),grid,gtext(x1(t),gtext(x2(t),plot(x(:,1),x(:,2),grid,xlabel(x1),ylabel(x2)马尔萨斯马尔萨斯(Malthus)人口模型人口模型 某时刻人口数为y0, 在以后某一时间 t 人口数y 的变化率正比于y 0)0(0yytryy y(t)=y0 e r t MATLAB符号求解方

8、法 y=dsolve(Dy=r*y,t) y =C1*exp(r*t)Thomas Malthus (1766-1834)令 r = a, y0 = exp( b ) y(t) = exp( at + b)a = ?, b = ? 人口数据拟合实验 生物学家研究发现,战争期间捕鱼量减少,食肉鱼总数会急增,数学家将鱼分成捕食者和被捕食者,分别以y2(t) , y1(t)表示它们在时刻t 的总数。假定被捕食者(食用鱼)有充分的食物。捕食者和被捕食者模型捕食者和被捕食者模型2122211102. 001. 0yyydtdyyyydtdy ( 0 t 15 ) y1(0)=20, y2(0)=20 2

9、1221102. 001. 0),(yyyyyyytf 211202. 010 . 01yyyyt0=0;tf=15;y0=20 20;t,y=ode23(lotka,t0,tf,y0);plot(t,y(:,1),t,y(:,2),r) MATLAB求解:(1)定义函数;(2)调用ode23function yp = lotka(t,y)% predator-prey model.yp=diag(1 - .01*y(2), -1+.02*y(1)*y;函数文件,文件名:lotka.m 捕食者捕食者y2 被捕食者被捕食者y1 zyxydtdzzydtdyyzxdtdx )(洛伦兹模型与洛伦兹模型与“蝴蝶效应蝴蝶效应”Y-X平面 t0,80 x(0)=0,y(0)=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论