MATLAB循环结构:for语句+定积分实例
1. for语句2. 格式:
1 for 循环变量=表达式1:表达式2:表达式32 循环体语句3 end45
6 表达式1:循环变量初值;表达式2:步长;表达式3:循环变量终值。
for 循环变量=矩阵表达式循环体语句end
循环变量分别等于矩阵各列元素,然后执⾏循环语句;
s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=a s=s+k;end
disp(s'); %s'以⾏输出结果:39 48 57 66disp(s)或s; 结果:39485766
例
1. ⼀个3位整数各位数字的⽴⽅和等于该数本⾝则称该数为⽔仙花数。输出100~999之间的全部。2. 1 for m=100:999 %步长省略则为1
2 m1=fix(m/100); %求m的百位数字;fix:向零⽅向取整;3 m2=rem(fix(m/10),10); %求m的⼗位数字;rem:求余运算4 m3=rem(m,10); %求m的个位数字5 if m==m1*m1*m1+m2*m2*m2+m3*m3*m36 disp(m) 7 end8 end
输出结果:153370371407
3. 已知y=1/12+1/22+...1/n2,当n=100时,求y的值;4. y=0;
n=100;for i=1:n y=y+1/i/i;endy
结果:y=1.6350
快速算法:n=100;i=1:n;
f=1./i.^2;%点运算,这⾥i形成的是⼀个向量,所以点运算
y=sum(f)
5. 设f(x)=e-0.5xsin(x+pi/6),求s=(0到3pi的积分)f(s)dx6. 以以梯形法算积分:
a=0;b=3*pi;n=1000;h=(b-a)/n;x=a;s=0;
f0=exp(-0.5*x)*sin(x+pi/6);for i=1:n x=x+h;
f1=exp(-0.5*x)*sin(x+pi/6);s=s+(f0+f1)*h/2;f0=f1;end s
输出结果:
s =0.9008
快速算法(基于向量)
a=0;b=3*pi;n=1000;h=(b-a)/n;x=a:h:b;
f=exp(-0.5*x).*sin(x+pi/6);%f已经形成了⼀个向量;for i=1:n
s(i)=(f(i)+f(i+1))*h/2;end
s=sum(s)
因篇幅问题不能全部显示,请点此查看更多更全内容