数学实验3-matlab

合集下载

MATLAB数学实验

MATLAB数学实验

实验三 圆周率的计算学号: 姓名:XX一、 实验目的1. 本实验涉及概率论、定积分、三角函数等有关知识,要求掌握计算π的三种方法及其原理。

2. 学习和掌握数学软件MATLAB 的使用方法。

二、 实验内容圆周率是一个极其驰名的数。

从有文字记载的历史开始,这个数就引起了外行人和学者们的兴趣。

作为一个非常重要的常数,圆周率最早是出于解决有关圆的计算问题。

仅凭这一点,求出它的尽量准确的近似值,就是一个极其迫切的问题了。

事实也是如此,几千年来作为数学家们的奋斗目标,古今中外一代又一代数学家为此献出了自己的智慧和劳动。

回顾历史,人们对π的认识过程,反映了数学和计算技术发展情形的一个侧面。

π的研究,在一定程度上反映这个地区或时代的数学水平。

德国数学家康托说:“历史上一个国家所算的圆周率的准确程度,可以作为衡量这个国家当时数学发展水平的指标。

”直到19世纪初,求圆周率的值还是数学中的头号难题。

1. 圆周率的计算方法古人计算圆周率,一般是用割圆法。

即用圆的内接或外切多边形来逼近圆的周长。

Archomedes 用正96边形得到35位精度;刘徽用正3072边形得到5位精度;Ludolph V an Ceulen 用正2^62边形得到了35位精度。

这种基于几何的算法计算量大,速度慢,吃力不讨好。

随着数学的发展,数学家们在进行数学研究时有意无意得发现了许多计算圆周率的公式。

下面挑选一些经典的常用公式加以介绍。

除了这些经典公式外,还有很多其他公式和由这些经典公式衍生出来的公式,就不一一列举了。

1) Machin 公式2391a r c t a n451a r c t a n 16-=π ()121...753arctan 121753--++-+-=--n x x x x x x n n 这个公式由英国天文学教授John Machin 于1706年发现。

他利用这个公式计算到100位的圆周率。

Machin 公式每计算一项可以得到1.4位的十进制精度。

matlab实验三

matlab实验三
A’矩阵的转置是把矩阵的行换成同序数的 列,得到新矩阵。如果A是复矩阵,则运 算结果是共轭转置。 A.’也表示矩阵A的转置,当A为复矩阵时,不 求共轭。
1 + 2i 2 1 2 A= , B = 3 4 i 1
例3-9
求:A‘,A.',B’,B.’
19
矩阵函数
1、矩阵的共轭 MATLAB中求矩阵的共轭矩阵的函数是conj,其调用 格式为: B=conj(A) 求矩阵A的共轭矩阵B,复数矩阵的共轭与 复数的共轭类似,复数矩阵的共轭矩阵与复数矩阵的 实部相同,虚部相反。
5
方法二: 通过M文件创建矩阵
当矩阵的规模较大时,直接输入法就力不从心, 出现差错也不容易修改。因此可以使用M文件生成 矩阵。 方法:建立一个M文件,其内容是生成矩阵的命令, 在MATLAB的命令窗口中输入此文件名,即将矩阵 调入工作空间(写入内存)。
6
方法二: 通过M文件创建矩阵
例3-2 用建立M文件的方式生成矩阵 (1) 建立M文件mydata.m内容如下
注意: 注意:在A.\B的结果中,“Inf”表示无穷大,在MATLAB中,被零 除或浮点溢出都不按错误处理,只是给出警告信息,同时用“Inf” 标记。
16
4、 矩阵的幂运算:^ A^B A的B次方。 (1)A和B都是标量时,表示标量A的B次幂。 (2)A为矩阵,B为标量时要求A必须是方阵。
(3)当A为标量,B为矩阵时,要求B为方阵。
10
矩阵的算术运算
例3-4
1 2 3 A = 2 3 4 , 3 4 5 3 2 4 B = 2 5 3 2 3 1
求A+B,A-2
例3-5 两个矩阵如下所示,维数不同,求两者相 减的差。

MATLAB实验3

MATLAB实验3

实验三函数式M文件和MA TLAB绘图一、实验目的:1、掌握基本的绘图命令2、掌握各种图形注释方法3、掌握三维图形的绘制方法4、了解一些特殊图形的绘制5、了解图形的高级控制技巧二、相关知识1基本的绘图命令1)、常用绘图命令常用的统计图函数:在MA TLAB 7中,使用plot函数进行二维曲线图的绘制>> x=0:0.1:10;>> y1=sin(x);>> y2=cos(x-2.5);>> y3=sqrt(x);>> plot(x,y1,x,y2,x,y3)3)、极坐标图形的绘制MA TLAB提供了polar(x1,x2,s)函数来在极坐标下绘制图形:(参数1角度,参数2极半径,参数3颜色和线性)>> x= 0:0.01:10;>> y1=sin(x);>> y2 = cos(x-2.5);>> polar(y1,y2,'-r+')4)、多个图形的绘制方法subplot函数可以实现多个图形的绘制:>>x = 0:.1:20;>>subplot(2,2,1)>>plot(x,sin(x));>>subplot(2,2,2);>>plot(x,cos(x))5)、曲线的色彩、线型和数据点型基本的绘图命令都支持使用字符串来给不同的曲线定义不同的线型,颜色和数据点型。

plot(x,sin(x),'-rd')图形注释对图形进行注释的方式A 图形注释“工具栏。

B 图形调色板中的注释工具C insert 菜单中的“注释”命令D 直接使用注释命令Annotation 函数Xlabel ,ylabel ,zlabel 函数 Title 函数 Colorbar 函数 Legend 函数实验内容: 一、 基础练习1、跟我练输入x,y 的值,并将它们的值互换后输出 x=input('Input x please:\n');y=input('Input y please:\n'); echo on z=x; x=y; y=z; disp(x); disp(y);echo off2、练习请求键盘输入命令keyboard ,处理完毕后,键入return ,程序将继续运行 求一元二次方程ax2 +bx+c=0的根。

matlab-数学实验---迭代------蛛网图(免积分)

matlab-数学实验---迭代------蛛网图(免积分)

数学实验—实验报告(免积分)一、实验项目:Matlab 实验三—迭代 二、实验目的和要求a. 熟悉MATLAB 软件的用户环境,掌握其一般目的命令和MATLAB 数组操作与运算函数;b. 掌握MATLAB 软件的绘图命令,能够熟练应用循环和选择结构实现各种循环选择功能;c. 借助MATLAB 软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发现进而证实其中的规律。

三、实验内容问题一:将方程535210x x x +-+=改写成各种等价的形式进行迭代 观察迭代是否收敛,并给出解释。

问题二:迭代以下函数,分析其收敛性。

4f(x)=x -a使用线性连接图、蛛网图或费根鲍姆图对参数a 进行讨论和观察,会得到什么结论? 问题一: (1)画图 x1=-6:0.01:6; x2=-3:0.01:3; x3=-1:0.01:1;x4=-0.8:0.01:-0.75;y1=x1.^5 +5*x1.^3-2*x1+1; y2=x2.^5 +5*x2.^3-2*x2+1; y3=x3.^5 +5*x3.^3-2*x3+1; y4=x4.^5 +5*x4.^3-2*x4+1; subplot(2,2,1),plot(x1,y1) ,title('图 (1)') ,grid on, subplot(2,2,2),plot(x2,y2) ,title('图 (2)'),grid on, subplot(2,2,3),plot(x3,y3) ,title('图 (3)'),grid on, subplot(2,2,4),plot(x4,y4) ,title('图 (4)') ,grid on,-10-50510-1-0.500.514图 (1)-4-2024-400-200200400图 (2)-1-0.500.51-505图 (3)-0.8-0.78-0.76-0.74-0.72图 (4)有图可知x 的初值在(-0.78,0.76)之间 (2)构造迭代函数()x f x =53512x x x ++= 1()x f x =22215x x x x -+-= 2()x f x =24521x x x x -+-= 3()x f x =(3)迭代 设定初值0.78x =-函数1()n n x f x -=用MATLAB 编程:x(1)=-0.77;y(1)=-0.77;z(1)=-0.77; for i=2:20x(i)=(x(i-1)^5+5*x(i-1)^3+1)/2;y(i)=(-y(i-1)^5+2*y(i-1)-1)/(5*y(i-1)^2); z(i)=(-5*z(i-1)^3+2*z(i-1)-1)/(z(i-1)^4); endn=1:20subplot(221), plot(n,x), title('f(1)'); subplot(222), plot(n,y), title('f(2)'); subplot(223), plot(n,z), title('f(3)'); 结果显示:5101520-6-4-2249f(1)510152000.511.562f(2)5101520-4-2024f(3)如图显示,显然不收敛。

Matlab数学实验报告3

Matlab数学实验报告3
Optimization terminated: relative function value changing by less than OPTIONS.TolFun.
a= 311.9546 0.2798
z= Columns 1 through 8
- 6 -MATLAB 作业
3.9000 5.1385 6.7617 8.8828 11.6439 15.2202 19.8224 25.6956 Columns 9 through 16
表 3 美国人口统计数据 年(公元) 1790 1800 1810 1820 1830 1840 1850 人口(百万) 3.9 5.3 7.2 9.6 12.9 17.1 23.2 年(公元) 1860 1870 1880 1890 1900 1910 1920 人口(百万) 31.4 38.6 50.2 62.9 76.0 92.0 106.5 年(公元) 1930 1940 1950 1960 1970 1980 1990 人口(百万) 123.2 131.7 150.7 179.3 204.0 226.5 251.4 若用非线性回归模型
Optimization terminated: relative function value changing by less than OPTIONS.TolFun.
r=
0.0135
115823
z= 1.0e+005 * Columns 1 through 6 1.0165 1.0304 1.0444 1.0587 1.0731 1.0877 Columns 7 through 12 1.1026 1.1176 1.1328 1.1483 1.1639 1.1798 Columns 13 through 17 1.1958 1.2121 1.2287 1.2454 1.2624

Matlab实验三答案

Matlab实验三答案

Matlab实验三答案实验三 MATLAB语⾔的程序设计⼀、实验⽬的:1、熟悉MATLAB程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计⽅法3、函数⽂件的编写和设计4、了解和熟悉跨空间变量传递和赋值⼆、实验基本知识:1、程序流程控制语句for循环结构语法:for i=初值:增量:终值语句1……语句nend说明:1.i=初值:终值,则增量为1。

2.初值、增量、终值可正可负,可以是整数,也可以是⼩数,只须符合数学逻辑。

while 循环结构语法:while 逻辑表达式循环体语句end说明:1、whiIe结构依据逻辑表达式的值判断是否执⾏循环体语勾。

若表达式的值为真,执⾏循环体语句⼀次、在反复执⾏时,每次都要进⾏判断。

若表达式的值为假,则程序执⾏end之后的语句。

2、为了避免因逻辑上的失误,⽽陷⼊死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执⾏。

(执⾏循环体的次数不确定;每⼀次执⾏循环体后,⼀定会改变while 后⾯所跟关系式的值。

)3、while循环也可以嵌套、其结构如下:while逻辑表达式1循环体语句1while逻辑表达式2循环体语句2end循环体语句3endelse if 表达式2(可选)语句2else(可选)语句3endend说明:1.if结构是⼀个条件分⽀语句,若满⾜表达式的条件,则往下执⾏;若不满⾜,则跳出if结构。

2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。

3.注意:每⼀个if都对应⼀个end,即有⼏个if,记就应有⼏个end。

switch-case结构语法:switch表达式case常量表达式1语句组1case常量表达式2语句组2……otherwise语句组nend说明:1.switch后⾯的表达式可以是任何类型,如数字、字符串等。

2.当表达式的值与case后⾯常量表达式的值相等时,就执⾏这个case后⾯的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执⾏otherwise后的执⾏语句。

MATLAB数学实验三求积分实验报告

数学实验报告三:MATLAB 中一元函数积分的计算
1、积分有定积分和不定积分,运用函数int 可以求得符号表达式的积分.
int(f) 求函数f 对默认自由变量x 的不定积分
int(f,t) 求函数f 对符号变量t 的不定积分
int(f,a,b) 求函数f 对默认自由变量x 从a 到b 的定积分
int(f,t,a,b) 求函数f 对符号变量t 从a 到b 的定积分
2、积分应用——求面积
解方程 [x,y]=solve(‘f1=0’,‘f2=0’)
作图:ezplot(f,[x1,x2],[y1,y2]); hold on 在同一坐标系作图
写出积分表达式进行积分
3、清除变量clear 清屏clc 清除图像 clf
班级 姓名 学号 成绩
1、 求下列函数的积分
(1) ln x xdx ⎰ (2)2cos x xdx ⎰
(3)20sin d 2x x π⎰ (4)1
01x x e dx e +⎰
2、 求抛物线2x y =与直线20x y --=所围图形面积.
要求:(1)解方程,求交点
(2)作图:在同一坐标系作出这两个函数的图形
(3)写出积分表达式 进行积分计算。

数学软件MATLAB实验报告 实验三

实验三:数学软件MATLAB的文件设计实验目的与要求:掌握MATABLE的M文件设计的相关知识,包括变量、表达式等基本元素和流程控制、函数等语法结构。

熟练掌握M文件的类型、结构、帮助创建和编程技巧等内容。

实验内容:1、用条件控制语句和循环控制语句编写一个M文件,解决如下问题:将数组X=(2,4,5,1,-3,6,0,-2,-19,-11,1,8,8,9,7)中介于-10与10之间的元素放入数组Y,其他的放入数组Z。

代码:x=[2 4 5 1 -3 6 0 -2 -19 -11 1 8 8 9 7];n=numel(x);y=[];z=[];l=0;k=0;for i=1:nif x(i)>=-10&&x(i)<=10l=l+1;y(l)=x(i);elsek=k+1;z(k)=x(i);endendy=yz=z2、进行下述命令help elfunhelp specfunhelp elmat了解各函数的名称。

3、理解下面函数的功能,调用此函数并写出结果。

function[avg,med]=example3-4-2(u)%主函数%本函数用内部函数计算均值和中值N=length(u);avg=mean(u,n);med=median(u,n);function a=mean(v,n%)子函数%计算均值A=sum(v)/n;Function m=median(v,n)%子函数%计算中值w=sort(v);%排序if rem(n,2)==1%奇数mw((n+1)/2);elsem=(w(n/2)+w(n/2+1));end4、通过下例,理解匿名函数的定义格式,并运行之。

a=1.3;b=0.2;c=30;y@(x)a*x.^+b*x+c;fplot(y,[-25 25])function example3-5-1a(surface)Switch surfacecase’sphere’spherecase’cylinder’cylinderendshading interp在命令窗口调用example-5-1b.m函数在命令窗口键入下面的命令行example-5-1b(’sphere’)将生成单位球面键入example-5-1b(‘cylinder’)将生成单位柱面。

MATELAB与数学实验第三次作业

《数学实验》报告实验名称 matlab作业 3 学院专业班级姓名学号2011年 10月一、【实验目的】学习编辑程序来绘制几何立体图等.二、【实验任务】(一)P79 习题5绘制圆锥螺线的图像并加各种标注,圆锥螺线的参数方程为x=tcos(π/6)ty=tsin(π/6)t, (0<=t<=20π)z=2t绘制由函数x^2/9+y^2/16+z^2/4=1形成的立体图,并通过改变观测点获得该图形在各个坐标平面上的投影。

画三维曲面z=5-x^2-y^2(-2<=x,y<=2)与平面z=3的交线.(二)P79 习题7用mesh与surf命令绘制三维曲面z=x^2+3y^2的图像,并使用不同的着色效果及光照效果。

(三)P79习题8绘制由函数x^2/9+y^2/16+z^2/4=1形成的立体图,并通过改变观测点获得该图形在各个坐标平面上的投影。

(四)P79习题9画三维曲面z=5-x^2-y^2(-2<=x,y<=2)与平面z=3的交线.【实验程序】(一)t=0:pi/50:20*pi;x=t.*cos((pi/6)*t);y=t.*sin((pi/6)*t);z=2*t;plot3(x,y,z)title('ÇúÏß4x^2+4y^2=z^2')xlabel('txÖá'),ylabel('tyÖá'),zlabel('tzÖá')(二)t=-5:0.1:5;[x,y]=meshgrid(t);z=x.^2+3*y^2;%meshÃüÁîsubplot(121);mesh(x,y,z);title('meshÃüÁî');shading flat;light('position',[0,0,10])%surfÃüÁîsubplot(1,2,2);surf(x,y,z);title('surfÃüÁî');shading faceted;light('position',[0,2,10])(三)a=3;b=4;c=2;[X,Y,Z]=ellipsoid(0,0,0,a,b,c,400);subplot(221),mesh(X,Y,Z)view(3)subplot(222),mesh(X,Y,Z)view(30,30)subplot(223),mesh(X,Y,Z)view(30,0)subplot(224),mesh(X,Y,Z)view(-120,30)axis equalaxis image(四)t=-2:0.1:2;[x,y]=meshgrid(t);z1=5-x.^2-y.^2;subplot(131)mesh(x,y,z1),title('z=5-x^2-y^2')z2=3*ones(size(x));subplot(132)mesh(x,y,z2),title('z=3')r0=abs(z1-z2)<=1;zz=r0.*z2;yy=r0.*y;xx=r0.*x;subplot(133),plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'x')三、【实验结果】(一)(二)(三)(四)【实验总结】学会使用关键字来绘制函数图象,包括加各种标注,画圆锥螺线,使用着色效果、光照效果,画椭球,并改变观测点获得不同坐标平面的投影,画曲面与平面的交线等。

实验三 MATLAB绘图(含实验报告)

实验三 MATLAB 绘图一、实验目的1.掌握二维图形的绘制。

2.掌握图形的标注3.了解三维曲线和曲面图形的绘制。

二、实验的设备及条件计算机一台(带有以上的软件环境)。

设计提示1.Matlab 允许在一个图形中画多条曲线:plot(x1,y1,x2,y2,……)指令绘制y 1 = f 1(x 1), y 2 = f 2 (x 2 )等多条曲线。

Matlab 自动给这些曲线以不同颜色。

标注可用text 函数。

2.绘图时可以考虑极坐标和直角坐标的转换。

3.三维曲线绘图函数为plot3,注意参考帮助中的示例。

三、实验内容1.生成1×10 维的随机数向量a ,分别用红、黄、蓝、绿色绘出其连线图、杆图、阶梯图和条形图,并分别标出标题“连线图”、“杆图”、“阶梯图”、“条形图”。

2、绘制函数曲线,要求写出程序代码。

(1) 在区间[0:2π]均匀的取50个点,构成向量t(2) 在同一窗口绘制曲线y1=sin(2*; y2=3cos(t+;要求y1曲线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号。

(3) 分别在靠近相应的曲线处标注其函数表达式。

3.将图形窗口分成两个绘图区域,分别绘制出函数:⎩⎨⎧+-=+=1352221x x y x y 在[0,3]区间上的曲线,并利用axis 调整轴刻度纵坐标刻度,使1y 在[0,12]区间上,2y 在[-2,]区间上。

4.用mesh 或surf 函数,绘制下面方程所表示的三维空间曲面,x 和y 的取值范围设为[-3,3]。

101022y x z +-=思考题:1. 编写一个mcircle(r)函数,调用该函数时,根据给定的半径r ,以原点为圆心,画一个如图所示的红色空心圆。

(图例半径r=5);左图参考polar函数的用法,右图绘制圆形的参数方程为x=sin (t ),y=cos (t )。

其中,t 的区间为0~2*pi ,步长为。

2.(1)绘一个圆柱螺旋线(形似弹簧)图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB程序: k=0; A=[0,0]; %导弹初始位置 B B=[0,100]; %飞机初始位置 v=1; dt=1; %离散时间改变量 d=100; %相距距离 while d>0.5 A plot(A(1),A(2),‟r‟); %画导弹位置 hold on plot(B(1),B(2),„b*‟); %画飞机位置 pause(0.2); k=k+1; B=B+[v*dt,0]; %飞机移动位置 e=B-A; %导弹指向飞机向量 d=norm(e); e0=e/d; %取向量方向(单位化) A=A+2.0*v*dt*e0; %导弹追击位置
直接输出: x disp([a,b]);
提示对话输入(input命令) x=input('请输入参数 x='); a=input('请输入矩阵 a='); s=input('Please input s=');
格式控制输出(fprintf命令) fprintf('x=%.0f, y=%.5f\n',pi,pi); fprintf('x=%5.0f, y=%10.5f\n',pi,pi);
数学实验
理学院数学学科 李换琴 hqlee@
MATLAB语言编程介绍
MATLAB中各种命令可以完成许多单一的任务,对 于某些较为复杂的问题,仅靠现有的命令或函数 来解决,往往是难以达到目的 。为此,要运用 MATLAB编程语言编制程序,形成M-文件。 程序是使计算机完成各项运算的命令集,运行一 个编制好的程序,计算机会从第一条命令行开始 ,一行接一行地执行相应的命令,直到终止。 程序编写调试完成后,需要存盘,形成永久性文 件,可以随时对它进行调用或修改。 文件名以字母开头,但不能用专用变量名,如 pi,ans,eps等。
function recursion(alpha,lambda,b,jd,L,limit) c=b+L*exp(i*(jd+alpha)); d=b+L*exp(i*(jd-alpha)); plot([c,b,d]) if(L>limit) jd=jd+alpha; L=L/lambda; recursion(alpha,lambda,c,jd,L,limit); jd=jd-2*alpha; recursion(alpha,lambda,d,jd,L,limit); jd=jd+alpha; L=L/lambda; end
例2:求阶乘:p=1×2 × 3 × … × n=n! n=input('请输入 n= '); p=1; for i=1:n p=p*i; fprintf(' i=%.0f, p=%.0f\n ',i,p); end aa2.m

例3:求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
aa3.m
例4
设A是一个3 5矩阵, 1 A(i, j) , 试编程 i j 写出矩阵A.
m=3; n=5; for i = 1:m for j = 1:n H(i,j) = 1/(i+j); end end H
例5 数列极限 MATLAB程序: hold on % 图形迭加 axis([0,100,2,3]); % 设置坐标轴 grid % 加坐标网格 for n=1:90 % 循环操作 an=(1+1/n)^n; % 计算数列值 plot(n,an,'r*'); % 画出坐标点 pause(0.05); % 暂停0.05秒 fprintf('n=%d an=%.4f\n',n,an); % 显示坐标位置 end
主程序: tree1(22.5,0.03)
function tree1(alpha,limit) a=0; L=1;lambda=1.5; alpha=alpha/180*pi; jd=pi/2; b=L*i; plot([a,b]) hold on recursion(alpha,lambda,b,jd,L,limit);
x=input(‘成绩=’) switch fix(x/10) case {10,9} grade='A' case 8 grade='B' case 7 grade='C' otherwise grade='D' end
Break 语句
Break语句的格式为: break; 用于立即跳出包含该 break语句的各种循 环语句while和for 在循环语句中使用的 break语句一般应和if 语句配合使用 例如: while 条件1 …….. if 条件2 break; end ……… end
1 n lim (1 ) 动态显示 n n
例6 导弹打击过程仿真
设 A(0,0) 为一导弹发射点,发现位于 B(0,100) 处 一架敌机沿水平方向逃离,随即发射一枚导弹 予以打击,现已知导弹时刻对准敌机,且速率 为飞机速率的两倍(设飞机速度为1)。 试编程模拟导弹打击敌机 B 的动态过程,并实时给出 飞机和导弹的位置坐标。 若要在敌机飞行距离不超 过60时(我方空域)将其 A 击落,导弹的速率应提高 到多少?
No
| b a | er ?
Yes
输出:迭代次数k,方程的近似根c.
二分法求根程序:
a=1;b=2; er=1.0e-8; f=inline('x.^2-2'); k=1; c=(a+b)/2; while abs(b-a)>er if abs(f(c))==0 fprintf('k=%.0f,r=%.8f\n',k,r); break; end
Return语句
Return语句终止当前命令的执行,并且返回 到调用函数或者等待键盘输入指令。
用M-文件定义函数
格式 function [y1,y2]=funname(x,y,a,n) 其中: function 为关键字; [y1,y2,…]为输出列表; funname为自定义的函数名; (x,y,a,n,…)为函数参数,用来传递相 关数值. 存盘时,要求用funname作为函数名.
else a c;
2) if b a er,stop, 输出根。 否则goto 1).
输入初值: f ( x ), a , b, 误差限er
c (a b) / 2
f (c ) 0 ?
No Yes
ac
No
f (a ) f (c ) 0 ?
Yes
bc
c (a b) / 2
例15 编写一个function 函数,调用该函数 ,可以将考试分数 值化为“A” ”B” “C” ”D”等级值.
function f=grad(x) switch fix(x/10) case {10,9} grade='A' case 8 grade='B' case 7 grade='C' otherwise grade='D' end
function [p,q]=fun1(a,b,n) p=(a+b).^n; q=(a-b).^n; fun1.m
例14编制程序,从键盘输入a,b,n,计算(a+b)^n,(ab)^n aa8.m a=input(„a=„);b=input(„b=„);n=input(„n=„); [p,q]=fun1(a,b,n); fprintf(„(a+b)^n=%.4f,(a-b)^n=%.4f\n‟,p,q)
M-文件中选择控制命令(if命令)
单项选择控制 格式: if (condition is true) commands; end 作用:若条件成立,则执行命令集 commands. 否则,不执行。

例9:求n个实数中最大的数M.
a=input('请输入数组 a[n]= '); [m,n]=size(a); M=a(1); for i=2:n if M<a(i) M=a(i); end end
fprintf(' M=%.5f\n ',M);
aa6.m
M-文件中选择控制命令(if命令)
多项选择控制 格式: if (condition is true) commands; elseif (condition is true) commands; else commands; end 作用:若条件成立,则执行命令集 commands. 否则,不执行。
例15:用二分法求函数x^2-2=0的正实根.
f ( x ) x 2 2, [a, b] [1,2], f (a ) f (b) 0
1)c (a b) / 2 :
if f (c ) 0(或 | f (c ) | r ), g c;
elseif f (c ) f (a ) 0 b c;
程序结构
程序一般包含: 数据输入 a=input('请输入数组 a[n]= '); [m,n]=size(a); M=a(1); for i=2:n if M<a(i) M=a(i); end end fprintf(' M=%.5f\n ',M);
数据处理
结果输出
M-文件中输入、输出命令
直接赋值输入: x=2; a=[1,2;3,4]; s= 'any string!';
相关文档
最新文档