【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《3差分,微分,梯度》,欢迎阅读!
§3 差分 微分 梯度
一、知识背景
差分运算的大体概念:
在物理问题(如电磁场)的数值分析的计算方式中,有限差分法是应用最先的一种方式,直至今天,它仍以其简单、直观的特点而取得普遍应用。不管是常微分方程、偏微分方程,线性方程或非线性方程,通常都可利用有限差分方式转化为代数方程组,借助运算机求得数值解。
设函数为f(x),其独立变量x有一很小的增量,那么该函数f(x)的增量为:f(x)f(xh)f(x),称为一阶差分。与微分不同,因是有限量的差,因此称有限差分。一阶差分除以增量h的商,为一阶差商:
f(x)f(xh)f(x)
xh
还可计算一阶差分的差分,取得二阶差分,即:2f(x)f(xh)f(x)。
能够近似用差商表示函数f(x)的导数及偏导数。咱们能够用各离散点上函数的差商来近似代替该点的偏导数,将需求解的边值问题转化为一组相应的差分方程,依照差分方程组解出位于各离散点上的待求函数值,即相应的数值解。
二、计算差分指令diff
语句格式:diff(x)---
符号意义:假设x是行矢量,那么指令diff(x)计算式为[x(2)-x(1),x(3)-x(2), … x(n)-x(n-1)],即后项减前项。
假设x是矩阵,那么指令计算为后行减前行,即对矩阵的行矢量作差分计算所得矩阵为[x(2:n,:)-x(1:n,:)]。
diff(x,n) 指令对矩阵x的列矢量计算n阶差分,n应小于或等于矩阵列矢量的元素数。
diff(x,n,dim) 指令对矩阵x中,由dim代表的维作差分计算,若是n大于或等于dim的维元素数,那么返回空矩阵。 例1:对矩阵x, 作不同情形下的差分运算。
>>x=[1,3,5;6,4,2],z1=diff(x),z2=diff(x,1,1),z3=diff(x,1,2),z4=diff(x,2,2),z5=diff(x,3,2) x =
1 3 5 6 4 2
z1 =
5 1 -3
z2 = %对x的每列进行一阶差分计算,结果为后行减前行,和
diff(x),diff(x,1)结果相同
5 1 -3
z3 = %对x的每行进行一阶差分计算,结果是后列减前列
2 2 -2 -2
z4 = %对x每行进行二阶差分计算
0 0
z5 = %对每行作三阶差分计算。结果取得一个空矩阵
Empty matrix: 2-by-0
三、微分 导数
一阶差分f(x)f(xh)f(x),一阶差商
f(x)f(xh)f(x)
xh
当增量h很小,差分f(x)与微分df(x)之间不同将很小,因此可用diff粗
略求微分。而导数可近似用差商计算,
df(x)f(x)f(xh)f(x)
。dxxh
另外,也可用gradient(f,h)梯度指令作为数值计算近似公式求导数。 例2:对函数y=cos(x2)求导数,用差分、求导公式、求梯度,不同方式运算,并进行比较。 >> h=;x=0:h:pi/2; y=cos(x.^2);
y1=diff(y)/h; %用差商求导 y2=-sin(x.^2)*2.*x; %用求导数公式 y3=gradient(y,h); %用求梯度公式 plot(x,y,'k',x(1:end-1),y1+,'r',x,y2,'b',x,,'g'), grid
例 2 图
图中,最上面线为y~x函数曲线,下面三条线别离为:中间蓝色的为用导数公式求的导数曲线,上面红色的为用差商求的导数曲线,下面绿色的为
用梯度求的曲线。上、下两条线已通过技术处置()不然三线大体重在一路。从这结果也看出三种方式求导结果大致相同。可自行绘制y1-y2,y3-y2图线,看其情形。
四、矩阵或多维列阵的梯度
语句格式:
[fx fy]= gradient( f ) [fx fy]= gradient( f, h ) [fx fy]= gradient( f, hx, hy ) 符号意义:
fy 代表df/dy,是y(行)方向的偏微分; fx 代表df/dx,是x(列)方向的偏微分; f(需求梯度)的矩阵或列阵。
h 标量,是各个方向的步长,其默许值为1。
hx,hy 为标量或矢量,别离表示在x、y方向上的步长,假设为矢量,其长度应与f对应维的元素数相等。 例3:已知V线散布。
>>v='(x.^2+y.^2).^'; %以字符串方式输入电势V的方程 xmax=10;ymax=10;ngrid=20; %确信x,y画图范围和网格线数 xplot=linspace(-xmax,xmax,ngrid);
[x,y]=meshgrid(xplot); %生成二维网络(x,y网络) vplot=eval(v); %执行输入字符串
[Explot,Eyplot]=gradient(-vplot); %计算电场(E) meshc(vplot), %含等高线的三维曲面 figure(2),
1,绘制电场E空间散布图形,E矢量场图和等位
22xy
subplot(1,2,1), meshc(vplot),
xlabel('x'),ylabel('y');zlabel('U'), %加注坐标轴 subplot(1,2,2),
axis([-xmax,xmax,-ymax,ymax]), %等高线图范围及比例 cs=contour(x,y,vplot); %绘制等高线 clabel(cs), %等高线图标出字符 hold on;
quiver(x,y,Explot,Eyplot), %箭头图 xlabel('x'),ylabel('y'), hold off
例 3 图
练习三:
如何取得V和E的数值解?
针对不同V的函数,练习编写程序。观看分析图形。 (1)Vlog(2x24y2); (2)V2x24y2.
本文来源:https://www.wddqxz.cn/dc0ccc4c24d3240c844769eae009581b6bd9bdf2.html