matlab之数值微积分

1.微分:

就是f'(x)或者\frac{\mathrm{d} f(x)}{\mathrm{d} x}

(几何意义:切线方向)

    1.1多项式的表示:polyval()

             1.1.1多项式求值:polyval()

 

    1.1.2多项式求根:roots()

         例:roots([1,0,-3,1]).

      1.1.3多项式相乘:conv()

              例:z=conv([1,2,5],[1,3]);

 

1.2多项式的微分:polyder() 

 

求x = 7 时的微分:

p = conv([20 -7 5 10],[4 12 -3]);
x = -2:0.01:1;
f = polyval(p,x);
pp = polyder(p);
ff = polyval(pp,x);
plot(x,f,'b--',x,ff,'r-')
legend('f({x})','f''({x})');

 

2.多项式积分

        2.1 polyint()

          注意,积分必须要另外给一个常数

3.数值的微分

 3.1 differ()

可计算出每个值与前面的值的差异

策略:

clc;
clear;
h = 0.01;
x = 0 :h: 2*pi;
y = sin(x);
t = linspace(0,2*pi,12)
yy = cos(t);

m = diff(y)./diff(x);
ff = [1 m];
hold on;
plot(x,y,'b-',x,ff,'r--');
plot(t,yy,'ro');
hold off;
legend('sin({x})','sin''({x})');
set(gca,'XTick',0:pi/2:2*pi);
set(gca,'XLim',[0,2*pi])
set(gca,'YLim',[-1.2,2]);
set(gca,'YTick',-1:1:2);
set(gca,'XTickLabel',{'0','\pi/2','\pi','3\pi/2','2\pi'})

 

 4.二次、三次微分

 

%x^3的一次、二次微分:
x = -2:0.005:2;  y = x.^3;
m = diff(y)./diff(x);
m2 = diff(m)./diff(x(1:end-1));
plot(x,y,x(1:end-1),m,x(1:end-2),m2);
xlabel('x','FontSize',18);
ylabel('y','FontSize',18);
legend('f(x) = x^3','f''(x) ','f''''(x)','location','SouthEast');
set(gca,'FontSize',18);

5、数值积分

策略:计算f(x)与x轴之间图像的面积。

有两种方法:

方法一:

midpoint的作用:求出每一个举行中间的量,从而求出矩形的高。

再将每个矩形面积进行求和就能得到积分。

得到的结果有一定的偏差。

方法二:(trapz() )

trapz()函数相当于:

优化:

>> h = 0.05;
>> x = 0:h:2;
>> y = 4*x.^3;
>> s = h/3*(y(1)+2*sum(y(3:2:end-2))+4*sum(y(2:2:end))+y(end))

s =

    16

>> 

比较:

6、Function Handles(@)

【function作为另一个function的输入】

先定义一个function:(注意与文件名同名)

function [y] = xy_plot(input,x)
    y = input(x);
    plot(x,y,'r--');
    xlabel('x');
    ylabel('function(x)');
end

命令行输入:

xy_plot(@sin,0:0.01:2*pi)

可得到正弦图形。

改变@sin为@cos @tan等可得到相应的图形。

integral()

>> y = @(x) 1./(x.^3-2*x-5);
>> integral(y,0,2)

ans =

   -0.4605

二元、三元:integral2()  integral3()

>> f = @(x,y) y.*sin(x) + x.*cos(y);
>> integral2(f,pi,2*pi,0,pi)

ans =

   -9.8696

>> f = @(x,y,z) y.*sin(x) + z.*cos(y);
>> integral3(f,0,pi,0,1,-1,1)

ans =

    2.0000

【注意integral2和integral3参数从最里层写起】

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值