Matlab课程设计

发布 2022-10-01 01:25:28 阅读 5178

课题名称:数值微积分。

学生姓名:系别:计算机学院。

专业:计算机与科学。

指导老师:01年6月15日。

数值微积分。

引言。在微分中,函数的导数是用极限来定义的,如果一个函数是以数值给出的离散形式,那么它的导数就无法用极限运算方法求得,当然也就更无法用求道方法去计算函数在某点处的导数。

一般来说,函数的导数依然是一个函数。设函数f(x)的导数f′(x)=g(x),高等数学关心的是g(x)的形式和性质,而数值分析关心的问题是怎样的计算g(x)在一串离散点x=(x1,x2,…xn)的近似值g=(g1,g2,..gn)以及所计算的近似值有多大的误差。

1. 数值差分与差商。

任意函数f(x)在x点的导数是通过极限定义的:

f′(x)=lim f(x+h)-f(x)/h

f′(x)=lim f(x)-f(x-h)/h

f′(x)=lim f(x+h/2)-f(x-h/2)/h

上述式子中,均假设h﹥0,如果去掉上述等式右端的h→0的极限过程,并引进记号:

f(x)=f(x+h)-f(x)

f(x)=f(x)-f(x-h)

f(x)=f(x+h/2)-f(x-h/2)

称△f(x) ▽f(x)、δf(x)分别为函数在x点的以h(h>0)为步长的向前差分、向后差分、向中差分。当步长h充分的小时,有。

f′(x)≈△f(x)/h

f′(x)≈▽f(x)/h

f′(x)≈δf(x)/h

和差分一样,称△f(x)/h, ▽f(x)/h,、δf(x)/h分别为函数在x点一h(h>0)为步长的向前差商、向后差商、向中差商。当步长h充分的小时,函数f在x点微分接近于函数在该点的任意种差分,而f在点x的导数接近于函数在该点的任意种差商。

2. 数值微分的实现。

有两种方式计算任意函数f(x)在给定点x点数值导数。第一种方式是用多项式或样条函数g(x)对f(x)进行逼近,然后用逼近函数g(x)在点x的导数作为f(x)在点x的导数。

第二种方式是用f(x)在点x处的某种差商作为其导数。在matlab中,没有直接提供数值导数的函数,只有计算向前差分的函数diff,其调用格式为:

diff(x),输入参数x可为矢量或矩阵。若x为矢量,则返回[x(2)-x(1),x(3)-x(2),…x(n)-x(n-1)];若x为矩阵,则返回矩阵每行的差分,即[x(2:m,:

)x(1:m-1,:)通常,diff(x)返回沿x的第一个成对维的差值。

y=diff(x,n):递归调用diff函数n次,生成n次差分。

y=diff(x,n,dim): 返回x中第dim维的n次差分或导数值。

设计1如下:

x=[3 7 5;0 4 2];

diff(x)ans=

设计2如下:

x=[3 7 5;0 4 2];

diff=(x,2)ans=

设计3如下:

x=[3 7 5;0 4 2];

diff=(x,2,1)

ans=empty matrix: 0-by-3

设:用不同的方法求函数f(x)的数值导数,并在同一个坐标系中画出f′(x)的图形。

程序如下: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用5次多项式p拟合f(x)

dp=polyder(p对拟合多项式p求导数dp

dpx=polyval(dp,x求dp在假设点的函数值。

dx=diff(f([x,3.01]))0.01直接对f(x)求数值导数

gx=g(x求函数f的导函数g在假设点的导数。

plot(x,dpx,x,dx,’.x,gx作图。

程序运行后得到图6.3所示的图形。结果表明,用3种方法求得的数值导数比较近似。

matlab语言提供了计算给定向量差分的函数diff(),其调用的方法是dy=diff(y).假设向量y是{yi},i=1,2,3,…,n构成,则经过diff()函数处理后将得出一个新的向量:

yi+1-yi},i=1,2,3,…,n,显然新得出的向量长度比原来向量的长度y要小1.如:

>>v=vander(1:6)v=

>>diff(v)ans=

可见,diff()函数对矩阵的每一列都进行了差分运算,故而结果矩阵的列数是不变的,只是有行数减1.

同时,在matlab中,还提供了gradient()函数的调运,这函数可以直接用来求一个矩阵的二维差分,该函数的调用格式为:

[dx,dy]=gradient(a)

>> v=vander(1,6),[dx,dy]=gradieng(v)v=

dx=1.0e=003*

dy=6.2.2 数值积分。

在科学实验和生产中,经常要求函数f(x)在区间[a,b]上的定积分:

在高等数学中,计算积分依靠微积分基本定理,只要找到被积函数f(x)的原函数f(x),则可以用牛顿—莱布尼茨公式:

来求出定积分。但是,在有些情况下,应用牛顿—莱布尼茨公式往往有困难,例如,当被积函数的原函数无法用初等函数表示或被积函数为仅知离散点处函数值的离散函数时。

1. 数值积分的基本原理。

数值积分研究定积分的数值求解方法。设。i1=

MATLAB课程设计

1 求被控对象传递函数g s 的matlab描述。num 789 6312 11835 den 1 14 56 64 0 0 gs tf num,den transfer function 789 s 2 6312 s 11835 s 5 14 s 4 56 s 3 64 s 2 2 求被控对象脉冲...

MATLAB课程设计

课程设计。题目 matlab计算器。姓名 班级 学院 专业 完成时间。1总体设计。该计算器程序主要是matlab来制作,界面主要由四个静态文本框 21个运算按钮和两个动态文本框组成。实现的运算功能有四则运算 加 减 乘 除。而且添加了括号使人们使用时更加简单。这些计算功能主要调用了matlab的自定...

MATLAB课程设计

matlab课程设计。如图所示,为测量系统的示意图,它由两个能相互转动的连杆,角度编码器和滚轮等组成。o1为固定点,o2点为转动点,o3点为滚轮的中心,连杆的有效长度分别为l1和l2。任一位置时,连杆1相对于某基准位置的角度为 1,两连杆的相对角度为 2。其中对于 1,取垂直方向为基准线,在基准线左...