8matlab数值计算.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8matlab数值计算.ppt

天津农学院基础科学系 朱文新 Matlab第八讲 数值计算 数值计算 线性方程组的解 函数的零点 函数的极值点 数值积分 曲线的多项式拟合 一、线性方程组的解 线性方程组AX=b,A为可逆矩阵,求X的命令: X=inv(A)*b %b输入成列向量,X返回列向量 不推荐使用逆矩阵法 2.推荐使用“除法”,精度比逆矩阵法高 X=A\b %A左除b,相当于A-1×b,b输入成列向量,X返回列向量 3. X=b/A %b右除A,相当于b×A-1, b输入成行向量,X返回行向量 例:A=[1,1/2,1/3;1/2,1/3,1/4;1/3,1/4,1/5];b=[1;2;3]; X1=inv(A)*b X2=A\b b=b; X3=b/A 二、函数的零点 对于任意函数f(x)=0来说,它可能有零点,也可能没有 零点;可能只有一个零点,也可能有多个甚至无数个零 点。因此,很难说出一个通用解法。一般说来,零点的数 值计算过程是:先猜测一个初始零点或该零点所在的区 间;然后通过一些计算,使猜测值精确化。 利用fzero指令求一元函数零点 [x,y]=fzero(fun,x0) fzero是根据函数是否穿越横轴来决定零点的,因此本程序无法确定函数曲线仅触及横轴和不穿越横轴的零点。例如:y=x2的零点,不穿越横轴。 fun表示函数,数据类型是字符串 x0是表示零点初始猜测。x0可以是标量或二元向量。当x0取标量时,该指令将在它两侧寻找一个与之最靠近的零点;当x0取向量[a,b]时,该指令将在区间[a,b]内寻找一个零点。 返回值x表示零点,y表示在这点的函数值 注意:这个命令只能求x0附近的一个零点 例:求函数f(x)=(sin2x)e-0.1x-0.5|x|的零点 (1)首先用字符串表示函数,matlab命令: f=sin(x)^2*exp(-0.1*x)-0.5*abs(x) ; (2)作图法观察函数零点分布,matlab命令: x=-10:0.01:10; y=sin(x).^2.*exp(-0.1*x)-0.5*abs(x) ; plot(x,y); hold on %接着画,下面画出x轴 xx=-10:0.01:10; yy=zeros(size(xx)); plot(xx,yy, r) [xx,yy]=ginput(5) %在MATLAB指令窗中运行,用鼠标获5个零点猜测值。 zoom?off? hold off? (4)求靠近xx各点的精确零点,matlab命令 [x1,y1]=fzero(f,xx(1)) %求在xx(1)附近的精确零点 [x2,y2]=fzero(f,xx(2)) %求在xx(2)附近的精确零点 [x3,y3]=fzero(f,xx(3)) %求在xx(3)附近的精确零点 [x4,y4]=fzero(f,xx(4)) %求在xx(4)附近的精确零点 [x5,y5]=fzero(f,xx(5)) %求在xx(5)附近的精确零点 运行结果 x1 = -2.0074 y1 =2.2204e-016 x2 = -0.5198 y2 = 0 x3 =-0.5198 y3 =0 x4 =0.5993 y4 =-5.5511e-017 x5 = 1.6738 y5 =-1.1102e-016 (5)求在xx(3)附近的精确零点???? 从理论分析可知, 函数f(x)=(sin2x)e-0.1x-0.5|x| 0?是函数的一个零点。 但即便是以十分靠近该零点的值为有哪些信誉好的足球投注网站的初始值, 也找不到?,而却找到了另一个零点。 原因是曲线没有穿越横轴。 三、求函数极值点 Matlab函数中只有处理极小值的指令。 求的是局部极值 1.一元函数极值 [x,fval]=fminbnd(fun,x1,x2) %x1、x2表示被研究区间的左右边界。 %x返回极小值点,fval返回该点的函数值。 2.多元函数极值 [x,fval]=fminsearch(fun,x0) %单纯形法求多元函数极值点指令,x0为初始值 [x,fval]=fminunc(fun,x0) %拟牛顿法求多元函数极值点指令,x0为初始值 %fun均是用字符串表示函数 [x,fval]=fminbnd(sin(x),-pi,pi) %求sinx在[-π,π]的极小值点 x = -1.5708 fval = -1.0000 [x,fval]=fminsearch( (x(1)-1)^2+(x(2)-x(1)^2)^2,[0,0]) x = 1.0000 1.0000 fval = 2.6131e-010 [x,fval]=fminunc(x(1)^2+x(2)^2-x(1)*x(2)+2*x(1)-4*x(2),[2

文档评论(0)

xinshengwencai + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档