想设计一个循环,使得theta在0到pi范围内逐渐增加,函数g与theta的值有关,g=g+F*0.001,是不断累加的,请问一下在第二个for循环内部应该怎样实现?现在这个程序出来的结果g =0 0.7870 0三个值。刚用matlab,还不太熟悉,可能有基础性的错误,求大家指点一下
- for n=1,d=1,H=5;
- xi=-n*d:n*d;
- r=sqrt((n*d)^2+H^2)-d; % 通过xi的范围确定r的值
- g=0; % g的初始值为0
- for theta=0:0.001:pi;
- x=xi+r*cos(theta);
- y=r*sin(theta);
- F=Piecewise_xy(xi+r*cos(theta),r*sin(theta))*r;
- g=g+F*0.001;
- end
- end
[color=rgb(51, 102, 153) !important]复制代码
Piecewise_xy是之前定义的分段函数,代码如下
- function fxy=Piecewise_xy(x,y) %定义有紧支集的函数f(x,y)
- fxy=1.*(x.^2+(y-5).^2<=1)+0.*(x.^2+(y-5).^2>1);
- end
[color=rgb(51, 102, 153) !important]复制代码
|
|