Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用MATLAB数值求解复积分_Matlab_Integral - Fatal编程技术网

如何用MATLAB数值求解复积分

如何用MATLAB数值求解复积分,matlab,integral,Matlab,Integral,我试图解决这个方程: K=sqrt((R*T)/(4*pi*lambda))*exp(-(lambda+F*neta)/R*T-x)^2*R*T/4*lambda)/exp(x)+1关于x的-inf到inf的积分 其中,neta是从0到1的间隔,其他符号(R、T、F、lambda和pi)具有常量值 我尝试使用这些代码: 代码1 clear all; close all; clc; F = 96485.34; R = 8.3145; T = 298.15; lambda = 0.2; neta=0

我试图解决这个方程:

K=sqrt((R*T)/(4*pi*lambda))*exp(-(lambda+F*neta)/R*T-x)^2*R*T/4*lambda)/exp(x)+1关于x的-inf到inf的积分

其中,neta是从0到1的间隔,其他符号(R、T、F、lambda和pi)具有常量值

我尝试使用这些代码:

代码1

clear all;
close all;
clc;
F = 96485.34;
R = 8.3145;
T = 298.15;
lambda = 0.2;
neta=0:0.1:1;
pi=3.1415;
f=@(x) exp(-((lambda+F*neta)/R*T-x).^2*R*T/4*lambda)/(exp(x)+1);
Q=integral(f,-inf,inf);
k= sqrt((R*T)/(4*pi*lambda)).*Q
代码2

clear all;
close all;
clc;
F = 96485.34;
R = 8.3145;
T = 298.15;
lambda = 0.2;
neta=0:0.1:1;
pi=3.1415;
x= 0:100;
f(x)=exp(-((lambda+F*neta)/R*T-x).^2*R*T/4*lambda)/(exp(x)+1);
q=quadl('f', 0, 100);
k= sqrt((R*T)/(4*pi*lambda)).*q
但是这些代码返回我不知道如何解决的错误。 有人能帮我吗


谢谢

问题在于neta。如果它是标量值,那么代码就可以了。但是,您建议如何针对不同的变量在neta时间间隔内进行集成?这是什么意思?我尝试将neta的各个值从0取到1,并为每个值计算一个Q值,但每个Q值都返回0。

向我们展示您的代码以及出现的问题!我们不能在不知道你的错误是什么的情况下解决它。嗨,休·诺兰,我不久前就开始使用matlab了。我尝试了这个等式的不同代码,但都是失败的尝试。。。我希望有人能帮我写这封信/首先,我尝试使用以下代码:全部清除;全部关闭;clc;F=96485.34;R=8.3145;T=298.15;λ=0.2;neta=2pi=3.1415;f=@(x)exp(((lambda+Fneta)/RT-x)。^2*RT/4*lambda)/(exp(x)+1)Q=integral(f,-inf,inf)k=sqrt((RT)/(4*pi*lambda))。*Q之后,我尝试使用“quadl”函数:全部清除;全部关闭;clc;F=96485.34;R=8.3145;T=298.15;λ=0.2;neta=2pi=3.1415;x=0:100 f(x)=exp(-(lambda+Fneta)/RT-x.^2*RT/4*lambda)/(exp(x)+1)q=quadl('f',01100)k=sqrt((RT)/(4*pi*lambda))。*在这种情况下,我更改了x的间隔,因为程序显示“超过了程序允许的最大变量大小”因为发展这个方程的作者说,这个积分函数只有在很小的x范围内是有限的。当我使用单个值时,同样的情况也发生在我身上​​对于neta,结果为零。我想为neta的每个值获得一个k值,以便能够绘制一张k与neta的对比图。所以我试图用数值方法来求解积分。x未知,作者只是说积分函数仅在x的一个小范围内是有限的,并且通过进一步减小x的值来收敛。我试着用不同范围的x来解。其他常数的值是预先设定的,也许我对这些常数的单位有问题。我将再次检查所有输入值。