for循环实现函数累加

来源:matlab  › 交流  › 倒序浏览
  • 回答数

    3

  • 浏览数

    2983

  • 收藏数

    0

作者:偶尔合群 发表于 2018-11-20 10:10:45
跳转到指定楼层
想设计一个循环,使得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]复制代码


分享:
回复

使用道具

该用户从未签到

新手上路

Rank: 1

积分
24
极客币
80
主题
22
帖子
34
注册时间
2018-10-22
在线时间
1 小时
性别
保密
发表于 2018-11-20 10:10:59 | 显示全部楼层
为何你程序里两处for的语法是不一样的?
回复

使用道具 举报

该用户从未签到

新手上路

Rank: 1

积分
25
极客币
81
主题
22
帖子
35
注册时间
2018-10-22
在线时间
1 小时
性别
保密
发表于 2018-11-20 10:11:17 | 显示全部楼层
是不是应该是??
n=1,d=1,H=5;
for    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
回复

使用道具 举报

该用户从未签到

新手上路

Rank: 1

积分
23
极客币
82
主题
23
帖子
36
注册时间
2018-10-22
在线时间
2 小时
性别
保密
 楼主| 发表于 2018-11-20 10:11:44 | 显示全部楼层
说多了都是泪 发表于 2018-11-20 10:10
为何你程序里两处for的语法是不一样的?

您好,我想问一下for循环应该怎样写,您之前说我两处语法不一样,确实,我运行出来xi是从[-4,4]的一个数组,而theta只是3.14这个值,我现在想对r和theta都做for循环,使得r是[3,7]的数组,theta是[0,pi]的一个数组,您看我该怎样修改,我这样的程序出来r是7,theta是3.14
for n=2;d=2;H=3;
    xi=-n*d:n*d;
    m=sqrt(xi.^2+H.^2)-d;
    n=sqrt(xi.^2+H.^2)+d;
for r=m:0.01:n;                    % 通过xi的值确定r的范围
    g=0;                          % g的初始值为0
for theta=0:0.01: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.0001;        % 对函数F关于theta在(0,pi)内实现累加
end
end
end

回复

使用道具 举报

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录