LEIZHIWEN_1 2020-04-09 11:46
浏览 413

在matlab中,在for循环里面用quadl函数求积分的时候,一直显示输入参数过多是怎么回事,部分程序如下。

在matlab中,在for循环里面用quadl函数求积分的时候,一直显示输入参数过多是怎么回事,部分程序如下
clc;
clear;
run('sanweimonidianhefa');
%线电荷,两端点分别为p1(x1,y1,z1),p2(x2,y2,z2) ,线单元中的任一点为p3(x3,y3,z3) ,空间内任一点的坐标为 f(x,y,z)

%模拟电荷的位置
jt=10;%间隔
x1=[-200:jt:200 -200:jt:200 -200:jt:200];%多条线路,也就是点多一点,
t=length(x1);
y1=[-12*ones(1,t/3) zeros(1,t/3) 12*ones(1,t/3)];
z1=2.55*10.^(-4)*x1.^2+25.81;%通过弧垂,得到输电线的抛物线方程
%镜像电荷的位置
jx1=x1;
jy1=y1;
jz1=-z1;
%匹配点的位置
x=[linspace(-40,40,t-3)];
y=[linspace(-40,40,t-3)];
z=[zeros(1,t-3)];
for i=1:(t-3)%代表匹配点
for j=1:(t-3)%代表模拟电荷
%模拟电荷产生的电位系数
l(i,j)=x1(j+1)-x1(j);
m(i,j)=y1(j+1)-y1(j);
n(i,j)=z1(j+1)-z1(j);
L(i,j)=sqrt(l(i,j).^2+m(i,j).^2+n(i,j).^2);%线电荷的长度
E(i,j)=l(i,j).^2+m(i,j).^2+n(i,j).^2;
F(i,j)=-2*(l(i,j)*(x(i)-x1(j))+m(i,j)*(y(i)-y1(j))+n(i,j)*(z(i)-z1(j)));
G(i,j)=(x(i)-x1(j)).^2+(y(i)-y1(j)).^2+(z(i)-z1(j)).^2;
td1(i,j)=L(i,j)./(4*pi*8.85*10^(-12));
p1(i,j)=(L(i,j)/(4*pi*8.85*10^(-12)*sqrt(E(i,j))))*log((F(i,j)+2*E(i,j)+2*sqrt(E(i,j)*(E(i,j)+F(i,j)+G(i,j))))/(F(i,j)+2*sqrt(E(i,j)*G(i,j))));%电位的计算公式

E01(i,j)=@(t2)(td1(i,j).*(x(i)-x1(j)-l(i,j).*t2)./(sqrt(E(i,j).*t2.^2+F(i,j).*t2+G(i,j)).^3));

E1(i,j)=quadl(E01(i,j),0,1);%此处求积分的时候出现问题
end
end
E1

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 MCNP里如何定义多个源?
    • ¥20 双层网络上信息-疾病传播
    • ¥50 paddlepaddle pinn
    • ¥20 idea运行测试代码报错问题
    • ¥15 网络监控:网络故障告警通知
    • ¥15 django项目运行报编码错误
    • ¥15 请问这个是什么意思?
    • ¥15 STM32驱动继电器
    • ¥15 Windows server update services
    • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏