matlab数值微积分

Posted lidan-prime

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab数值微积分相关的知识,希望对你有一定的参考价值。

1、polyval()     %多项式构造函数,参数为系数vector,自变量vector   

f=[9,-5,3,7]; x=-2:0.01:5;   %x的范围为-2到5

y=polyval(f,x);     %x为自变量范围,f为多项式系数

plot(x,y, ’linewidth’,2);

xlabel(‘x’); ylabel(‘y’);

set(gca,’fontsize’,14);

 

2、polyder()   %求导

p=[5 0 -2 1];  %5x^4-2x^2+x

polyder(p);  %结果为20     0    -4     0

 

3、当x=7时,导数值

p=[5 0 -2 1];    %5x^4-2x^2+x

polyval(polyder(p),7);

 

4、conv()  %  用于表示f(x)=(20x^3+7x^2)(x^3+4x)这种的多个因式

的乘积

y1=[20 7 0 0]; y2=[1 0 4 0];

f=conv(y1,y2);

5、polyint()    %给不定积分一个确定的常数项k,...

f(x)=x+4;  对其积分得 1/2x^2+4x+k

p=[5 0 -2 0 1];  %f(x)

polyint(p,3);   %给定积分后常数项k为3

polyval( polyint(p,3),7 );  %计算f(7)的积分    

 

6、diff()  %向量相邻元素的差异,用于计算斜率

x=[1 2]; y=[5 7];  %x1,x2   y1,y2

slope=diff(y) ./ diff(x);   %计算的是点(1,5) (2,7)的斜率

 

7、计算整个定义域内的导数

h=0.5;  x=0:h:2*pi;

y=sin(x); m=diff(y)./diff(x);        %计算sin’(x)

 

8、计算二次微分,三次微分

x=-2:0.005:2;  y=x.^3;

m=diff(y)./diff(x);      %一阶导    

m2=diff(m)./diff(x(1:end-1));  %m的维度比x少1 ,二阶导

plot(x,y,x(1:end-1),m,x(1:end-2),m2);

legend(‘f(x)‘, ‘f`(x)‘, ‘f``(x)‘);   %做图像标注

 

9、计算定积分,利用微分长方形累加  计算4x^3 在区间[0,2]的积分

h=0.05; x=0:h:2;         

midpoint=(x(1:end-1)+x(2:end))./2;  %计算每个长方形的中点 (Xmid )

y=4*midpoint.^3;        %结果为15.99   

s=sum(h*y);      %所有梯形的底乘高 总和

 

10、trapz()   计算定积分,利用梯形累加

h=0.05; x=0:h:2; y=4*x.^3;        %h为梯形的高

s=h*trapz(y);    %结果为16.01

 

11、integral2 二重积分   integral3三重积分

[email protected](x,y) y.*sin(x)+8.*cos(y);   %要积分的函数

integral2(f,pi,2*pi,0,pi);  %参数为:函数,第一层积分区间,第二层积分区间

integral3(f,0,pi,0,1,-1,1);

以上是关于matlab数值微积分的主要内容,如果未能解决你的问题,请参考以下文章

matlab进行数值近似积分,含变化的常数做为参数

Matlab数值积分

玩转matlab之一维 gauss 数值积分公式及matlab源代码

数值积分法的MATLAB实现

Matlab数值积分

Matlab上的数值积分