matlab之一元多项式、数值微分、数值积分

一元多项式

1.绘图,求值

f ( x ) = 9 x 3 − 5 x 2 + 3 x + 7 ( − 2 ≤ x ≤ 5 ) , f ( x ) = ? f(x)=9x^3-5x^2+3x+7 (-2\le x\le5),f(x)=? f(x)=9x35x2+3x+7(2x5),f(x)=?

a = [9 -5 3 7];%代表多项式各项系数
x = -2:0.01:5;
f = polyval(a,x);%求值
%美化部分
plot(x,f,'LineWidth', 2);
xlabel('x'); ylabel('f(x)');
set(gca, 'FontSize', 14)
2.求导

f ( x ) = 5 x 4 − 2 x 2 + 1 , f ′ ( x ) = ? f(x)=5x^4-2x^2+1,f'(x)=? f(x)=5x42x2+1,f(x)=?

p=[5 0 -2 0 1];
polyder(p);
3.多项式相乘

f ( x ) = ( 5 x 3 − 7 x 2 + 5 x + 10 ) ( 4 x 2 + 12 x − 3 ) = ? f(x)=(5x^3-7x^2+5x+10)(4x^2+12x-3)=? f(x)=(5x37x2+5x+10)(4x2+12x3)=?

a=[5 -7 5 10];
b=[4 12 -3];
f=conv(a,b);
4.求不定积分

已 知 f ( x ) = 5 x 4 − 2 x 2 + 1 , 求 ∫ f ( x ) 已知f(x)=5x^4-2x^2+1,求\int{f(x)} f(x)=5x42x2+1,f(x)

p=[5 0 -2 0 1];
f=polyint(p, 3);%第二个参数代表反导后的常数项k

数值微分

1.基本原理

f ′ ( x 0 ) = lim ⁡ h → 0 f ( x 0 + h ) − f ( x 0 ) h f'(x_0)=\lim_{h\rightarrow0}\frac{f(x_0+h)-f(x_0)}{h} f(x0)=h0limhf(x0+h)f(x0)

2.实现方法

计 算 不 同 h 下 , 用 数 值 微 分 求 出 的 f ( x ) = s i n ( x ) 导 数 的 函 数 计算不同h下,用数值微分求出的f(x)=sin(x)导数的函数 hf(x)=sin(x)

g = colormap(lines);%
hold on;
for i=1:4
    x = 0:power(10, -i):pi;
    y = sin(x);
    m = diff(y)./diff(x);%diff函数求出数组内相邻数组的差值
    plot(x(1:end-1), m, 'Color', g(i,:)); 
end
hold off;
%美化部分
set(gca, 'XLim', [0, pi/2]); 
set(gca, 'YLim', [0, 1.2]);
set(gca, 'FontSize', 18);
set(gca, 'FontName', 'symbol');
set(gca, 'XTick', 0:pi/4:pi/2);
set(gca, 'XTickLabel', {'0', 'p/4', 'p/2'});
h = legend('h=0.1','h=0.01','h=0.001','h=0.0001');
set(h,'FontName', 'Times New Roman'); 
box on;
3.扩展

知 f ( x ) = x 3 , 求 − 2 ≤ x ≤ 2 范 围 内 的 f ′ , f ′ ′ 知f(x)=x^3,求-2\le x\le2范围内的 f',f'' f(x)=x3,2x2f,f

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)', 4);
set(gca, 'FontSize', 18);

数值积分

根据积分的性质,可以在MATLAB上编写,但是已经有内置函数了,就只放图

screenShot.png

1.一重积分

∫ 0 2 1 x 3 − 2 x − 5 d x \int_{0}^{2}\frac{1}{x^3-2x-5}dx 02x32x51dx

y = @(x) 1./(x.^3-2*x-5);
ans=integral(y,0,2);
2.二重积分

f ( x , y ) = ∫ 0 π ∫ π 2 π ( y ⋅ s i n ( x ) + x ⋅ c o s ( y ) ) d x d y f(x,y)=\int_0^{\pi}{\int_{\pi}^{2\pi}(y\cdot{sin(x)+x\cdot{cos(y)}})dxdy} f(x,y)=0ππ2π(ysin(x)+xcos(y))dxdy

f = @(x,y) y.*sin(x)+x.*cos(y);
ans=integral2(f,pi,2*pi,0,pi);
3.三重积分

∫ − 1 1 ∫ 0 1 ∫ 0 π ( y ⋅ s i n ( x ) + z ⋅ c o s ( y ) ) d x d y d z \int_{-1}^{1}\int_{0}^{1}\int_{0}^{\pi}(y\cdot{sin(x)+z\cdot{cos(y)}})dxdydz 11010π(ysin(x)+zcos(y))dxdydz

f = @(x,y,z) y.*sin(x)+z.*cos(y);
ans=integral3(f,0,pi,0,1,-1,1)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值