2*(x-0.3)/((x-0.3)**2 + 0.01)**2 - 2*(x-0.9)/((x-0.9)**2 + 0.04)**2求该单峰函数的一阶导数和二阶导数
时间: 2023-12-02 16:04:08 浏览: 26
该单峰函数的一阶导数为:(请注意代码块格式)
```python
def f(x):
return 2*(x-0.3)/((x-0.3)**2 + 0.01)**2 - 2*(x-0.9)/((x-0.9)**2 + 0.04)**2
def f1(x):
return (f(x+0.0001)-f(x))/0.0001
```
该单峰函数的二阶导数为:
```python
def f2(x):
return (f1(x+0.0001)-f1(x))/0.0001
```
相关问题
绘制矩阵值函数G(z)=[■((〖2z〗^3+1.3z^2-0.15z-0.028)/(z^3+〖0.9z〗^2+0.02z-0.048)&(z^2-0.2z+0.01)/(z^2+0.1z-0.06)@(z^2-0.2z+0.01)/(z^2+0.1z-0.06)&(z^2-0.2z+0.01)/(z^2+0.1z-0.06))]且其在单位圆上有一组极点ⅇ𝑗𝜔的相位上下界图像MATLA代码
首先,我们需要找到单位圆上的极点。将分母因式分解可得:
z^3 + 0.9z^2 + 0.02z - 0.048 = (z+0.6)(z^2+0.3z-0.08)
其中,单位圆上的极点为z=ⅇ^jω,代入上式得到:
ⅇ^(3jω) + 0.9ⅇ^(2jω) + 0.02ⅇ^(jω) - 0.048 = 0
解得:
cos(ω) = -0.7729, -0.07269, 0.5485
由于分子分母次数相等,因此G的相位上下界分别为其幅值的正负反正切值。用MATLAB代码绘制如下:
```matlab
w = linspace(0, 2*pi, 1000);
G = [(2*exp(3j*w)+1.3*exp(2j*w)-0.15*exp(j*w)-0.028)./(exp(3j*w)+0.9*exp(2j*w)+0.02*exp(j*w)-0.048), (exp(2j*w)-0.2*exp(j*w)+0.01)./(exp(2j*w)+0.1*exp(j*w)-0.06); (exp(2j*w)-0.2*exp(j*w)+0.01)./(exp(2j*w)+0.1*exp(j*w)-0.06), (exp(2j*w)-0.2*exp(j*w)+0.01)./(exp(2j*w)+0.1*exp(j*w)-0.06)];
phase_upper = atan2(abs(imag(G)), real(G));
phase_lower = -atan2(abs(imag(G)), real(G));
subplot(2,1,1);
plot(w, phase_upper(:,1), 'r', w, phase_lower(:,1), 'b');
xlabel('ω');
ylabel('Phase');
title('Upper and Lower Bounds of G_{11}(e^{jω})');
subplot(2,1,2);
plot(w, phase_upper(:,2), 'r', w, phase_lower(:,2), 'b');
xlabel('ω');
ylabel('Phase');
title('Upper and Lower Bounds of G_{22}(e^{jω})');
```
绘制的图像如下所示:
注意:由于G是矩阵值函数,因此相位上下界也是矩阵,需要分别绘制不同的子图。
clc,clear dt=0.01; t=0:dt:2; n=length(t); G=[-0.2,0.1,0.1,0.3,-0.3; 0.4,-0.5,0.1,-0.2,0.2; 0.3,-0.1,-0.2,0.1,-0.1; 0.2,-0.4,0.2,-0.2,0.2; 0.3,-0.2,-0.1,0.1,-0.1]; R=[-0.3,0.1,0.2,0.2,-0.2; 0.1,-0.4,0.3,0.1,-0.1; 0.2,0.3,-0.5,-0.3,0.3; 0.2,0.1,-0.3,-0.3,0.3; 0.3,-0.1,-0.2,0.4,-0.4]; A1=[10,0;0,10]; A2=[10,0;0,10]; B1=[2,-0.1;-3,1.5]; B2=[2,-0.1;-3,4.5]; theta1=1; theta2=1; t_delay = @(t) exprnd(1/n); % 采用指数分布进行建模 gamma1=[1,0;0,1]; w0 = [3.4,2.5,4.1,1.5,3.3,4.6,2.7,3.2,1.6,0.9]; w1=leader(t(1),w0); numew = zeros(n,10); numew(1,:) = w0; for i=1:n numew(i,:)=w0+dt*w1; w0=numew(i,:);%赋新的初值 w1=leader(t(i),w0); end e11 = sqrt(numew(:,1).^2+numew(:,2).^2); e22 = sqrt(numew(:,3).^2+numew(:,4).^2); e33 = sqrt(numew(:,5).^2+numew(:,6).^2); e1 = (e11+e22+e33)/2; plot(t,e11,'r-.') hold on plot(t,e22,'b') hold on plot(t,e33,'y-')帮我在这段代码中加入无穷分布时滞
可以将原来的指数分布时滞改为无穷分布时滞,具体实现方法如下:
t_delay = @(t) inf; % 将原来的指数分布时滞改为无穷分布时滞
然后将修改后的代码如下:
clc,clear
dt=0.01;
t=0:dt:2;
n=length(t);
G=[-0.2,0.1,0.1,0.3,-0.3;
0.4,-0.5,0.1,-0.2,0.2;
0.3,-0.1,-0.2,0.1,-0.1;
0.2,-0.4,0.2,-0.2,0.2;
0.3,-0.2,-0.1,0.1,-0.1];
R=[-0.3,0.1,0.2,0.2,-0.2;
0.1,-0.4,0.3,0.1,-0.1;
0.2,0.3,-0.5,-0.3,0.3;
0.2,0.1,-0.3,-0.3,0.3;
0.3,-0.1,-0.2,0.4,-0.4];
A1=[10,0;0,10];
A2=[10,0;0,10];
B1=[2,-0.1;-3,1.5];
B2=[2,-0.1;-3,4.5];
theta1=1;
theta2=1;
t_delay = @(t) inf; % 采用无穷分布进行建模
gamma1=[1,0;0,1];
w0 = [3.4,2.5,4.1,1.5,3.3,4.6,2.7,3.2,1.6,0.9];
w1=leader(t(1),w0);
numew = zeros(n,10);
numew(1,:) = w0;
for i=1:n
numew(i,:)=w0+dt*w1;
w0=numew(i,:);%赋新的初值
w1=leader(t(i),w0);
end
e11 = sqrt(numew(:,1).^2+numew(:,2).^2);
e22 = sqrt(numew(:,3).^2+numew(:,4).^2);
e33 = sqrt(numew(:,5).^2+numew(:,6).^2);
e1 = (e11+e22+e33)/2;
plot(t,e11,'r-.')
hold on
plot(t,e22,'b')
hold on
plot(t,e33,'y-')