? grid
实验3 MATLAB 编程介绍与循环结构
例
3-1:求n (n=100)个奇数的和:s=1+3+5+…+(2n -1).
clear;clc; %清除内存变量,清理命令窗口 n=100; %赋值给定奇数的个数
s=0; %设定存放和的变量s 并赋初值0
for i=1:n %定义循环变量i 从1到n ,以1为步长,即为奇数序号 s=s+(2*i-1); %先计算右端奇数并累加后再赋给左端的变量s fprintf('i=%.0f, s=%.0f\n ',i,s) %逐行显示出累加求和的过程 end %循环结构结束
例3-2:求正整数n 的阶乘:p=1×2 × 3 × … × n = n!,并求出n=20时的结果。 clear;clc; %清除内存变量,清理命令窗口 n=20; %赋值给定正整数
p=1; %设定存放阶乘的变量p 并赋初值1
for i=1:n %定义循环变量i 从1到n ,以1为步长,即连续正整数 p=p*i; %先计算右端乘积后再赋给左端的变量p fprintf('i=%.0f, p=%.0f\n ',i,p) %逐行显示出i! end %循环结构结束
例3-3:根据麦克劳林公式可以得到e ≈1+1+1/2!+1/3!+…+1/n!,试求e 的近似值。 clear;clc; %清除内存变量,清理命令窗口 n=10; %赋值给定正整数
p=1; %设定存放阶乘的变量p 并赋初值1
s=1; %设定存放累加和的变量s 并赋初值1
for i=1:n %定义循环变量i 从1到n ,以1为步长 p=p*i; %先计算右端乘积后再赋给左端的变量p ,此时p 为i 的阶乘
s=s+1/p; %先计算右端阶乘倒数的累加后再赋给左端的变量s fprintf('i=%.0f, s=%.8f\n ',i,s) %逐行显示出第i 次e 的近似值 end %循环结构结束
例3-4:对于数列{}
,2,1,=n n ,求其前n 项和不超过1000时的n 的值及和.
clear;clc; %清除内存变量,清理命令窗口 n=0; %设定正整数并赋初值0
s=0; %设定存放累加和的变量s 并赋初值0
while s<=1000 %用累加和s 与1000进行比较作为循环条件
n=n+1; %改变n 为连续正整数
s=s+sqrt(n); %先计算右端开方数的累加后再赋给左端的变量s
fprintf('n=%.0f, s=%.4f\n ',n,s) %逐行显示正整数及部分和
end %循环结构结束
例3-5:根据e ≈1+1+1/2!+1/3!+…+1/n! 求e 的近似值,要求精确到8
10-。
clear;clc; %清除内存变量,清理命令窗口
p=1; %设定存放阶乘的变量p 并赋初值1 s=1; %设定存放累加和的变量s 并赋初值1 r=1; %设定前后两次近似值的误差r 并赋初值1
k=0; %设定构造连续正整数的变量k 赋初值0又为循环次数