数值微积分
polyval(a,x)
参数
1.多项式的系数向量
2.自变量
1 2 3 4 5 6 7 8 9 10 | hold on 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); title ( '9x^{3}-5x^{2}+3x+7 -2<=x<=5' ); hold off |
polyval()求导后某位置的值
1 2 | p=[5 0 -2 0 1]; polyval ( polyder (p),7); |
conv(向量卷积运算)
所谓两个向量卷积,说白了就是多项式乘法。
比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积如下:
把p的元素作为一个多项式的系数,多项式按升幂(或降幂)排列,比如就按升幂吧,写出对应的多项式:1+2x+3x^2;同样的,把q的元素也作为多项式的系数按升幂排列,写出对应的多项式:1+x。
卷积就是“两个多项式相乘取系数”。
(1+2x+3x^2)×(1+x)=1+3x+5x^2+3x^3
所以p和q卷积的结果就是[1 3 5 3]。
polyint(p,a) 求积分
参数
p 多项式系数的向量
a 积分后添加的常数项
1 2 | p=[5 0 -2 0 1]; polyval ( polyint (p,3),7); |
diff() 求差分
1 2 3 4 5 6 | >> x=[1 2 5 2 1]; >> diff (x) ans = 1 3 -3 -1 |
求斜率
1 2 3 4 5 6 7 | >> x=[1 2]; >> y=[5 7]; >> slope= diff (y)./ diff (x) slope = 2 |
求导数
1 2 3 4 5 6 7 8 9 | hold on %求sin(x)的导数 h=0.05; x=0:h:2* pi ; y= sin (x); m= diff (y)./ diff (x); plot (m, 'o--r' ); plot (y); hold off |
1 2 3 4 5 6 7 8 9 10 | hold on x=-2:0.005:2; y=x.^3; m= diff (y)./ diff (x); %求二次导数 特别注意 %假设原来有三个数 求差完 得到 两个差值-->也就是说每次导数完,x的个数会减1 m2= diff (m)./ diff (x(1: end -1)); plot (m); plot (m2); hold off |
三种不同思想的积分方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | %%hold on %Midpoint Rule 取x中点值求和乘高 h=0.05; x=0:h:2; midpoint=(x(1: end -1)+x(2: end ))./2; y=4*midpoint.^3; s= sum (h*y); plot (y); %%hold off %%Trapezoid Rule 把函数值算出来乘高求和 h=0.05;x=0:h:2; y=4*x.^3; trapezoid=(y(1: end -1)+y(2: end ))/2; s=h* sum (trapezoid); %% %%Simpson's Rule 比上面两个方法精确 没研究原理 略写 |
指针传参function handles
1 2 3 4 5 6 7 | function [y]=tem( input ,x) y= input (x); plot (x,y, 'r--' ); xlabel ( 'x' ); ylabel ( 'function(x)' ); end |
1 | >> tem(@ sin ,0:0.01:2* pi ); |
integral(被积函数,上限,下限)
1 2 3 4 5 6 | >> y=@(x) 1./(x.^3-2*x-5); >> integral(y,0,2) ans = -0.4605 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步