数值微积分
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)