【问题标题】:How numerically solve an complex integral using the MATLAB如何使用 MATLAB 对复积分进行数值求解
【发布时间】:2015-11-07 22:43:40
【问题描述】:

我正在尝试解决这个等式:

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

其中,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

但是这些代码会返回我不知道要解决的错误。 有人可以帮帮我吗?

谢谢

【问题讨论】:

  • 向我们展示您的代码以及出了什么问题!如果不知道您的错误是什么,我们无法解决它。
  • 嗨 Hugh Nolan,我不久前开始使用 matlab。我为这个等式尝试了不同的代码,但尝试失败......我希望有人能帮我为我写它。 ://
  • 首先我尝试使用此代码:全部清除;关闭所有; cl; F = 96485.34; R = 8.3145; T = 298.15; λ = 0.2;净值=2 圆周率=3.1415; f=@(x) exp(-((lambda+Fneta)/RT-x).^2*RT/4*lambda)/(exp(x)+1) Q=积分(f,-inf,inf) k= sqrt((RT)/(4*pi*lambda)).*Q
  • 之后,我尝试使用“quadl”功能:全部清除;关闭所有; cl; F = 96485.34; R = 8.3145; T = 298.15; λ = 0.2;净值=2 圆周率=3.1415; x= 0:100 f(x)=exp(-((lambda+Fneta)/RT-x).^2*RT/4*lambda)/(exp(x )+1) q=quadl('f', 0, 100) k= sqrt((RT)/(4*pi*lambda)).*q
  • 在这种情况下,我更改了 x 的间隔,因为程序显示“超出了程序允许的最大变量大小”并且因为开发该等式的作者说这个积分函数是有限的小范围的 x。

标签: matlab integral


【解决方案1】:

问题在于neta。如果它是一个标量值,那么代码就可以了。但是,您建议如何针对不同的变量在 neta 区间上进行积分?这意味着什么?我尝试将 neta 的单个值从 0 到 1 并为每个值计算一个 Q 值,但每个 Q 返回 0。

【讨论】:

  • 当我使用neta的单个值时,我也会遇到同样的情况,结果为零。我想为每个 neta 值获取 k 值,以便能够绘制 k 与 neta 的关系图。所以我试图以数字方式解决这种整合。 x 是未知的,作者只是说积分函数仅在 x 的小范围内是有限的,并且通过进一步减小 x 的值来收敛。我正在尝试使用不同范围的 x 来解决。其他常量的值是预设的,也许我对这些常量的单位有疑问。我将再次检查所有输入值。
猜你喜欢
  • 1970-01-01
  • 2016-12-13
  • 2011-02-21
  • 1970-01-01
  • 2014-02-27
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
  • 2018-01-12
相关资源
最近更新 更多