数学软件实验报告实验八

数学软件实验报告实验八
数学软件实验报告实验八

数学软件实验报告

学院名称:理学院专业年级:

姓名:学号:

课程:数学软件实验报告日期:2014年12月6日

实验八M文件与MATLAB程序设计

一.实验目的

MATLAB语言被称为第四代编程语言,程序简洁、可读性很强,而且调试十分容易。它是MATLAB重要组成部分。本次实验的目的就是要使大家对MATLAB的工作模式有一个大致的了解,并掌握如何创建M文件,包括命令文件和函数文件。熟练地掌握MATLAB 的程序设计流程和程序设计的基本结构,并能初步设计一些简单的能解决实际问题的程序。二.实验要求

MATLAB的程序设计与其他计算机语言非常类似,但它更加简洁明了。通过本次实验,要求了解MATLAB的工作模式,熟练掌握MATLAB的M文件的创建与修改,会使用函数句柄调用函数,熟练运用顺序结构、循环结构和分支结构进行计算机编程。掌握M文件的构成规则,充分了解命令M文件和函数M文件的异同。会控制MATLAB的程序流,熟悉应用程序设计的基本步骤。能对文件进行简单操作,会调试和优化所设计的程序。了解应用程序接口的设计。

三.实验内容

第五章程序设计

5.1、M文件

M文件有两种:命令式文件、函数式文件

5.1.2 命令式文件

所建立的文件名为logotu.m的M文件

%logotu.m

load logo

surf(L,R),colormap(M)

n=size(L,1)

axis off

axis([1 n 1 n -.2 .8])

view(-37.5,30)

title('Life is too short to spend writing DO loops...')

5.1.3 函数式文件

function f=fibfun(n)

%FIBFUN FOR caculating Fibonacci numbers.

%Incidengtally,the name Fibonacci comes from

%Filius Bonassi ,or"son of Bonassus"

%fibfun.m

if n>2

f=fibfun(n-1)+fibfun(n-2);

else

f=1

end

>> fibfun(17)

f = 1

此处有很多1,只粘贴了一个

ans =

1597

查询fibfun

>> help fibfun

FIBFUN FOR caculating Fibonacci numbers.

Incidengtally,the name Fibonacci comes from

Filius Bonassi ,or"son of Bonassus"

fibfun.m

查找fibfun

>> lookfor fib

fibfun - FOR caculating Fibonacci numbers. fibfun - FOR caculating Fibonacci numbers. fibodemo - Used by SINGLEMATH demo. fibinscaling - Fi Binary Point Scaling Demo

5.2控制语句

5.2.1循环语句

利用for循环生成范德蒙德矩阵

>> t=[-1 0 1 3 5]'

t =

-1

1

3

5

a=

1 -1 1 -1 1

0 0 0 0 1

1 1 1 1 1

81 27 9 3 1

625 125 25 5 1

while循环

>> a=[2 3; 3 4]

a =

2 3

3 4

>> expm(a)

ans =

162.7871 224.6754

224.6754 312.5707

>> e=zeros(size(a))

e =

0 0

0 0 (这是自己做出的结果)

e=

162.7871 224.6754

224.6754 312.5707 (这是正确的结果)5.2.2 选择语句

B样条函数的判断函数

function f=pdbsline(x)

if x<0

f=0

elseif x<1

f=x

elseif x<2

f=2-x

else

f=0

end

>> pdbsline(-1)

f =

ans =

>> pdbsline(1.36)

f =

0.6400

ans =

0.6400

>> pdbsline(2.5)

f =

ans =

5.2.4 人机交互语句

input命令

>>How many apples 2

R=

2

>>What is your name? Wngmoran

R=

Wnagmoran

中断命令break

程序设计为 i=1

while 1

if rem(100-i*2,4)==0&(i+(100-i*2)/4)==36

break

end

i=i+1

end

a1=i

a2=(100-2*i)/4

运行结果是 a1=

22

a2=

14

5.3函数变量及变量作用域

1.调试过程中只提供一个输入变量,要求输入模,若是两个变量,要求输入变量例:建立function文件

function c=test531(a,b)

if(nargin==1)

c=det(a)

elseif(nargin==2)

c=a+b

end

调用margin文件

>> nargin('test531')

ans =

2

例:绘制函数,函数名为test532,要求实现使用函数varargin,用户可以输入任意多个学生的数学、英语、语文成绩,然后求个科目的平均值

function [mathavg,englishavg,chineseavg]=test532(varargin)

I=length(varargin)

mathsum=0

englishsum=0

chinesesum=0

for i=1:1

mathsum =mathsum+varargini{i}(1)

englishsum =englishsum+varargin{i}(2)

chinesesum = chinsessum+varagin{i}(3)

end

mathavg=mathsum/1

englishavg=englishsum/1

chineseavg=chinesesum/1

例:绘制一个函数,函数名为test533,综合应运nargin、nargout、varargin、varargout等,目的是要求学生的个人成绩以及指定科目的平均成绩

function [vararout]=test533(lessons,varargin)

inputnum=nargin

lessonsum=length(lessons)

outputnum=nargout

for i=1:lessonnum

switch lesson(i)

case 'math'

vararout{1}=sum(varargin{1:inputnum}(1))

cash 'english'

vararout{2}=sum(varargin{1:inputnum}(2)) cash 'chinese'

vararout{3}=sum(varargin{1:inputnum}(3)) end

end

for i=1:inputnum

varargout{i+3}=sum(varargin{i}(:))

end

例:全局变量示例

function [num1,num2,num3]=test534(varargin)

global firstlevel secondlevel

num1=0

num2=0

num3=0

list=zeros(nargin)

for i=1:nargin

list{i}=sum(varargin{i}(:))

list{i}=list{i}/length()varargin(i)

if list(i)>firstlevel

mum1=num1+1

elseif list(i)=>seconglevel

num2=num2+1

else

num3=num3+1

end

end

>> global firstlevel secondlevel

>> firstlevel=85

firstlevel =

85

>> secondlevel=75

secondlevel =

75

>> [num1,num2,num3]=test534([90,89,60],[79,89,60],[99,98,100])

num 1=

1

num 2=

2

num 3=

例:在工作空间中存储的全局变量将以global标出

whos

Name Size Bytes Class Attributes

ans 1x1 8 double firstlevel 1x1 8 double global secondlevel 1x1 8 double global toolbox_version 1x5 10 char 5.4子函数和局部函数

子函数示例

function c=test(a,b) %主函数

c=test1(a,b)*test2(a,b)

function c=test1(a,b) %子函数1,这里为c为形式参数,不影响主函数中c的作用

c=a+b

function c=test2(a,b) %子函数2

c=a-b

5.5程序设计的辅助函数

1、执行函数

函数feval用于调用M文件,其调用格式:

●[y1,y2, …,yn]=feval[function,x1,x2, …,xn]

●evalin(workspacename,'expression')

2、容错函数

例1

>> testerror('i',i)

flag =

??? Error using ==> testerror at 6

Input must be a string!!

3、时间控制函数

>> d1=datenum('04-18-2012')

d1 =

734977

>> d2=datestr(d1+30)

d2 =

18-May-2012

>> dv1=datevec(d1)

dv1 =

2012 4 18 0 0 0

>> dv2=datevec(d2)

dv2 =

2012 5 18 0 0 0

函数cputime调用

>> t=cputime

t =

90.1530

>> t=cputime-t

t =

0.2652

5.6程序设计优化

1、以矩阵为操作主体

function y=test1(x) x=1

for i=1:1000

y(i)=sin(x)

x=x+0.1*pi

end

function test2

x=1:0.1*pi:1000*pi

y=sin(x)

>> test1=cputime

test1 =

124.9412

>> t=cputime-test1

t =

0.4680

>> test2=cputime

test2 =

125.7680

>> t=cputime-test2

t =

0.2496

2、数据的预定义

>> test1=cputime

test1 =

119.9024

>> test2=cputime

test2 =

120.0896

>> t=cputime-test2

t =

0.3432

>> t=cputime-test1

t =

0.8112

5.7 程序调试

M文件错误的种类

A=[1,2;3,4]

A =

1 2

3 4

>> B=[1,2,3;4,5,6;7,8,9]

B =

1 2 3

4 5 6

7 8 9

>> A*B

??? Error using ==> mtimes

Inner matrix dimensions must agree.

A=NaN

A =

NaN

>> isnan(A)

ans =

1

>> A=Inf

A =

Inf

>> isinf(A)

ans =

1

>> A=[]

A =

[]

>> isempty(A)

ans =

1

调试过程

>> dbtype db_test.m

1 function C=db_test(A,B)

2 [num11,num12]=size(A)

3 [num21,num22]=size(B)

4 if(num12==num21)

5 C=A*B

6 else

7 if(num11==num22)

8 C=B*A

9 else

10 error('input error!')

11 end

12 end

13 return

14 end

15

>> dbstop in db_test.m at 5

>> A=[1,2;3,4]

A =

1 2

3 4

>> B=[1,2,3;4,5,6]

B =

1 2 3

4 5 6

>> db_test(A,B)

num11 =

2

num12 =

2

num21 =

2

num22 =

3

5 C=A*B

K>> dbstatus

Breakpoint for db_test is on line 5.

K>> dbstack

> In db_test at 5

K>> whos

Name Size Bytes Class Attributes

A 2x2 32 double

B 2x3 48 double num11 1x1 8 double num12 1x1 8 double num21 1x1 8 double num22 1x1 8 double K>> dbup

In base workspace.

K>> dbquit

5.8 M文件的调用记录

load west0479

>> A=west0479;

>> profile on -detail builtin -history

>>

>> eigs(A)

ans =

1.0e+003 *

0.0000 + 1.7007i

0.0000 - 1.7007i

-0.1009 + 0.0666i

-0.1009 - 0.0666i

0.1081 + 0.0541i

0.1081 - 0.0541i

>> profile report test_eig

Warning: Unknown argument for PROFILE. See HELP PROFILE. > In profile at 236

>> profile plot

Warning: Unknown argument for PROFILE. See HELP PROFILE. > In profile at 236

>> s=profile('status')

s =

ProfilerStatus: 'on'

DetailLevel: 'builtin'

Timer: 'cpu'

HistoryTracking: 'on'

HistorySize: 1000000

>> profile resume

>> a=profile('status')

a =

ProfilerStatus: 'on'

DetailLevel: 'builtin'

Timer: 'cpu'

HistoryTracking: 'on'

HistorySize: 1000000

>> profile off

5.9 函数句柄

函数句柄的创建和显示

fun_handle=@load

fun_handle =

@load

>> functions(fun_handle)

ans =

function: 'load'

type: 'simple'

file: 'MATLAB built-in function' 函数句柄的调用和操作

fun_handle=@test23

fun_handle =

@test23

>> feval(fun_handle,3,4)

ans =

1

>>feval('test23',3,4)

ans =

1

>> fun_handle=str2func('eig')

fun_handle =

@eig

>> func2str(fun_handle)

ans =

eig

isa(fun_handle,'function_handle')

ans =

1

>> isequal(fun_handle,@eig)

ans =

1

四、实验总结

这次实习做的是程序设计。第一是M文件,了解了M文件的特点与形式,区分了命令式文件与函数式文件,对M文件有了一定的了解。第二是控制语句,包括循环语句for,选择语句if,分支语句switch,人机交互语句echo和input、keyboard、pause、breek。第三是函数变量及变量作用域,应用了varargin函数。第四是子函数与局部函数。第五是程序设计的辅助函数,如feval,error、warning,cputime。第六是程序设计的优化,,第七是程序调试,对比了M文件的错误种类,运用keyboard函数进行错误识别,模拟了调试过程。第八是M文件的调用记录,用了profile函数进行查看调用状态。最后是函数句柄的创建、显示、调用和操作。

这次实习总的来说就是把程序设计的过程做了一遍。通过实习了解了程序设计的流程和程序设计中所应用到的一些函数。课本上讲的比较基础,按照步骤基本能做出来,对程序设计有了一定的了解。

数学实验软件

重庆科技学院 数学实验与数学软件课程设计 课程名称:菜单与对话框设计 开课学期:_2014-2015-1 学院:__ 数理学院 开课实验室:_数学实验与建模实验室_ 学生姓名: 谭云文 专业班级: 应数13-2班 __ 学号:___ 20134432214 _

实验十二 我们本次实验做的是菜单与对话框设计,所谓菜单与对话框的设计包括在图形用户界面中。而图形用户界面是由窗口、菜单、对话框等各种图形元素组成的用户界面。因为在这种用户界面中,用户的操作既生动形象,又方便灵活,这是它的一大特点。 在MATLAB中,基本的图形用户界面对象包含3类:用户界面控件对象、下 拉式菜单对象和快捷菜单对象,可以设计出界面友好、操作方便的图形用户界面。 其中MATLAB用户菜单对象是图形窗口的子对象,所以菜单设计总在某一个图形 窗口中进行。MATLAB的图形窗口有自己的菜单栏。为了建立用户自己的菜单系 统,可以先将图形窗口的MenuBar属性设置为none,以取消图形窗口默认的菜 单,然后再建立用户自己的菜单。对话框是用户与计算机进行信息交流的临时窗 口,在现代软件中有着广泛的应用。在软件设计时,借助于对话框可以更好地满 足用户操作需要,使用户操作更加方面灵活。为了更便捷地进行用户界面设计, MATLAB提供了图形用户界面开发环境,这使得界面设计在可视化状态进行,设计过程中变得简单直观,实现了“所见即所得”。 例1 一、实验目的 1. 掌握plot菜单的方法。 2. 掌握建立控件对象的方法。 3. 掌握对话框设计的方法。 二、实验内容 设计图1所示的菜单。

菜单条上仅有Plot菜单,其中有Sine Wave、Cosine Wave和Exit共3个命令。若选择了其中的Sine Wave命令,则将绘制出正弦曲线;若选择了其中的Cosine Wave命令,则将绘制出余弦曲线;如果选择了Exit命令,则将关闭窗口。 程序如下: screen=get(0,'ScreenSize'); W=screen(3);H=screen(4); figure('Color',[1,1,1],'position',[0.2*H,0.2*H,0.5*W,0.3*H],... 'Name','图形演示系统','NumberTitle','off','Menubar','none'); %plot hplot=uimenu(gcf,'Label','&Plot'); uimenu(hplot,'Label','Sine Wave','Call',... ['t=-pi:pi/20:pi;','plot(t,sin(t));',... 'set(hgon,''Enable'',''on'');',... 'set(hgoff,''Enable'',''on'');',... 'set(hbon,''Enable'',''on'');',... 'set(hboff,''Enable'',''on'');']); uimenu(hplot,'Label','Cosine Wave','Call',... ['t=-pi:pi/20:pi;','plot(t,cos(t));',... 'set(hgon,''Enable'',''on'');',... 'set(hgoff,''Enable'',''on'');',... 'set(hbon,''Enable'',''on'');',... 'set(hboff,''Enable'',''on'');']); uimenu(hplot,'Label','&Exit','Call','close(gcf)'); 三、运行结果 1.点击SineWave函数将出现我们所需要的图像,如图: 2点击CosineWave函数将出现我们所需要的图像,如图:

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

实验八:概率论与数理统计的MATLAB 实现 实验目的与要求: 能运用MATLAB 提供的针对概率统计课程的工具箱。 实验内容: 1、用normpdf函数计算正态概率密度函数。 该函数的调用格式为:Y=normpdf(X,MU,SIGMA) 2、用normpdf函数计算正态分布的分布函数。 该函数的调用格式为:F=normcdf(X,MU,SIGMA) 3、用chi2inv函数计算卡方分布的分布函数的逆函数。 分布函数的逆函数及其调用格式:x=chi2inv(P,v) 4、随机取8只活塞环,测得他们直径为(以mm计): 74.001 74.005 74.003 74.001 74.000 73.998 74.006 74.002 。 设环直径的测量值服从正态分布,现估计总体的方差2 程序代码: x=[74.001 74.005 74.003 74.001 74.000 73.998 74.006 74.002]; p=mle('norm',x); sigma2hatmle=p(2)^2 5、从一批灯泡中随机的取5只做寿命试验,测得寿命(以小时计)为: 1050 1100 1120 1250 1280 设灯泡寿命服从正态分布,求灯泡寿命平均值的95%置信区间。 程序代码: x=[1050 1100 1120 1250 1280]; [p,ci]=mle('norm',x,0.05) 6、下面列出的是某工厂随机选取的20只部件的装配时间(分): 9.8 10.4 10.6 9.6 9.7 9.9 10.9 11.1 9.6 10.2

10.3 9.6 9.9 11.2 10.6 9.8 10.5 10.1 10.5 9.7 设装配时间的总体服从正态分布,标准差为0.4,是否可以认为装配时间的均值在0.05的水平上不小于10. 0H :10<μ vs 1H :10≥μ 程序: %正态总体的方差已知时的均值检验 x1=[9.8 10.4 10.6 9.6 9.7 9.9 10.9 11.1 9.6 10.2]; x2=[10.3 9.6 9.9 11.2 10.6 9.8 10.5 10.1 10.5 9.7]; x=[x1 x2]'; m=10;sigma=0.4;a=0.05; [h,sig,muci]=ztest(x,m,sigma,a,1) 因此,在0.05的水平下,可以认为装配时间的均值不小于10。 7、某种电子元件的寿命x (以小时计)服从正态分布,2 δμ和均未知。现测得16只元件的寿命如下: 159 280 101 212 224 379 179 264 222 362 168 250 149 260 485 170 问是否有理由认为元件的平均寿命大于225(小时)? 0H :225≤μ vs 1H :225>μ 程序: %正态总体的方差求知时的均值检验 x=[159 280 101 212 224 379 179 264 222 362 168 250 149 260 485 170]; m=225;a=0.05; [h,sig,muci]=ttest(x,m,a,1)

matlab——大学数学实验报告

济南大学2012~2013学年第二学期数学实验上机考试题 班 级 计科1201 学号 20121222044 姓 名 黄静 考试时间 2014年6 月 17日 授课教师 王新红 说明:每题分值20分。第5题,第6题, 第7题和第8题可以任选其一, 第9题和第10题可以任选其一。每个同学以自己的学号建立文件夹,把每个题的文件按规定的方式命名存入自己的文件夹。有多余时间和能力的同学可以多做。 1、自定义函数:x x x y tan ln sin cos ln -=,并求 ?)3 (=π y (将总程序保存为test01.m 文件) %%代码区: y=inline('log(cos(x))-sin(x)*log(tan(x))','x'); y(pi/3) %%answer ans = -1.1689 2、将一个屏幕分4幅,选择合适的坐标系在左与右下幅绘制出下列函数的图形。 (1)衰减振荡曲线: x e y x 5sin 5.0-= (2)三叶玫瑰线:θρ3sin a = (将总程序保存为test02.m 文件) %%代码区: x=linspace(0,2*pi,30); y=exp(-0.5*x).*sin(5*x); subplot(2,2,1),plot(x,y),title('衰减振荡曲线') hold on theta=linspace(0,2*pi); r=sin(3*theta); subplot(2,2,4); polar(theta,r); xlabel('三叶玫瑰线')

%%answer 02468 -1 -0.500.5 1衰减振荡曲线 三叶玫瑰线 3、作马鞍面:22 ,66,8823 x y z x y =--≤≤-≤≤ (将总程序保存为test03.m 文件) %%代码区: [x,y]=meshgrid(linspace(-6,6,70),linspace(-8,8,70)); z=x.^2/2-y.^2/3; mesh(x,y,z) surface(x,y,z)%让曲面光滑并填满 shading interp ;

数学应用软件实验报告(mathematica实验程序)1

徐州工程学院数理学院数学应用软件实验报告 课程(实验序号)数学应用软件实验 1 实验地点、日期数学建模机房2011 年 2 月23 日主要仪器设备计算机 使用的软件名称Mathematica 实验类型演示性实验 验证性实验 综合性实验√设计性实验 研究性实验 班级:姓名:孙娅学号:20090402223 一、实验题目名称:函数】变量和表达式 二、实验目的: 理解变量和算式、内核与前端处理器构成的人机对话系统,了解计算的精度问题个Mathematica使用中的几个问题。熟练掌握数的表示和计算、常用数学函数,会绘制简单函数的图形。通过上机初步了解数学应用软件,Mathematica的各种界面。 三、实验内容: 练习题1 1.计算下列各式的数值: (1) Log[2,10] Log[10]/Log[2] (2) Sqrt[Pi^2+1] 1 2 (3) Log[10,3264] Log[3264]/Log[10] (4) E^E ??/2 (5) Cos[135^0] Cos[1] (6) Sin[Pi^2/2] Sin[π2/2] (7) ArcSin[1/2] π/6 (8) 200! 7886578673647905035523632139321850622951359776871732632947425332443594499634033429203042 8401198462390417721213891963883025764279024263710506192662495282993111346285727076331723 7396988943922445621451664240254033291864131227428294853277524242407573903240321257405579

数学建模实验报告

数学建模实验报告

一、实验目的 1、通过具体的题目实例,使学生理解数学建模的基本思想和方法,掌握 数学建模分析和解决的基本过程。 2、培养学生主动探索、努力进取的的学风,增强学生的应用意识和创新 能力,为今后从事科研工作打下初步的基础。 二、实验题目 (一)题目一 1、题目:电梯问题有r个人在一楼进入电梯,楼上有n层。设每个 乘客在任何一层楼出电梯的概率相同,试建立一个概率模型,求直 到电梯中的乘客下完时,电梯需停次数的数学期望。 2、问题分析 (1)由于每位乘客在任何一层楼出电梯的概率相同,且各种可能的情况众多且复杂,难于推导。所以选择采用计算机模拟的 方法,求得近似结果。 (2)通过增加试验次数,使近似解越来越接近真实情况。 3、模型建立 建立一个n*r的二维随机矩阵,该矩阵每列元素中只有一个为1,其余都为0,这代表每个乘客在对应的楼层下电梯(因为每 个乘客只会在某一层下,故没列只有一个1)。而每行中1的个数 代表在该楼层下的乘客的人数。 再建立一个有n个元素的一位数组,数组中只有0和1,其中1代表该层有人下,0代表该层没人下。 例如: 给定n=8;r=6(楼8层,乘了6个人),则建立的二维随机矩阵及与之相关的应建立的一维数组为: m = 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 c = 1 1 0 1 0 1 1 1 4、解决方法(MATLAB程序代码):

n=10;r=10;d=1000; a=0; for l=1:d m=full(sparse(randint(1,r,[1,n]),1:r,1,n,r)); c=zeros(n,1); for i=1:n for j=1:r if m(i,j)==1 c(j)=1; break; end continue; end end s=0; for x=1:n if c(x)==1 s=s+1; end continue; end a=a+s; end a/d 5、实验结果 ans = 6.5150 那么,当楼高11层,乘坐10人时,电梯需停次数的数学期望为6.5150。 (二)题目二 1、问题:某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6 千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千 克,工人20名,可获利9万元.今工厂共有原料60千克,工人 150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何 安排生产计划,即两种饮料各生产多少使获利最大.进一步讨 论: 1)若投资0.8万元可增加原料1千克,问应否作这项投资. 2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划. 2、问题分析 (1)题目中共有3个约束条件,分别来自原料量、工人数与甲饮料产量的限制。 (2)目标函数是求获利最大时的生产分配,应用MATLAB时要转换

东南大学高等数学数学实验报告上

Image Image 高等数学数学实验报告 实验人员:院(系) ___________学号_________姓名____________实验地点:计算机中心机房 实验一 1、 实验题目: 根据上面的题目,通过作图,观察重要极限:lim(1+1/n)n =e 2、 实验目的和意义 方法的理论意义和实用价值。 利用数形结合的方法观察数列的极限,可以从点图上看出数列的收敛性,以及近似地观察出数列的收敛值;通过编程可以输出数列的任意多项值,以此来得到数列的收敛性。通过此实验对数列极限概念的理解形象化、具体化。 三、计算公式 (1+1/n)n 四、程序设计 五、程序运行结果 六、结果的讨论和分析 当n足够

Image Image 大时,所画出的点逐渐接近于直线,即点数越大,精确度越高。对于不同解题方法最后均能获得相同结果,因此需要择优,从众多方法中尽可能选择简单的一种。程序编写需要有扎实的理论基础,因此在上机调试前要仔细审查细节,对程序进行尽可能的简化、改进与完善。 实验二一、实验题目 制作函数y=sin cx的图形动画,并观察参数c对函数图形的影响。 二、实验目的和意义 本实验的目的是让同学熟悉数学软件Mathematica所具有的良好的作图功能,并通过函数图形来认识函数,运用函数的图形来观察和分析函数的有关性态,建立数形结合的思想。三、计算公式:y=sin cx 四、程序设计五、程序运行结果 六、结果的讨论和分析 c的不同导致函数的区间大小不同。 实验三 一、实验题目 观察函数f(x)=cos x的各阶泰勒展开式的图形。 二、实验目的和意义 利用Mathematica计算函数的各阶泰勒多项式,并通过绘制曲线图形,来进一步掌握泰勒展开与函数逼近的思想。 三、计算公式

数学软件实验报告实验七

数学软件实验报告 学院名称:理学院专业年级: 姓名:学号: 课程:数学软件实验报告日期:2014年12月6日 实验七SIMULINK建模与工具箱的使用 一.实验目的 MATLAB 具有丰富的可用于各种专业方向的工具箱,这些工具箱已经形成了MATLAB 的系列产品。特别是动态仿真建模工具箱,更是成为许多工具箱的基础。本次实验的目的就是要使大家了解MA TLAB工具箱使用的基本方法,以及如何查询工具箱,主要掌握系统优化工具箱的使用和系统动态仿真建模工具箱的使用。 二.实验要求 MATLAB系统的工具箱十分的丰富,并且随着版本的不断升级,其工具箱还在不断地增加。通过本次实验,要求了解MA TLAB系统工具箱的分类与查询,会使用系统优化工具箱解决一些实际问题。能建立系统仿真方框图,并进行系统仿真模拟。 三.实验内容 最优化工具箱 非线性最小化函数 fgoalattain 多目标达到优化 constr 有约束最小化 fminbnd 有边界最小化 fminunc使用梯度法的无约束最小化 fminsearch 使用简单法的无约束最小化 fzero 非线性方程求解(数量情况) fsolve 非线性方程求解 lsqnonlin 非线性最小二乘 fminimax 最小的最大解 fseminf 半无穷区间最小化 2.矩阵问题的最小化 linprog 线性规划

quadprog 二次规划 lsqnonneg 非负线性最小二乘 lsqlin 约束线性最小二乘 第十章 10.1线性优化 >> f=[-5 4 2]; >> a=[6 -1 1;1 2 4]; >> b=[8 10]; >> 1b=[-1 0 0]; >> ib=[-1 0 0]; >> ub=[3 2]; >> [x,fval,exitflag,output,lambda]=linprog(f,a,b,[],[],ib,ub) Optimization terminated. x = 1.3333 0.0000 0.0000 fval = -6.6667 exitflag = 1 output = iterations: 7 algorithm: 'large-scale: interior point' cgiterations: 0 message: 'Optimization terminated.' constrviolation: 0 lambda = ineqlin: [2x1 double]

数学建模实验报告

数学建模实验报告 实验一计算课本251页A矩阵的最大特征根和最大特征向量 1 实验目的 通过Wolfram Mathematica软件计算下列A矩阵的最大特征根和最大特征向量。 2 实验过程 本实验运用了Wolfram Mathematica软件计算,计算的代码如下:

3 实验结果分析 从代码的运行结果,可以得到最大特征根为5.07293,最大特征向量为 {{0.262281},{0.474395},{0.0544921},{0.0985336},{0.110298}},实验结果 与标准答案符合。

实验二求解食饵-捕食者模型方程的数值解 1实验目的 通过Wolfram Mathematica或MATLAB软件求解下列习题。 一个生物系统中有食饵和捕食者两种种群,设食饵的数量为x(t),捕食者为y(t),它们满足的方程组为x’(t)=(r-ay)x,y’(t)=-(d-bx)y,称该系统为食饵-捕食者模型。当r=1,d=0.5,a=0.1,b=0.02时,求满足初始条件x(0)=25,y(0)=2的方程的数值解。 2 实验过程 实验的代码如下 Wolfram Mathematica源代码: Clear[x,y] sol=NDSolve[{x'[t] (1-0.1y[t])x[t],y'[t] 0.02x[t]y[t]-0.5y[t],x[0 ] 25,y[0] 2},{x[t],y[t]},{t,0,100}] x[t_]=x[t]/.sol y[t_]=y[t]/.sol g1=Plot[x[t],{t,0,20},PlotStyle->RGBColor[1,0,0],PlotRange->{0,11 0}] g2=Plot[y[t],{t,0,20},PlotStyle->RGBColor[0,1,0],PlotRange->{0,40 }] g3=Plot[{x[t],y[t]},{t,0,20},PlotStyle→{RGBColor[1,0,0],RGBColor[ 0,1,0]},PlotRange->{0,110}] matlab源代码 function [ t,x ]=f ts=0:0.1:15; x0=[25,2]; [t,x]=ode45('shier',ts,x0); End function xdot=shier(t,x)

Matlab数学实验报告一

数学软件课程设计 题目非线性方程求解 班级数学081 姓名曹曼伦

实验目的:用二分法与Newton迭代法求解非线性方程的根; 用Matlab函数solve、fzero、fsolve求解非线性方程(组)的解。 编程实现二分法及Newton迭代法; 学会使用Matlab函数solve、fzero、fsolve求解非线性方程(组)的解。 通过实例分别用二分法及迭代法解非线性方程组并观察收敛速度。 实验内容: 比较求exp(x)+10*x-2的根的计算量。(要求误差不超过十的五次方) (1)在区间(0,1)内用二分法; (2)用迭代法x=(2-exp(x))/10,取初值x=0 。 试验程序 (1)二分法: format long syms x s=exp(x)+10*x-2 a=0; b=1; A=subs(s,a) B=subs(s,b) f=A*B %若f<0,则为由根区间 n=0; stop=1.0e-5; while f<0&abs(a-b)>=stop&n<=100; Xk=(a+b)/2; %二分 M= subs(s, Xk); if M* A<0 symbol=1 %若M= subs(s, Xk)为正,则与a二分 b= Xk else symbol=0 % 若M= subs(s, Xk)为负,则与b二分 a= Xk end n=n+1 end Xk n (2)牛顿迭代法; format long

syms x s= (2-exp(x))/10; %迭代公式 f=diff(s); x=0; %迭代初值 a=subs(f,x); %判断收敛性(a是否小于1) s=(2-exp(x))/10; stop=1.0e-5; %迭代的精度 n=0; while a<1&abs(s-x)>=stop&n<=100; x=s %迭代 s=(2-exp(x))/10; n=n+1 end 实验结果: (1)二分法: symbol =1 b =0.50000000000000 n =1 symbol =1 b =0.25000000000000 n =2 symbol =1 b =0.12500000000000 n =3 symbol =0 a =0.06250000000000 n =4 symbol =1 b =0.09375000000000 n =5 symbol =0 a =0.07812500000000 n =6 symbol =1 b =0.09054565429688 n =15 symbol =1 b =0.09053039550781 n =16 symbol =0 a =0.09052276611328 n =17 Xk =0.09052276611328 n =17 (2)迭代法 由x =0.10000000000000 n =1 x =0.08948290819244 n =2 x =0.09063913585958 n =3 x =0.09051261667437 n =4 x =0.09052646805264 n =5 试验结果可见用二分法需要算17次,而用迭代法求得同样精度的解仅用5次,但由于迭代法一般只具有局部收敛性,因此通常不用二分法来求得非线性方程的精确解,而只用它求得根的一个近似解,再用收敛速度较快的迭代法求得其精确解。

数学建模与数学实验报告

数学建模与数学实验报告 指导教师__郑克龙___ 成绩____________ 组员1:班级______________ 姓名______________ 学号_____________ 组员2:班级______________ 姓名______________ 学号______________ 实验1.(1)绘制函数cos(tan())y x π=的图像,将其程序及图形粘贴在此。 >> x=-pi:0.01:pi; >> y=cos(tan(pi*x)); >> plot(x,y) -4 -3 -2 -1 1 2 3 4 -1-0.8-0.6-0.4-0.200.20.40.60.8 1 (2)用surf,mesh 命令绘制曲面2 2 2z x y =+,将其程序及图形粘贴在此。(注:图形注意拖放,不要太大)(20分) >> [x,y]=meshgrid([-2:0.1:2]); >> z=2*x.^2+y.^2; >> surf(x,y,z)

-2 2 >> mesh(x,y,z) -2 2 实验2. 1、某校60名学生的一次考试成绩如下:

93 75 83 93 91 85 84 82 77 76 77 95 94 89 91 88 86 83 96 81 79 97 78 75 67 69 68 84 83 81 75 66 85 70 94 84 83 82 80 78 74 73 76 70 86 76 90 89 71 66 86 73 80 94 79 78 77 63 53 55 1)计算均值、标准差、极差、偏度、峰度,画出直方图;2)检验分布的正态性;3)若检验符合正态分布,估计正态分布的参数并检验参数. (20分) 1) >> a=[93 75 83 93 91 85 84 82 77 76 77 95 94 89 91 88 86 83 96 81 79 97 78 75 67 69 68 84 83 81 75 66 85 70 94 84 83 82 80 78 74 73 76 70 86 76 90 89 71 66 86 73 80 94 79 78 77 63 53 55]; >> pjz=mean(a) pjz = 80.1000 >> bzhc=std(a) bzhc = 9.7106 >> jc=max(a)-min(a) jc = 44 >> bar(a)

四川师范大学数学与软件科学学院程序设计实验报告实验九(推荐文档)

数学与软件科学学院实验报告 一、实验目的 (1) 掌握C语言环境下结构体和共用体类型变量的定义和使用方法; (2) 掌握结构体类型数组的概念和使用; (3) 掌握指向结构体变量的指针变量、尤其是链表概念; 二、实验内容 1.首先熟悉结构体类型变量的基本声明方法、结构体类型变量的内存分配原则、初始化和引用结构体变量及其成员变量的基本方法;然后掌握结构体变量的输入、输出方法。(参见教材例7.1,请给该例加上输入功能) #include struct person { char name[20]; int count; }leader[3]={"Li",0,"Zhang",0,"Wang",0}; main() { int i,j; char leader_name[20]; for(i=1;i<=10;i++) { scanf("%s",leader_name); for(j=0;j<3;j++) { if(strcmp(leader_name,leader[j].name)==0) leader[j].count++; } }

for(i=0;i<3;i++) printf("%5s:%d\n",leader[i].name,leader[i].count); } 2.基于结构体数组的应用实验。 (1) 有n个学生,每个学生的数据包括学好(num)、姓名(name[20])、性别(sex)、年龄(age),以及三门课程的成绩(score[3])。要求:在main()函数中输入这些学生的这些数据,然后设计一个函数count()来计算每个学生的总分和平均分,最后, 打印出所有数据信息(包含原来输入的学生原始数据信息和求解出来的新信息)。#include #define N 3 #define M 3 typedef struct student { int score[N]; char name[20]; int sex; int age; char num[20]; }STUDENT; main() { STUDENT stu[M]; int i,j,average,total; char name[20]; clrscr(); for(i=0;i

数学建模实验报告

matlab 试验报告 姓名 学号 班级 问题:.(插值) 在某海域测得一些点(x,y)处的水深z 由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)*(-50,150)里的哪些地方船要避免进入。 问题的分析和假设: 分析:本题利用插值法求出水深小于5英尺的区域,利用题中所给的数据,可以求出通过空间各点的三维曲面。随后,求出水深小于5英尺的范围。 基本假设:1表中的统计数据均真实可靠。 2矩形区域外的海域不对矩形海域造成影响。 符号规定:x ―――表示海域的横向位置 y ―――表示海域的纵向位置 z ―――表示海域的深度 建模: 1.输入插值基点数据。 2.在矩形区域(75,200)×(-50,150)作二维插值,运用三次插值法。 3.作海底曲面图。 4.作出水深小于5的海域范围,即z=5的等高线。 x y z 129 140 103.5 88 185.5 195 105 7.5 141.5 23 147 22.5 137.5 85.5 4 8 6 8 6 8 8 x y z 157.5 107.5 77 81 162 162 117.5 -6.5 -81 3 56.5 -66.5 84 -33.5 9 9 8 8 9 4 9

求解的Matlab程序代码: x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5]; y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5]; z=[-4 -8 -6 -8 -6 -8 -8 -9 -9 -8 -8 -9 -4 -9]; cx=75:0.5:200; cy=-50:0.5:150; cz=griddata(x,y,z,cx,cy','cubic'); meshz(cx,cy,cz),rotate3d xlabel('X'),ylabel('Y'),zlabel('Z') %pause figure(2),contour(cx,cy,cz,[-5 -5]);grid hold on plot(x,y,'+') xlabel('X'),ylabel('Y') 计算结果与问题分析讨论: 运行结果: Figure1:海底曲面图:

东南大学数学实验报告(1)

高等数学数学实验报告实验人员:院(系) 土木工程学院学号05A11210 姓名李贺__ 实验地点:计算机中心机房 实验一空间曲线与曲面的绘制 一、实验题目:(实验习题1-2) 利用参数方程作图,做出由下列曲面所围成的立体图形: 2 2 2 2 ⑴ Z 1 X y,x y X 及xOy平面; ⑵ z xy,x y 1 0 及z 0. 二、实验目的和意义 1、利用数学软件Mathematica绘制三维图形来观察空间曲线和空间曲面图形的特点,以加 强几何的直观性。 2、学会用Mathematica绘制空间立体图形。 三、程序设计 空间曲面的绘制 x x(u, V) y y(u,v),u [u min , max ],V [V min , V max ] 作参数方程z z(u,v)所确定的曲面图形的Mathematica命令

为: ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,umi n,umax}. {v,vmi n,vmax}, 选项] ⑵ t2 = ParametricPlotJD [{u f 1 v}, [u^ ?0?§尸1}^ (v, 0F 1}, HxegLabel {"x" 11 y" J1 z" }. PlotPolnts t 5B, Dlspla^unction -> Identity」: t3 = ParametricPlotSD[{u f 0}* (u, -U.J5』1}^ {v z-0.5, 1} f AxesLabel {"x" 11y" 11 z" PlotPoints 50, Display1 unction — Identity]: Slinw[tl z t2, t3 f DisplayFunction -> SDlsplajfunction] 四、程序运行结果 ⑴ (2) 五、结果的讨论和分析 1、通过参数方程的方法做出的图形,可以比较完整的显示出空间中的曲面和立体图形。 2、可以通过mathematica软件作出多重积分的积分区域,使积分能够较直观的被观察。

数学应用软件实验指导书(32课时)

《数学应用软件》实验指导书 覃义编 桂林电子科技大学 数学与计算科学学院 二O一三年三月

一、概述 本课程实验指导书是根据Holly Moore著,高会生,刘童娜,李聪聪译的《MA TLAB实用教程》编写的。通过上机实验,可帮助学生迅速掌握MATLAB的操作方法以及程序设计,并能够使用MA TLAB解决实际问题。 二、实验环境 本书选择的实验环境是计算机以及软件Matlab(版本7.5以上)一套。 三、实验课时安排 32课时,每个实验2课时。 四、实验要求 上机完成实验指导书中所规定的内容,自行按实验指导书要求完成程序设计和调试,并提交每次实验的实验报告,附带算法程序清单和算法输出结果。 五、实验考核要求 上机完成试验内容,并提交一份算法程序清单和数值结果。

实验一MATLAB的基本操作 一、实验目的 1.能独立安装MATLAB软件,熟悉MA TLAB的各个窗口及菜单功能,掌握其使用方法。 2.能够进行一些基本运算。 二、实验课时:4课时 三、实验原理 1.运行MA TLAB软件,打开MA TLAB窗口,了解命令窗口(Command Window,输入各种操作命令)、工作空间(Workspace,用于存储各种变量和结果的内存空间,可对变量进行编辑、保存、观察和删除)、当前目录(Current Directory,MATLAB运行时的工作目录)、历史命令(Command History,自动保留所用过的命令的历史记录,通过双击,可以使历史命令再运行)、菜单栏、工具栏及start按钮(提供快速访问MATLAB的各种功能和查阅MATLAB包含的各种资源的命令菜单)的功能。 2.命令输入方式 在命令窗口>>符号后面输入命令。一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔。若前一命令后带有分号,则逗号可以省略,此时只显示最后一条命令的执行结果。例如,

《数学软件》实验报告-符号计算基础与符号微积分

实验报告 课程名称:数学软件姓名: 学院: 专业: 年级: 学号: 指导教师: 职称: 年月日

实验项目列表

附件三: 实验报告(二) 系:专业:年级:姓名学号:实验课程: 实验室号:_ 实验设备号:实验时间: 指导教师签字:成绩: 1. 实验项目名称:符号计算基础与符号微积分 2. 实验目的和要求 1.掌握定义符号对象的方法 2.掌握符号表达式的运算法则以及符号矩阵运算 3.掌握求符号函数极限及其导数的方法 4.掌握求符号函数定积分和不定积分的方法 3. 实验使用的主要仪器设备和软件 方正商祺N260微机;MATLAB7. 0或以上版本 4. 实验的基本理论和方法 (1)符号函数;sym(x);syms a b …… (2)平方根:sqrt(x) (3)分解因式:factor(s) (4)符号表达式化简:simplify(s) (5)逆矩阵:inv(x) (6)下三角矩阵:tril(x) (7)矩阵行列式的值:det(x)

(8)符号函数求极限:limit (f ,x ,a );limit (f ,x ,a ,‘right ’) (9)符号函数求导:diff (f ,v ,n ) (10)符号函数求不定积分:int (f ,v ) (11)符号函数求定积分:int (f ,v ,a ,b ) 5. 实验内容与步骤 (描述实验中应该做什么事情,如何做等,实验过程中记录发生的现象、中间结果、最终得到的结果,并进行分析说明) (包括:题目,写过程、答案) 题目: 1. 已知x=6,y=5,利用符号表达式求 y x x z -++= 31。 提示:定义符号常数)'5(')'6('sym y sym x ==,。 >> x=sym('6'); >> y=sym('5'); >> z=(x+1)/(sqrt(3+x)-sqrt(y)) z = 7/(3-5^(1/2)) 2. 分解因式:44y x - >> syms x y; >> A=x^4-y^4; >> factor(A) ans = (x-y)*(x+y)*(x^2+y^2) 3. 化简表达式 (1)2121sin cos cos sin ββββ- (2) 123842+++x x x (1) >> syms x y; >> f1=sin(x)*cos(y)-cos(x)*sin(y);

重庆大学数学实验报告七

开课学院、实验室:数统学院DS1421实验时间:2013年03月17日

由于matlab中小数只能是四位,所以我在编程的过程中将距离扩大了1000倍,但是并不会影响我们所求得的结果。 运行程序之后我们得到的结果为: 我们可以得到当金星与地球的距离(米)的对数值为9.9351799时,只一天恰好是25号。 8.编写的matlab程序如下: x=0:400:2800; y=0:400:2400; z=[1180 1320 1450 1420 1400 1300 700 900 1230 1390 1500 1500 1400 900 1100 1060 1270 1500 1200 1100 1350 1450 1200 1150 1370 1500 1200 1100 1550 1600 1550 1380 1460 1500 1550 1600 1550 1600 1600 1600 1450 1480 1500 1550 1510 1430 1300 1200 1430 1450 1470 1320 1280 1200 1080 940]; [xi,yi]=meshgrid(0:5:2800,0:5:2400); zi=interp2(x,y,z,xi,yi,'cubic'); mesh(xi,yi,zi); xlabel('x'),ylabel('y'),zlabel('高程'); title('某山区地貌图'); figure(2); contour(xi,yi,zi,30); 运行程序我们得到的结果如下所示: 山区的地貌图如下所示:

等高线图如下所示: 三、附录(程序等) 6. y=18:2:30;

数学软件实训报告

数学软件应用实训 实训报告 学生姓名韩* 学号13090***** 班级信计1302班 成绩 指导教师 数学与计算机科学学院 2015年12月15日

实训报告评阅

1特殊函数与图形 问题背景与实验目的 著名的Riemann函数大家都很熟悉了,但是关于它的图像你是否清楚呢?除了最上面那几点,其他都很难画吧?你想不想看看下面那些“挤在一起”的点是怎样分布的呢?还有几何中的马鞍面、单叶双曲面等是怎样由直线生成的,是不是也想目睹一下呢?这些,都离不开绘图. 实际上绘图一直是数学中的一种重要手段,借助图形,往往可以化繁为简,使抽象的对象得到明白直观的体现.比如函数的基本性质,一个图形常可以使之一目了然,非常有效.它虽不能代替严格的分析与证明,但在问题的研究过程中,可以帮助研究人员节约相当一部分精力.此外,它还可以使计算、证明、建模等的结果得到更明白易懂的表现,有时,这比科学论证更有说服力. 同时,数学的教学与学习过程也离不开绘图.借助直观的图形,常可以使初学者更容易接受新知识.如数学分析中有不少函数,其解析式着实让人望而生畏,即使对其性质作了详尽的分析,还是感到难明就里;但如果能看到它的图形,再配合理论分析,则问题可以迎刃而解.又如在几何的学习中,会遇到大量的曲线与曲面,也离不开图形的配合. 传统的手工作图,往往费力耗时,效果也不尽理想.计算机恰恰弥补了这个不足,使你可以方便地指定各种视角、比例、明暗,从各个角度进行观察. 本实验通过对函数的图形表示和几个曲面(线)图形的介绍,一方面展示它们的特点,另一方面,也将就Matlab软件的作图功能作一个简单介绍.大家将会看到,Matlab的作图功能非常强大. 实验内容 数学分析中,特别是积分部分,我们接触了不少有趣的函数,由于其中有的不是一一对应的,用上面的方法无法画出它们的图像,这时就只能用参数了. 此外还有些图形只能用参数来画,比如空间曲线,在计算机上不接受“两个曲面的交线”这种表示,所以也只能用参数来实现. 用参数方式作图的关键在于找出合适的参数表示,尤其是不能有奇点,最好也不要用到开方.所以要找的参数最好是有几何意义的.当然这也不可一概而论,需要多积累经验. 实验步骤 1.做出下图所示的三维图形:

关于大学数学实验的心得体会

关于大学数学实验的心得体会数学,在整个人类生命进程中至关重要,从小学到中学,再到大学,乃至更高层次的科学研究都离不开数学,随着时代的发展,人们越来越重视数学知识的应用,对数学课程提出了更高层次的要求,于是便诞生了数学实验。 学期最初,大学数学实验对于我们来说既熟悉又陌生,在我们的记忆中,我们做过物理实验、化学实验、生物实验,故然我们以为数学实验与它们一样,当我们在网上搜索有关数学实验的信息时,我们才知道,大学数学实验作为一门新兴的数学课程在近十年来取得了迅速的发展。数学实验以计算机技术和数学软件为载体,将数学建模的思想和方法融入其中,现在已经成为一种潮流。 当我们怀着好奇的心情走进屈静国老师的数学实验课堂时,我们才渐渐懂得,数学实验是一门有关计算机软件的课程,就像c语言一样,需要编辑运行程序,从而进行数学运算,它不需要自己来运算,就像计算器一样,只要我们自己记下重要程序语句,输入运行程序,便可得到运行结果,大大降低了我们的运算量,给我们生活带来许多便捷,在大一时,我学过c语言,由于这样的基础,让我能够更快的学会并应用此软件。 时间飞逝,转眼间,我们就要结课了,这学期我们学习了mathematics的基础,微积分实验,线性代数实验,概率

论与数理统计实验,数值计算方法及实验。通过这学期的学习,我也积累了些自己的学习方法和心得。首先,我们要在平时上课牢记那些mathematics语言和公式,那些东西就想单词和公式一样,只需要背诵;然后,我们要看几遍书,并多看一下例题;最后,我们要多应用mathematics软件去练习。正所谓熟能生巧,我坚信,只要我们能够做到这三步,我们就能很好的掌握这门课程。 通过学习使用数学软件,数学实验建模,使我们能够从实际问题出发,认真分析研究,建立简单数学模型,然后借助先进的计算机技术,最终找出解决实际问题的一种或多种方案,从而提高了我们的数学思维能力,为我们参加数学竞赛和数学建模打下了坚实的基础,同时也为我们进一步深造和参加工作打下一定的实践基础!

相关文档
最新文档