Matlab数值微积分

数值微积分

p = [1,2,3,4] % 多项式p
polynomial多项式函数name含义
多项式计算y=polyval(p,x)计算多项式p在x的每个点处的值
多项式微分k=polyder§返回p中系数表示的多项式的导数
多项式积分q=polyint(p,k)不定积分,常数项为k
数值微积分函数name含义
差分、近似导数diff(X)diff(y)./diff(x)
近似积分sum(),trapz()矩形、梯形近似
定积分和不定积分int()可以用符号变量
数值积分f = @(x) sin(x) ; integral(f, a, b)用function handle的y,求a到b的积分
二次积分f = @(x,y) sin(x)+sin(y); integral2(f,pi,2*pi,0,pi)从里到外
三次积分f = @(x,y,z) sin(x)+sin(y)+sin(z); integral3(f,0,pi,0,1,-1,1)从里到外
% x = 0:pi/2:2*pi;
% x = linspace(0,2*pi);
% f = exp(x).*sin(x.^2/2);
% plot(x,f)
% ax = gca;
% ax.XTick = [0,pi/2,pi,3*pi/2,2*pi];
% ax.XTickLabel = {'0','\pi/2','\pi','3\pi/2','2\pi'};
% ax.XLim = [0,2*pi];
hold on;
for i=1:3
    h = 1/10^i; % h很重要,代表精度
    x = 0:h:2*pi;
    f = exp(-x).*sin(x.^2/2);
    m = diff(f)./diff(x); % diff的原理,就是以h为步长求解差值
    g(i) = plot(x(1:end-1),m);
    ax = gca;
    ax.XTick = [0,pi/2,pi,3*pi/2,2*pi];
    ax.XTickLabel = {'0','\pi/2','\pi','3\pi/2','2\pi'};
    ax.XLim = [0,2*pi];
end
legend('h=0.1','h=0.01','h=0.001');
set(g(1),'color','r','LineStyle','-');
set(g(2),'color','b','LineStyle','--');
set(g(3),'color','g','LineStyle','-.');
function [y] = xy_plot(input,x)
%UNTITLED 此处显示有关此函数的摘要
%   此处显示详细说明
y = input(x);
plot(x,y,'r--');
xlabel('x');
ylabel('function(x)');
end

% 用function handle
xy_plot(@sin, 0:0.01:2*pi);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%求任意f(x)的积分
% 积分integral()
f = @(x) 1./(x.^3-2*x-5);
integral(f,0,2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值