MATLAB语言编程介绍.ppt
MATLAB语言编程介绍,M-文件中输入、输出命令,直接赋值输入:提示对话输入(input命令)x=2;x=input(请输入参数 x=);a=1,2;3,4;a=input(请输入矩阵 a=);s=any string!;s=input(Please input s=);直接输出:格式控制输出(fprintf命令)x fprintf(x=%.0f,y=%.5fn,pi,pi);disp(a,b);fprintf(x=%5g,y=%10.5gn,N,pi);,M-文件中循环控制命令(for命令),格式:for i=n1:(step):n2 commands;end 作用:重复执行命令集commands.,例2:求奇数和:s=1+3+5+(2k-1)n=input(请输入 n=);s=0;for i=1:2:n s=s+i;fprintf(i=%.0f,s=%.0fn,i,s);end,例1:求和:s=1+2+n n=input(请输入 n=);s=0;for i=1:n s=s+i;fprintf(i=%.0f,s=%.0fn,i,s);end,例3:求阶乘:p=12 3 n=n!n=input(请输入 n=);p=1;for i=1:n p=p*i;fprintf(i=%.0f,p=%.0fn,i,p);end,例4:求e:e=1+1+1/2!+1/3!+1/n!n=input(请输入 n=);p=1;e=1;for i=1:n p=p*i;p1=1/p;e=e+p1;fprintf(i=%.0f,p=%.0f,e=%.8f n,i,p,e);end,例5:求pi:pi/4=1-1/3+1/5-1/7+1/9-1/11+n=input(请输入 n=);pi=0;k=-1;for i=1:2:n k=(-1)*k;pi=pi+k*1/i;fprintf(i=%.0f,pi=%.8f n,i,4*pi);end,M-文件中条件循环命令(while命令),格式:while(condition is true)commands;end 作用:重复执行命令集commands.,例6:求和:s=1+2+n3000 s=0;k=1;while s3000 s=s+k;fprintf(k=%.0f,s=%.0fn,k,s);k=k+1;end,例7:求e:e=1+1+1/2!+1/3!+(1/n!=1.0e-8 p=p*i;r=1/p;e=e+r;fprintf(i=%.0f,r=%.9f,e=%.9f n,i,r,e);i=i+1;end,M-文件中选择控制命令(if命令),单项选择控制格式:if(condition is true)commands;end 作用:若条件成立,则执行命令集 commands.否则,不执行。,例8:求n个实数中最大的数M.a=input(请输入数组 an=);m,n=size(a);M=a(1);for i=2:n if Ma(i)M=a(i);end fprintf(M=%.5f,a(%.0f)=%.5f n,M,i,a(i);end,M-文件中选择控制命令(if命令),多项选择控制格式:if(condition is true)commands;elseif(condition is true)commands;else commands;end 作用:若条件成立,则执行命令集 commands.否则,不执行。,例9:建立符号函数sign(x)x=input(x=);if x0 sn=1;elseif x=0 sn=0;else sn=-1;endfprintf(x=%.5f,sn=%.0fn,x,sn);,数值计算问题,问题1:求无理数的近似值 先求 的近似值,再设计通用程序.问题2:用两种方法求Pi的近似值,例10:用二分法求函数x2-2=0的正实根.,输入初值:,输出结果:STOP,No,No,No,Yes,Yes,Yes,例11:用切线法求函数x2-2=0的正实根.,例12:用泰勒公式求pi的近似值。,特点:收敛速度慢,循环次数多.,例13:用梯形求积公式求pi的近似值。,2)梯形公式,3)复化梯形公式,例14:用Simpson求积公式求pi的近似值。,1)辛普生公式,2)辛普生公式与梯形公式的关系,