《第六章 计算方法.ppt》由会员分享,可在线阅读,更多相关《第六章 计算方法.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第六章 计算方法,非线性方程求解多项式插值与曲线拟合数值微分与数值积分求常微分方程数值解命令,(k = 1,2,),已知函数 f(x),求 x 使 f(x)=0 非线性方程,例 x = tan x,f=inline(x-tan(x)x=fzero(f,3.5)x = 4.4934,求一元函数零点 fzero(fun, x0)X = fzero(fun, x0)寻找fun在x0附近的零点,例 x 3 30 x 2 + 2552 =0p=1 -30 0 2552;roots(p),ans = 26.3146 11.8615 -8.1761,半径r =10 cm的球体,密度 =0.638.浸入水深度
2、 x=?,15/18,求多项式零点: 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)r = 7.7260 0.1370 + 1.9658i 0.1370 - 1.9658i,多项式插值原理,已知 f(x) 在点 xi 上的函数值 yi=f(xi), (i=0,1,2,n),求多项式 P(x)=a0 + a1x + anxn满足: P(xk)= yk (k
3、 = 0,1,n),一维插值: yi = interp1(x, y, xi, method ),x = 0:10; y = sin(x);xi = 0:.25:10;yi = interp1(x,y,xi); plot(x,y,o,xi,yi),二维插值zi=interp2(x, y, z, xi, yi, method),三维插值vi = interp3(x,y,z,v,xi,yi,zi, method),17/18,例1.正弦曲线数据插值试验,已知数据表,求拟合函数: (x) = a0 + a1x + + anxn使得,离散数据的多项式拟合,达到最小,多项式拟合命令,P=polyfit(X
4、,Y,n),求出(最小二乘意义下)n次拟合多项式P(x)=a0xn + a1xn-1 + + an-1x + an计算结果为系数: P= a0, a1, , an-1, an ,多项式求值命令:y1=polyval(P, x)其中,P是n次多项式的系数,x是自变量的值,y1是多项式在x处的值,17/18,4/16,定积分与积分和式,右矩形和,5/16,左矩形 梯形 右矩形4.4429 4.8669 5.29084.6804 4.8924 5.10444.8139 4.8987 4.98354.8572 4.8996 4.9420,梯形数值积分公式,梯形数值积分命令 trapz(),clearx
5、=0:pi/100:pi;y=sin(x);trapz(x,y)ans = 1.9998,clearx=sort(rand(1,101)*pi);y=sin(x);trapz(x,y)ans = 1.9981,rand(1,101)产生101个均匀随机数,每个数都介于0-1之间,辛卜生求数值积分命令quad(),clearfun=inline(1./(x.3-2*x-5)ezplot(fun,0,2)q,n=quad(fun,0,2)q = -0.4605n = 53,二重积分dblquad()与三重积分,fun=inline(y*sin(x)+x*cos(y)Q=dblquad(fun,pi
6、,2*pi,0,pi)Q = -9.8698x,y=meshgrid(pi:.1:2*pi,0:.1:pi);z=fun(x,y);mesh(x,y,z),研究具有实际应用背景的数学函数,物理现象 物理定律 微分方程 数值解建模型: 物理学家、化学家、生物学家、社会学家,物理量在空间的分布情况其及随时间变化的规律。,2/18,马尔萨斯(Malthus)人口模型,某时刻人口数为y0, 在以后某一时间 t 人口数y 的变化率正比于y,y(t)=y0 e r t,MATLAB符号求解方法 y=dsolve(Dy=r*y,t) y =C1*exp(r*t),3/18,Thomas Malthus (1
7、766-1834),令 r = a, y0 = exp( b ) y(t) = exp( at + b)a = ?, b = ? 人口数据拟合实验,弹性力学问题单摆问题天体力学二体问题电磁场计算,MATLAB求常微分方程数值解,简例,f=inline(y-x.*y.2);x,y=ode23(f,0,2,1),0 1.0000 0.0800 1.0796 0.2621 1.2485 0.4437 1.3755 0.6437 1.4402 0.8437 1.4209 1.0437 1.3374 1.2437 1.2196 1.4437 1.0923 1.6437 0.9709 1.8437 0.8
8、620 2.0000 0.7870,4/18,求常微分方程初值问题数值解函数ode23(),ode45(),解一阶常微分方程组初值问题命令格式T,y = ode23( F ,Tspan,y0) 其中, F是ODE文件, 表示 y = F(t,y)中右端函数Tspan = t0 Tfinal 求解区域; y0 初始条件注: 函数F(t,y) 必须返回列向量. 数值解 y 的每一行对应于列向量T中的每一时刻,5/18,生物学家研究发现,战争期间捕鱼量减少,食肉鱼总数会急增,数学家将鱼分成捕食者和被捕食者,分别以y2(t) , y1(t)表示它们在时刻t 的总数。假定被捕食者(食用鱼)有充分的食物。
9、,捕食者和被捕食者模型,( 0 t 15 ) y1(0)=20, y2(0)=20,6/18,t0=0;tf=15;y0=20 20;t,y=ode23(lotka,t0,tf,y0);plot(t,y(:,1),t,y(:,2),r),MATLAB求解:(1)定义函数;(2)调用ode23,function yp = lotka(t,y)% predator-prey model.yp=diag(1 - .01*y(2), -1+.02*y(1)*y;,函数文件,文件名:lotka.m, 捕食者y2 被捕食者y1,7/18,洛伦兹模型与“蝴蝶效应”,Y-X平面,t0,80,x(0)=0,y(0)=0,z(0)=0.01 = 8/3 = 10 =28,y0=0;0;0.01;x,y=ode23(flo,0, 80,y0);plot(y(:,2),y(:,1),function z=flo(t,y)A=-8/3 0 y(2); 0 -10 10; -y(2) 28 -1;z=A*y;,8/18,