• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB学习笔记(八)——MATLAB数值积分与微分

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

(一)数值积分

一、数值积分的MATLAB实现方法:

1、变步长辛普生法(quad)法:

(1)调用格式:

[I,n]=quad(\'fname\',a,b,tol,trace);

   fname是被积函数;

   a,b是积分上下限;

   tol来控制积分精度,默认为0.001;

   trace控制是否展现积分过程,默认为0,不展现;若trace≠0,则展现。

(2)fname使用的两种方法:

   建立函数文件:

function f=fesin(x)
f=……;

   另一种则是使用内联函数(据说14后的版本会删除这个):

g=inline(\'exp(-0.5*x)\',x);

2、牛顿——科特斯法

[I,n]=quad8(\'fname\',a,b,tol,trace);

   形参完全同上,但是效果比较好。

3、当被积函数只有离散解时积分的方法:

trapz(X,Y);

  X,Y是等长的向量,满足Y=f(X);

二、二重定积分的数值求解

I=dblquad(f,a,b,c,d,tol,trace);

  f为被积函数,同样可以有两中给出方式

  a,b,c,d定义了被积区间

  tol为精度

  trace为是否展示过程

(二)数值微分

一、数值差分与差商

1、导数的定义:

2、差分定义:

3、差商定义:

二、数值微分的实现:

一共三种方法:

(1)使用多项式或者样条函数进行拟合,对拟合函数进行求导,得到需要点的导数

(2)使用差商作为导数

(3)如果被积函数可导,可直接求导,再带入。

一个demo

MATLAB三种方式编程求解:

f=inline(\'sqrt(x.^3+2*x.^2-x+12)+(x+5).^(1/6)+5*x+2\');
g=inline(\'(3*x.^2+4*x-1)./sqrt(x.^3+2*x.^2-x+12)/2+1/6./(x+5).^(5/6)+5\');

x=-3:0.01:3;    %求导数点
%方法一
p=polyfit(x,f(x),5);
dp=polyder(p);
dpx=polyval(dp,x);
%方法二
dx=diff(f([x,3.01]))/0.01;
%方法三
gx=g(x);
plot(x,dpx,x,dx,\'.\',x,gx,\'-\');


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi 之Inherited详解发布时间:2022-07-18
下一篇:
delphi常用发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap