数学实验第三次课
《数学实验》课程教学大纲

3.线性方程组 的求解
4.随机数的生产和模拟
5.实验实例:循环比赛的名次和按年龄分组的种最优化问题实验
重点:学会一些常用函数的调用格式并学会自己动手编写函数
3. 《高等应用数学问题的MATLAB求解》.薛定宇,陈阳泉著.清华大学出版社,2004
4. 《MATLAB数学实验》.胡良剑,孙晓君编著.高等教育出版社,2006.6
执笔人:邓化宇
审核人:
院(系)负责人:
《数学实验》课程教学大纲
MathematicalExperiment
适用:本科四年制信息与计算科学专业(40学时左右)
一、课程的目的及任务
开设《数学实验》课的目的是在两周的时间里为学生介绍如何使用计算机的语言和方法去处理一些经典的数学问题,并提供一些实例以启发学生自己动手练习。进一步的提高要靠学生的兴趣和努力。
教学要点:
1.一元非线性方程数值求解
2.非线性方程组数值求解
3.方程符号求解
4.一元函数和多元函数无约束优化求解
5.线性规划
6.实验实例:购房贷款的利率和最短路问题
第五章 微分方程问题的计算机求解
重点:学会一些常用函数的调用格式并学会自己动手编写函数
教学要点:
1.常系数微分方程的计算机求解析解
2.微分方程问题的数值解法
二、课程的特点、要求及本课程与其它课程的联系
数学是科学技术人才科学素质的的重要组成部分,随着高科技与与计算技术的发展和普及,数学的重要性日益突出。“高技术本质上是一种数学技术”这一观点已越来越多地为人们所认同。学习计算机使用和开发是启迪学生创新意识和创新思维、锻炼创新能力、培养高层次人才的一条重要途径;也是激发学习欲望、培养主动探索、努力进取学风和团结协作精神的有力措施。
数学实验课习题总结(带答案)

第二次实验内容
1、求下列方程的根 1)ex-3x=0, 在[-1,1]上的近似解,使用 fzero,fsolve 分 别进行求解 2 )判定方程 x7+2x5+3x3+5x+7=0 有几个实根,并使用 roots,fzero,fsolve 分别进行求解,也使用牛顿法编程计算 问题的近似解。 2、求解线性方程组:
答案:
1. 程序设计: (1) fzero('exp(x)-3*x',[-1,1]) fsolve('exp(x)-3*x',[-1,1]) (2)函数 fun1: function ff=fun1(x) ff=(x^7+2*x^5+3*x^3+5*x+7)/(7*x^6+10*x^4+9*x^2+5); 程序: x=-1:0.01:1; y=x.^7+2*x.^5+3*x.^3+5*x+7; plot(x,y,'r-') gtext('零点') grid on 数 p=[1,0,2,0,3,0,5,7]; roots(p) fzero('x^7+2*x^5+3*x^3+5*x+7',0) fsolve('x^7+2*x^5+3*x^3+5*x+7',0) x0=1; x1=x0-fun1(x0); while abs(x1-x0)>=0.0001 x0=x1; x1=x0-fun1(x0); end x0 结果: (1) ans = 0.6191 0.6191 (2)有 1 个实根,如右图 ans = 1.0633 + 0.8552i 1.0633 - 0.8552i 0.1980 + 1.4799i 0.1980 - 1.4799i -0.8442 + 1.1442i -0.8442 - 1.1442i -0.8341 ans = -0.8341 %画图法判断实根个
《数学实验》课程介绍

《数学实验》课程简介数学实验是以数值计算、优化方法、数理统计、数学建模以及最基本的数学软件(如MATLAB)为主要内容,在基本数学知识和数学的应用之间架起一座桥梁。
通过“引例→知识→软件→范例→实验(实践)”的教学过程,以实际问题为载体,把数学建模、数学知识、数学软件和计算机应用有机地结合,强调学生的主体地位,在教师的引导下,学习查阅文献资料、用学到的数学知识和计算机技术,借助适当的数学软件,分析、解决一些经过简化的实际问题,并撰写实验报告或论文,经受全方位的锻炼。
它使学生能够体验利用计算机及数学软件解决实际问题的全过程。
《数学实验》教学章节第1章如何用数学解决实际问题§1.1 什么是数学模型§1.2 数学模型的分类§1.3 数学建模的基本方法和步骤第2章飞机如何定价—方程求解§2.1竞争中的飞机制造业§2.2 飞机的定价策略§2.3方程数值求解方法§2.4飞机的最优价格§2.5操练 油价如何影响船速第3章收敛与混沌—迭代§3.1不动点与迭代§3.2图示迭代数列§3.3分歧与混沌§3.4二元函数迭代§3.5操练—迭代与分形第4章种群数量的状态转移模型—微分方程§4.1 人口问题§4.2 微分方程的数值解法§4.3 微分方程图解法§4.4 MATLAB软件求解§4.5 微分方程的应用§4.6操练—盐水的混合问题第5章水塔用水量的估计—插值§5.1 水塔用水量问题§5.2 插值算法§5.3 水塔用水量的计算§5.4 二维插值的应用§5.6操练—确定地球与金星之间的距离第6章医用薄膜渗透率的确定—数据拟合§6.1 医用薄膜的渗透率§6.2 确定医用薄膜渗透率的数学模型§6.3 一元最小二乘法简介§6.4 用曲线拟合方法确定医用薄膜渗透率§6.5 简介曲面拟合§6.6 操练−Malthus人口指数增长模型第7章怎样让医院的服务工作做得更好—回归分析§7.1 一份有趣的社会调查§7.2 如何定量分析病人与医院之间的关系?§7.3 回归分析§7.4 病人对医院的评价如何?§7.5简介非线性回归分析§7.6操练—某类员工的年薪与哪些因素有关?第8章海港系统卸载货物的计算机模拟§8.1 港海系统的卸载货物问题§8.2 海港系统的卸载货物过程分析§8.3 蒙特卡洛模拟思想§8.4 海港系统卸载货物的模拟§8.5 连续系统的计算机模拟§8.6 操练−怎样才能使设备的使用寿命延长?第9章如何在简约的世界里收益最大—线性规划§9.1 华尔街公司的投资选择§9.2 组合投资决策§9.3 线性规划—在平直世界中获取最大利益§9.4 用线性规划软件求解组合投资问题§9.5 如果决策变量只能取整数怎么办?§9.6 操练−动物饲料配置的讲究第10章世界本复杂,如何做得最好—非线性规划§10.1 公交公司的调控策略§10.2 营业额最大化§10.3 非线性规划—在复杂的世界里做得最好§10.4 用非线性规划软件求解最大营业额问题§10.5 山有多少峰,哪里是最高峰?§10.6 操练−“一张白纸好画最美的图”第11章如何表示二元关系?—图的模型及矩阵表示§11.1 如何排课使占用的时间段数最少?§11.2 一种直观形象的表示工具——图§11.3 图的矩阵表示方法§11.4 操练−城市交通的可达性度量问题第12章如何连接通讯站使费用最少?—最小生成树.§12.1 美国AT&T的网络设计算法攻关§12.2 最小生成树—最经济的连接方式§12.3 最小生成树算法§12.4 用最小生成树解决通讯网络的优化设计问题§12.5 怎样使线网费用进一步降低?§12.6 操练−如何设计海底管道网第13章如何实现汽车的自主导航—最短路径§13.1 卫星定位汽车自动导航系统§13.2 汽车导航系统如何为你选择最佳路线§13.3 最短路径问题和算法的类型§13.4 最短路径算法§13.5 Dijkstra算法的MATLAB程序§13.6 从天安门到天坛的最短行车路线§13.7 如何快速求任意两顶点之间的最短路径?§13.8 操练−新建公路的线路设计及其合理性论证附录A:MATLAB软件简介§A.1 概述§A.2 MATLAB环境§A.3 数值运算§A.4 图形功能§A.5 符号运算§A.6 程序设计——M文件的编写§A.7 操练。
2017工程数学实验C--课程设计作品(3)

2017工程数学实验C--课程设计作品(3)成绩:工程数学实验报告2016-2017-2学期学部:班级:姓名:学号:电话:Ⅰ 展示图形之美篇要求:涉及到的文字用中文宋体五号字,Mathematica 程序中的字体用Times New Roamn 。
【数学实验一】题目:利用Mathematica 制作如下图形(1)⎩⎨⎧==t k y t k x 2sin sin ,]2,0[π∈t ,其中k 的取值为自己学号的后三位。
(2))20,0(cos sin sin cos sin ππ≤≤≤≤⎪⎩⎪⎨⎧===v u u z v u y kv u x ,其中k 的取值为自己学号的后三位。
Mathematica 程序:(1) ParametricPlot[{622Sin[t],622Sin[2*t]},{t,0,2Pi}](2) x[u_,v_]:=Sin[u]Cos[622*v];y[u_,v_]:=Sin[u]Sin[v];z[u_,v_]:=Cos[u];ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,0,Pi},{v,0,2Pi}]运行结果:Mathematica程序:a=2;f=(a+Cos[u/2]Sin[t]-Sin[u/2]Sin[2t])Cos[u];g=(a+Cos[u/2]Sin[t]-Sin[u/2]Sin[2t])Sin[u];h=Sin[u/2]Sin[t]+Cos[u/2]Sin[2t]; ParametricPlot3D[{f,g,h},{t,0,2Pi},{u,0,2Pi},Boxed->Fal se,Axes->False,PlotPoints->30]运行结果:Mathematica程序:Plot3D[Sin[2x-y],{x,-5,5},{y,-6,6},PlotStyle->Thickness[0.5]]运行结果:Mathematica程序:ParametricPlot3D[{r,Exp[-r^2Cos[4r]^2]*Cos[t],Exp[-r ^2Cos[4r]^2]Sin[t]},{r,-1.2,1.2},{t,0,2Pi}]运行结果:Mathematica程序:f[x_,y_]=x^2+y^2;g[x_,y_]=16-(x^2+y^2);g1=Plot3D[f[x,y],{x,-3,3},{y,-3,3}];g2=Plot3D[g[x,y],{x,-3,3},{y,-3,3}];Show[g1,g2,BoxRatios->{1,1,1}]运行结果:Mathematica程序:x[u_,v_]=Sin[u]Cos[v];y[u_,v_]=Sin[u]Sin[v];z[u_,v_]=v/4;ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,0,2Pi},{v,0,2P i},Boxed->False,BoxRatios->{1,1,1}]运行结果:Ⅱ演算微积分之捷篇要求:涉及到的文字用中文宋体五号字;用word 中的公式编辑器输入涉及到的数学公式;Mathematica 程序中的字体用Times New Roamn 。
数学实验课程全部实验答案

主要涉及的内容有:最基本的矩阵运算(填空),线性方程组(左乘右乘问题)、积分函数、符号变量定义及结果输出形式、多项式回归函数输出结果分析、线性回归函数输出结果分析、多项式的线性运算等相关内容。
实验一:(1)用起泡法对10个数由小到大排序. 即将相邻两个数比较,将小的调到前头. function bubble_sortA=[10 5 64 8 464 35 14 666 57 784]; l=length(A); for i=1:l-1 for j=i+1:l if A(i)>A(j) t=A(i); A(i)=A(j); A(j)=t; end end end B=A实验结果: >> bubble_sort B =5 8 10 14 35 57 64 464 666 784 (2)有一个4*5矩阵,编程求出其最大值及其所处的位置. function findmax(A) a=max(max(A)) [x,y]=find(A==a) 实验结果:>> findmax([54 8 64 999;5496 88 97 6;554 686 5666 655;878 5 87 5454;588 544 5466 3364]) a =5666 x = 3 y = 3 (3)编程求∑=201!n nfunction f=fun3(n) s=1;while n<=20 s=s*n n=n+1; end>> f=fun3(1) f =2.4329e+018(4)有一函数y xy x y x f 2sin ),(2++=,写一程序,输入自变量的值,输出函数值. function f=fun4(x,y) f=x^2+sin(x*y)+2*y end 实验结果: >> f=fun4(2,3) f = 9.7206 f = 9.7206 实验二:1. 绘制如下几种数学曲线(并调制a,b,c,观察图形的变化)(1) 笛卡尔曲线213t atx +=,2213t at y +=(axy y x 333=+) >> syms x y>> a=[1 2 3 4];>> f1=x^3+y^3-3*a(1)*x*y; >> f2=x^3+y^3-3*a(2)*x*y; >> f3=x^3+y^3-3*a(3)*x*y; >> f4=x^3+y^3-3*a(4)*x*y;>> subplot(2,2,1); ezplot(f1) >> subplot(2,2,2);ezplot(f2) >> subplot(2,2,3);ezplot(f3) >> subplot(2,2,4);ezplot(f4)(2) 蔓叶线221t at x +=,231t at y +=(x a x y -=32)>> a=[1 2 3 4];>> f1=y^2-(x^3)/(a(1)-x); >> f2=y^2-(x^3)/(a(2)-x); >> f3=y^2-(x^3)/(a(3)-x); >> f4=y^2-(x^3)/(a(4)-x);>> subplot(2,2,1); ezplot(f1) >> subplot(2,2,2); ezplot(f2) >> subplot(2,2,3);ezplot(f3) >> subplot(2,2,4);ezplot(f4)(3) 星形线t a x 3cos =,t a y 3sin =(323232a y x =+) >> t=0:0.1:2*pi; >> a=[1 2 3 4];>> x1=a(1)*(cos(t).^3); >> y1=a(1)*(sin(t).^3); >> subplot(2,2,1); >> plot(x1,y1)>> x2=a(2)*(cos(t).^3); >> y2=a(2)*(sin(t).^3);>> subplot(2,2,2);plot(x2,y2) >> x3=a(3)*(cos(t).^3); >> y3=a(3)*(sin(t).^3);>> subplot(2,2,3);plot(x3,y3) >> x4=a(4)*(cos(t).^3); >> y4=a(4)*(sin(t).^3);>> subplot(2,2,4);plot(x4,y4)(4) 心形线)cos 1(θ+=a r >> a=[1 2 3 4];>> theta=0:0.1:2*pi;>> r1=a(1)*(1+cos(theta)); >> r2=a(2)*(1+cos(theta));>> r3=a(3)*(1+cos(theta)); >> r4=a(4)*(1+cos(theta));>> subplot(2,2,1);polar(r1,theta) >> subplot(2,2,2);polar(r2,theta) >> subplot(2,2,3);polar(r3,theta) >> subplot(2,2,4);polar(r4,theta)(5) 圆的渐开线)cos (sin ),sin (cos t t t a y t t t a x -=-= >> syms x y >> a=[1 2 3 4];>> x1=a(1).*(cos(t)-t.*sin(t)); >> x2=a(2).*(cos(t)-t.*sin(t)); >> x3=a(3).*(cos(t)-t.*sin(t)); >> x4=a(4).*(cos(t)-t.*sin(t)); >> y1=a(1).*(sin(t)-t.*cos(t)); >> y2=a(2).*(sin(t)-t.*cos(t)); >> y3=a(3).*(sin(t)-t.*cos(t)); >> y4=a(4).*(sin(t)-t.*cos(t)); >> subplot(2,2,1);plot(x1,y1) >> subplot(2,2,2);plot(x2,y2) >> subplot(2,2,3);plot(x3,y3) >> subplot(2,2,4);plot(x4,y4)2.(2)绘制球面4222=++z y x 与柱面1,1,1222222=+=+=+z y z x y x 的图像。
《数学实验》课程标准

《数学实验》课程标准课程名称:数学实验课程类型:B类课程编码:适用专业及层次:理工科专业、专科层次课程总学时:32学时,其中理论14 学时,实践18 学时课程总学分:2一、课程的性质、目的与任务1.本课程的性质:专业选修课2.课程目的与任务:数学实验是以实际问题为载体,把数学建模、数学知识、数学软件和计算机应用有机地结合,容知识性、启发性、实用性和实践性于一体,强调学生的主体地位,在教师的引导下,用学到的数学知识和计算机技术,借助适当的数学软件,分析、解决一些经过简化的实际问题。
该课程的引入,是数学教学体系、内容和方法改革的一项有益的尝试。
数学实验课程的目的是使学生掌握数学实验的基本思想和方法。
从实际问题出发,借助计算机,通过学生亲自设计和动手,体验解决问题的全过程,从实验中去探索、学习和发现数学规律,充分调动学生学习的主动性。
培养学生的创新意识,运用所学知识,建立数学模型,使用计算机并利用数学软件解决实际问题的能力,最终达到提高学生数学素质和综合能力的目的。
3.课程与其它课程的联系:在《高等数学》和《计算机基础》之后开设本课程为宜。
在掌握了数学实验方法和matlab工具软件后,处理图形和建模等问题就得心应手了。
由于matlab配备了几乎囊括所有应用数学学科的“工具箱”,可以利用其强大的运算、图形处理等功能来解决相关应用数学学科领域的复杂问题。
所以说《数学实验》是应用数学课程的基础课。
在计算机日益发展和普及的今天,matlab软件应成为大学生所必备的基础理论知识和重要的工具。
二、教学内容、教学要求及教学重难点第一章 MATLAB基本操作一、学习目的要求本章介绍MATLAB的操作与应用。
要求学生了解MATLAB软件的基本操作,熟悉MATLAB 的命令窗口,常用菜单,桌面及其他窗口。
掌握MATLAB的基本语句结构、简单矩阵的输入及矩阵基本运算符。
会使用帮助信息。
二、主要教学内容1、MATLAB的启动与退出常用启动方法,常用退出方法2、MATLAB桌面简介菜单栏,工具栏,命令编辑区3、MATLAB的基本语句结构及简单矩阵的输入MATLAB中基本代数运算符,MATLAB中数组、矩阵基本运算符,MATLAB变量,数据的输出格式,MATLAB命令窗口的部分通用命令,内存变量的管理,简单矩阵的输入4、MATLAB的帮助系统重难点:MATLAB的基本语句结构及矩阵的输入第二章 MATLAB的数值计算功能一、学习目的要求本章介绍MATLAB的数值计算功能。
以数学实验促概念理解——《角的初步认识》教学设计(一)

小学教学计·数学2022/04【教学内容】苏教版二年级下册第84、85页。
【教学过程】●实验一:建立角的概念。
1.激活经验。
师:两位同学正在做手工,他们已经做成了什么?师:为什么叫五角星和三角形?大家提到了角,这就是今天要研究的内容———角的初步认识。
2.实验示范。
师:什么是角呢?来进行今天师:请一组同桌来示范一下。
生1:来看看材料袋里有什么?生2:第一个要求是找角,看,我找到的角就在这里。
生1:我也来再框一个角。
生2:我们再来摸一摸角吧。
生1:(边摸边说)这里是尖尖的,两边是直直的。
生2:是的,这个角也是这样。
生1:那我们把“角”描下来吧。
生2:我先把刚才摸的尖尖的点画出来。
再描两条直直的线,这个角就描好了。
【设计意图:一个有效的数学实验应该具备以下几点:1.明确的实验目标;2.相对规范的实验步骤;3.带有思考的具身参与。
这个实验的内容比较丰富,包含了找一找、摸一摸、描一描三个环节,因此示范很重要。
实验示范也有两个目的:一是如何找一找、摸一摸、描一描。
找是为了让学生的活动聚焦于角;摸是要让学生切身感知角的特征,如前文所述,由于学生会误以为角的顶点就是角,所以实验用“框”的办法让学生“看”到角的全貌,再通过“摸”引导学生感受角尖尖的点以及两条直直的边;而“描”则是将实物第一次抽象出角的过程,让学生对角的认识从形象逐步到抽象。
有了这些实验示范,学生才能进行有效的实验活动,且每一个实验活动都能够指向角概念的感知。
二是在实验中如何合作,实验者如何清楚地表达自己的感受,而实验伙伴如何倾听,双方如何相互启发学习等,这样才能提高合作的效率,最终充分地、高效地完成数学实验。
】3.展开实验。
(学生实验,教师巡视指导,实验结束后请学生汇报实验成果)师:我们得到了这么多角,它们开口的方向不同,形状也不同,却都是角,它们有什么共同点吗?生:它们都有一个尖尖的点。
生:它们还有两条直直的边。
生:那两条边正好靠到这一个点上,组成了一个角。
数学实验课的教学过程

数学实验课的教学过程
数学实验课是一门重要的实践性学科,它为学习者提供了实现理论数学认识和技能发展的综合机会。
这门课的教学过程和普通的理论数学不同,有着其独特的特点,给了学生不同的收获。
传统的数学实验教学过程包括四个基本阶段:认知导入、概念应用、过程建构和综合评价。
在第一个阶段,教师通过讲解和交流来引导学习者了解数学实验的目的和重要性,并了解和掌握必要的概念和定义。
在第二个阶段,学习者利用自身能力开展论证,用不同概念去应用或抽象,探讨对问题的不同解决方案。
然后,教师在第三个阶段引导学习者进行课堂实验,实践解决方案带来的扎实的理论和实践结合的体验。
最后,学习者总结形成综合结论,并在此基础上进行调整和完善,同时也可以引导学生思考周边的与数学实验有关的问题。
促进学生深度学习的关键是开放式的问题设计和探究,这包括批判性思考、实验设计、实验数据和实验结果的识别、结果分析和判断。
此外,重视创新性、教师思考和学习者教育,让学生把知识灵活地运用到实践中去,是让学生充分发挥的有效办法。
数学实验课的教学过程不仅能丰富和提高学习者的学习效果,而且能够让学习者更积极和更加高效地接受理论数学知识,加强与实践联系,真正达到以学生为中心的教育效果,满足学生在学习、思考和实践等方面的需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数文件:
function
% 注解说明
返回变量列表=函数名(输入变量列表)
输入变量检测,输出变量检测
函数体 函数文件的第一行必须按特定格式书写 . 函数内所有变量是局部变量,既不影响其他M文件 中同名变量,也不被其他M文件中同名变量所影响 . 函数文件中的输出变量要等于某个确定的表达式 .
过程:①在编辑窗口中编写; ②保存并对文件命名; ③命令窗口键入文件名运行; ④观察运行结果; · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 数学实验
如何运行Matlab程序文件?
( 1)命令行输入程序文件名(不包含扩展名) ; ( 2)在程序文件中调用 ;
数学实验
g = inline('sin(2*pi*f + theta)') g= Inline function: g(f,theta) = sin(2*pi*f + theta)
g = inline('sin(2*pi*f + theta)', 'f', 'theta') g= Inline function: g(f,theta) = sin(2*pi*f + theta) g = inline('x^P1', 1) g= Inline function: g(x,P1) = x^P1
数学实验
1.5.2 程序文件(M文件)
程序文件格式:纯文本文件,可用Matlab程序编辑 器、记事本、写字板等软件编辑。
程序文件类型:1. 脚本文件;2.函数文件
数学实验
脚本文件: 由程序语句组成(非函数文件)
(1) 在 Matlab中既不接受输入参数,也不返回参数的 M文件称为脚本,这类文件中没有函数申明,它是一 些 Matlab函数和命令的组合。
数学实验
谢 谢!
数学实验
数学实验
1.4.4 其它控制函数
( 1) error(‘message’)
显示文本 message,并中断程序执行. if 条件表达式, error(‘message’), end
( 2) warning(‘message’)
显示警告信息 .
数学实验
1.5 程序文件(M文件)与函数编程
1.5.1 基础
原因:myprg.m不在 Matlab的搜索路径中。 可通过path命令查看搜索路径。
解决办法:将文件夹“ E:\”添加到Matlab搜索路径中。
数学实验
Matlab搜索路径的设置:
( 1)运行菜单条“ Set Path”,通过“Set Path”对 话框设置; ( 2)命令行方式:
addpath(’实际文件夹’)
数学实验
1.5.5 函数编程部分高级用法
(一)nargin和nargout
nargin返回函数被调用时输入变量的个数。 nargout返回当函数被调用时输出变量的个数。
数学实验
示例: function [r,v]=myfun(x,y) if nargin ==1,% 如果输入参数为 1个 y=x; % 则设置第2个参数y与x相同 end r =xˆ2-yˆ2; if nargout >1,% 如果返回1个以上参数,则计算 v v =sqrt(xˆ2+yˆ2); end
数学实验
(二)语句return,pause return返回调用函数
pause暂停运行,按任意键执行 示例: function [r,v]=myfun(x) if nargout<=1, r=x.ˆ2; % 只计算第一个返回参数 return end v =2*x;% 计算第二个返回参数
数学实验
(三)全局变量 Matlab工作空间中的变量要被函数程序所使用, 必须定义为全局变量。 定义函数:global global varname1 varname2 . . . 注:
输入参数2个,输出参数1个,即返回求和结果。 函数名这里取为sum2,函数名要有一定意义,才便
于记忆,而且不要与系统内部函数相同。可以通过
“ help 函数名”看出该函数是否为系统函数。
数学实验
function r=sum2(n1,n2) %sum2.m 求任意自然数 n1和n2之间(含n1和n2) 所有整数的和 if n2>=n1 , r =(n2-n1+1)*(n1+n2)/2; else r=(n1-n2+1)*(n1+n2)/2; end 输入: sum2(1,100) ans = 5050
数学实验
例: g = inline('t^2') f = inline('x*y*z','x','y','z') g = inline('x^P1+x^P2',2) f = inline('x^2+y^3') f= Inline function: f(x,y) = x^2+y^3 f(3,1) ans = 10
数学实验
1.5.3 主函数与子函数
• 函数文件可以包含一个以上的函数,该文件中的 第一个函数是主函数,后面定义的所有函数都是 子函数。
• 函数文件名要与主函数名相同。 • 子函数只允许同一个文件中的函数及其它函数访 问。 • 调用含有子函数的函数文件时,只执行主函数的 语句块。
数学实验
函数间的调用规则:
a2 = a1(1 + r) % a2 — 第二年后本金+利息之和 a3 = a2(1 + r) % a3 — 第三年后本金+利息之和
数学实验
程序: a0=10000; a =a0; r = 0.0425; for i=1:50, % 假设50年内可以翻番,最多循环50次 a = a*(1+r); % 计算第i年末存单价值 if a>=2*a0, disp(sprintf('存了%d年终于翻番了.',i)) break; % 结束迭代 end end 思考:如果要存储每年存单的价值,如何修改程序? 提示:使用数组存储。
1.5.2 1.5.3 1.5.4
1.5.5
程序文件 主函数与子函数 inline函数
函数编程部分高级用法
数学实验
1.5.1 基础
计算机程序主要功能——接收数据和处理数据 ,并将 处理后的数据完整有效地提供给用户 . 文件执行:对文件中命令进行批处理,即从第一 条命令开始按顺序执行,直到最后一条命令。如果 中间某条命令出错,则中断并输出错误信息。
3. 控制语句continue,break (1) continue 命令
通常用于 for 或 while 循环语句中,与 if 语句一 起使用,跳过本次循环,去执行下一轮循环. for x=array 语句块1 if 条件表达式, continue, end 语句块 end
数学实验
(2) break 命令
• 全局变量必须在使用前定义;
• 全局变量可以在脚本文件、函数文件中定义, 也可以通过命令行定义。
数学实验
示例:
文件1:temp1.m global t1 t1=[1 3 5 7] 文件2:testfun.m function testfun(x) global t1 t1=x;
在命令行中运行:
clear all temp1 testfun(2) t1 % 此时t1的值已被函数testfun修改
function s=mysum(num) % 求1到num所有整数相加之和 s=0; for i=1:num, s=s+i; end
数学实验
1.5.4 inline函数
inline语法:
inline(expr) 根据expr建立内部函数,函数自变量根 据表达式自动搜索;
inline(expr, arg1, arg2, ...) 指定参数,arg1等参数是 字符串参数 inline(expr, N) 参数为 P1,P2,…,PN
• 主函数可以调用子函数; • 子函数可以调用子函数; • 子函数不能调用主函数; • 子函数可以调用其它程序文件。
数学实验
例: myfun.m
function s=myfun % 文件名myfun.m num=input('输入一个正整数:') sprintf('从1到整数%d的和为%d',num,mysum(num))
( 3)用Matlab程序编辑器打开程序文件,通过 快捷键(功能键F5或菜单条)运行.
数学实验
常见运行错误: “Undefined function or variable”
示例说明:现编写了一个程序myprg.m,保存在文 件夹“E:\”中,在Matlab命令窗口输入程序名 myprg提示出错。 >>myprg ??? Undefined function or variable ’myprg’.
数学实验
例 杨辉三角形
function Y=young(n)
if nargin==0,n=3;end
Y=eye(n);Y(:,1)=ones(n,1);
for k=3:n Y(k,2:k-1)=Y(k-1,1:k-2)+Y(k-1,2:k-1);
end
数学实验
例:求任意两个自然数之间(包含两个自然数)所有 自然数的和。 说明:
(2) 脚本可以直接在Matlab环境下执行,它可以访问 整个 Matlab工作空间中的变量,而脚本中的变量在 脚本执行完后仍然保留在工作空间中,并能被其它脚 本所引用,直到用 clear命令清空。
数学实验