文档库 最新最全的文档下载
当前位置:文档库 › 利用matlab和数值方法实验三个案例

利用matlab和数值方法实验三个案例

利用matlab和数值方法实验三个案例
利用matlab和数值方法实验三个案例

利用matlab和数值方法实验三个案例

一、人口预测问题实验

一、实验目的

了解马尔萨斯人口模型的数学描述,熟悉数据处理的方法和技巧。

二、实验内容

由中国人口数据资料(单位:亿)

考虑2008年人口预测。

三、实验原理

设人口总数为N(t),根据人口理论的马尔萨斯模型,采用指数函数

N(t) = e a + b t

=+,令对人口数据进行拟合。为了计算方便,将上式两边同取对数,得ln N a bt

y = ln N或N = e y

变换后的拟合函数为

y(t) = a + b t

需要利用数据确定上式中系数a,b。

四、演示实验

据统计,六十年代世界人口数据如下(单位:亿)

由人口数据取对数(y = ln N )计算,得下表

根据表中数据及等式a + b t k = y k ( k = 1,2,……,9)可列出关于两个未知数a 、b

的9个方程的超定方程组(方程数多于未知数个数的方程组)

a + t j b = y j (j= 1,2, (9)

用最小二乘法求解超定方程组即可得拟合系数。 MATLAB 程序

t=1960:1968;t0=2000;

N=[29.72 30.61 31.51 32.13 32.34 32.85 33.56 34.20 34.83]; y=log(N);

A=[ ones(9,1), t' ]; d=A\ y' ;a=d(1),b=d(2) N0=exp(a+b*t0)

x=1960:2001;yy=exp(a+b*x); plot(x,yy,t,N,'o',2000,N0,'o') 计算结果为

a =-33.0383,

b = 0.0186

N (2000) = 63.2336

所以取五位有效数,可得人口数据的指数拟合函数

t e t N 0186.00383.33)(+-=

经计算得2000年人口预测值为:63.2336 (亿)。

五、实验任务

设N(t) = exp( a + b t ),利用数据拟合方法确定指数函数,并预测2000年到2008年九年的我国人口数量。

六、思考题

1、如果不对人口模型中的指数函数作变换,是否也可以求出待定系数a,b ?

2、用线性函数(或二次函数)代替人口模型中的指数函数作数据拟合,这样做有何利弊?

3、如果用六十年代的人口统计数据预测2060年的世界人口,结果会怎样?

二、投入产出模型

一、实验目的

了解投入产出模型的数学描述,从实际问题出发,建立线性代数方程组,应用求齐次方程组通解方法,寻求符合实际情况的答案

二、实验内容

一个国家或区域的经济系统中,各部门(或企业)既有消耗又有生产,或者说既有“投入” 又有“产出”.生产的产品供给各部门和系统外的需求,同时也消耗系统各部门所提供的产品,消耗的目的是为了生产;生产的结果必然要创造新价值. 显然对每一部门,物资消耗和新创造的价值等于它生产的总产值. 这就是“投入”和“产出”之间的平衡关系. 1936年美国经济学家W.Leontief 首先提出并成功地建立了研究国民经济的投入产出的数学模型,他数次主持制定了美国的国民经济投入产出表,且由此对国民经济各部门的结构和各种比例关系进行了定量分析. 这一方法即投入产出法以其重要的应用价值迅速为世界各国经济学界和决策部门所采纳. W.Leontief 因此于1973年获得了Nobel 经济学奖. Lenontief 投入产出法讨论如下特殊的经济问题:在某种特定的经济状态中, 几个产业部门中的每一个为了满足社会各经济部门对产品的总需求, 应具有怎样的产出水平. 在Lenontief 方法中, 一个经济体的生产活动被分散到几个产业部门,并且分析各部门之间产品交易, 先作如下基本假设: (1)

n 个部门的每个仅生产各自特定的一种产品, 即n 个部门和n 种产品存在一一对应关

系,不妨假设第i 个部门生产第i 种产品;

(2) 每个部门仅有一种生产方式, 生产意味着一定量的n 种产品交换成一定数量的单种产品, 而且这个投入-产出模式是稳定的;

(3) 部门j 为生产一单位产品需要ij t

单位的产品投入其中},,2,1{n n i >=∈<.

我们把ij

t 称为投入系数,它通常被假设为不变的,用经济学的术语来说,就是投入比例是

常数

),,2,1(n i x i =表示部门i 在每个固定单位时期内生产i 产品的产出,产出i x 的一部分作

为个部门生产活动所需的投入而消耗掉, 即有∑=n

j j

ij x t 1

单位的i 产品在生产活动中被消耗

掉, 余下

∑=-=n

j j

ij i i x t x d 1

),,2,1(n i =

单位i 产品作为纯产出,我们称这个纯产出

i d 为i 产品的最终需求或对i 产品的外部需求量,

而称n 阶矩阵n n ij R t T ?∈=)(为投入矩阵.

设T n x x x x ),,,(21 =和T

n d d d d ),,,(21 =分别表示产出向量和最终需求向量, 则我

们可得到投入-产出平衡方程组

d x T I =-)(或d Ax =,T I A -=.

投入-产出分析所要解决的问题是:对已知最终需求量d ,求出产出向量x , 使平衡方程组成立. 由最终需求向量d 于产出向量x 的经济意义知0≥d ,0≥x , 因此, 一个经济模型是可行的等价于由它确定的平衡方程组对任意的非负右端都有非负解.

以上讨论的经济模型称为Lenontief 开模型. 三、实验原理

根据投入-产出平衡方程组

d x T I =-)(或d Ax =,T I A -=,

其中x 和d 分别表示产出向量和最终需求向量,矩阵T 投入系数矩阵.

四、 实验任务

设整个经济由农业、工业、服务业三个部门组成, 分别生产农产品、工业品、提供服务三种产品, 并不考虑政府干预和外来投资和输入等因素. 已知用货币计算的投入产出表如下: (单位:亿元)

表中每行表示投入的分配, 每列表示投入的来源.

一般说,在对一个国家或区域的经济用投入产出法进行分析和研究时,首先根据统计数字制定投入产出表,进而计算出有关的技术系数. 对这些系数的分析,可以了解经济系统的结构和各部门之间的数量关系,还可通过求解方程组来获知最终需求的变动对各部门生产的影响

五、演示实验

根据投入产出表, 则投入系数矩阵为

0.150.10.20.30.050.30.20.30T ?? ?= ?

???.

将投入系数矩阵和对三个部门的外部需求输入MATLAB, 程序如下: T=[0.15 0.1 0.2; 0.3 0.05 0.3; 0.2 0.3 0]; d=[50 100 100]’; A=eye(3)-T; x=A\d

得到三个部门的总产出分别为126.7606, 204.2254, 186.6197亿元.

六、思考题

(1) 设有n个部门, 已知投入系数, 给定外部需求, 建立求解各部门总产出的模型;

(2) 设投入产出如上表所给, 如果今年对农业、工业、服务业的外部需求分别为50, 100, 150亿元, 问这三个部门的总产出分别为多少?

(3) 如果三个部门的外部需求分别增加1个单位, 它们的总产出分别增加多少个单位?

(4) 可行的投入产出模型的投入系数应满足什么条件?

三、水塔水流量的估计

一、实验目的

了解建立数学模型的基本方法, 运用插值方法解决实际问题.

二、实验内容

美国某州的各公用水管理机构要求各社区提供各个时刻的用水率以及每天所用的总用

水量.但许多社区并没有测量流入或流出当地水塔的水量的设备,他们只能代之以每小时测量水塔中的水位.更为重要的是,无论什么时候,只要水塔中的水位下降到某一最低水位时,水泵就启动向水塔重新充水直到某一最高水位,但也无法得到水泵的供水量的测量数据.因此,在水泵正在工作时,人们不容易建立水塔中水位与水泵工作时的用水量之间的关系.水泵每天向水塔充水两次.试估计在任何时候,甚至包括水泵正在工作的时间内,水从水塔流出的流量,并估计一天的总用水量.

水塔是一个高12.2米、直径17.4米的圆柱. 按照设计, 水塔水位降至约8.2米时, 水泵自动启动加水; 当水位升高到约10.8米时, 水泵自动停止工作.

可以考虑采用用水率(单位时间的用水量)来反映用水规律, 并通过间隔一段时间测量

水塔里的水位来估算用水率.

表1给出了某个小镇某一天的真实数据, 试估计任何时刻从水塔流出的水流量, 及一

天的总用水量.

表1 水位测量记录 (符号 // 表示水泵启动)

上表给出了从第一次测量开始的以小时为单位的时刻,以及该时刻的高度单位为米的水塔中水位的测量值.

三、实验原理

根据问题的要求, 关键在于确定用水率函数, 即单位时间内用水体积, 记为

()

f t. 如

果能够通过测量数据, 产生若干个时刻的用水率, 也就是

()

f t在若干个点的函数值, 则

()

f t的计算问题就转化为插值问题.

在给出问题解决方法之前, 需要做下面假设.

(1) 水塔中水流量是时间的连续光滑函数, 与水泵工作无关, 流量只取决于水位表, 与水位无关;

(2) 水泵工作与否完全取决于水塔内水位的高低, 且每次加水的工作时间大约为2小时;

(3) 水塔为标准圆柱体, 水塔截面积是常数

2

17.4

()237.8

2

==

(4) 水泵第一次供水时间段为[8.97,10.95], 第二次供水时间段为[20.84, 22.96].

利用水塔截面积是常熟, 得到不同时刻水塔中水的体积如表2.

表2 水塔中水的体积(单位: 时刻(小时), 体积(立方米))

水流速度应该是水塔中水的体积对时间的导数. 由于没有水的体积关于时间的函数表达式, 而只是一个离散的函数值表2, 因此考虑用差商代替导数, 这也是离散反映连续的

常用思想. 为提高精度, 采用二阶差商, 即

2 ()

i i

f t V

=-?

.

因为所有数据被水泵工作分割成三组数据, 对每组数据的中间数据采用中心差商, 前后两个数据采用向前或向后差商, 即:

中心差商公式

22112

18812()i i i i i i i V V V V V t t ++--+-+-+?=

-

向前和向后差商公式

2211432()i i i i i i V V V V t t +++-+-?=

-

212

1342()i i i i i i V V V V t t ----+?=

-.

根据差商计算公式, 计算出水塔中水的流速, 见表3.

表3水塔中水的流速(单位: 时刻(小时), 流速(立方米/小时))

四、模型建立与求解

问题已经转变为根据流速()f t 的一个函数值表, 产生函数()f t 在整个区间(24小时)上的函数或函数值, 插值是最常用的方法, 可以考虑分段线性插值、三次样条插值等等.

通过对不同插值方法的比较, 结合假设, 考虑到流速应该是时间的连续光滑函数, 下面采用三次样条插值模型.

首先由三次样条插值计算得到用水率函数

()

f t, 然后用三次样条插值模型得到的函数

()

f t在时间区间[0,24]上积分得到一天用水的总量.

MATLAB程序如下:

t=[0 0.92 1.84 2.95 3.87 4.98 5.90 7.01 7.93 8.97 10.95 12.03 12.95 13.88 14.98 15.90 16.83 17.93 19.04 19.96 20.84 22.96 23.88 24.99 25.91];

r=[56.52 41.85 35.74 58.06 34.61 20.92 32.51 10.98 31.71

42.79 73.61 77.72 70.43 60.98 69.11

58.51 53.03 56.98 63.41 54.35 54.55 58.70 59.01 52.25 34.24];

x0=t; y0=r;

n=length(x0); dl=x0(n)-x0(1);

x=x0(1):1/3600:x0(n);

y=interp1(x0,y0,x, ‘spline’);

plot(x,y)

如图

五、思考题

请对本模型的优点和确定作出评价。在充水时的数据还可以如何处理?

计算方法实验五个习题

一、生产计划的安排问题

一制造商生产三种不同的化学产品A, B, C. 每一种产品必须经过两边机器M, N的制作, 而生产每一吨不同的产品需要使用两部机器不同的时间, 如下表所示 (单位:小时)

机器M每星期最多可使用80小时, 机器N每星期最多可使用60小时. 假设制造商可以卖出每周所制造出来的所有产品. 经营者不希望使昂贵的机器有空闲时间, 因此想知道在一周内每一种产品须制造多少吨才能使机器被充分利用.

二、闭合经济问题

一个木工,一个电工,一个油漆工,三人相互同意彼此装修他们自己的房子.在装修之前,他们约定每人总共工作10天(包括给自己家干活在内);每人的日工资根据一般的市价在60~80元;每人的日工资数应使得每人的总收入与总支出相等.请为他们制定出一张工作天数的分配方案表,并根据分配方案表确定他们的日工资.

三、交通流量问题

下图给出了每个城市部分单行街道的交通流量(每小时通过的车辆数). 图中有6个路口, 已有9条街道记录了当天的平均车流量. 另有7处的平均车流量未知, 试利用每个路口的进出车流量相等关系推算出这7处的平均车流量.

400 200 200

300 400

300 500

200 300

四、旧车价格预测

某年美国旧车价格的调查资料如下表,其中x i表示轿车的使用年数y i表示相应的平均价格. 试分析用什么形式的曲线来拟合上述的数据,并预测使用4.5年后轿车的平均价格大致为多少?

五、几何物理中的插值问题

采用适当的方法求解下列问题:

1). 轮船的甲板成近似半椭圆面形,为了得到甲板的面积。首先测量得到横向最大相间8.534米;然后等间距地测得纵向高度﹑自左向右分别为:

0.914, 5.060, 7.772, 8.717, 9.083, 9.144, 9.083, 8.992, 8.687, 7.376, 2.073,计算甲板的面积。

2). 物体受水平方向外力作用,在水平直线上运动。测得位移与受力如下表

求 (1) 物体从位移为0到0.4所做的功;(2) 位移为0.4时的速度是多少?

MATLAB实验报告

MATLAB程序设计语言 实 验 报 告 专业及班级:电子信息工程 姓名:王伟 学号:1107050322 日期 2013年6月20日

实验一 MATLAB 的基本使用 【一】 实验目的 1.了解MATALB 程序设计语言的基本特点,熟悉MATLAB 软件的运行环境; 2.掌握变量、函数等有关概念,掌握M 文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力; 3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。 【二】 MATLAB 的基础知识 通过本课程的学习,应基本掌握以下的基础知识: 一. MATLAB 简介 二. MATLAB 的启动和退出 三. MATLAB 使用界面简介 四. 帮助信息的获取 五. MATLAB 的数值计算功能 六. 程序流程控制 七. M 文件 八. 函数文件 九. MATLAB 的可视化 【三】上机练习 1. 仔细预习第二部分内容,关于MATLAB 的基础知识。 2. 熟悉MATLAB 环境,将第二部分所有的例子在计算机上练习一遍 3. 已知矩阵???? ??????=??????????=123456789,987654321B A 。求A*B ,A .* B ,比较二者结果是否相同。并利用MATLAB 的内部函数求矩阵A 的大小、元素和、长度以 及最大值。 程序代码: >> A=[1 2 3;4 5 6;7 8 9]; >> B=[9 8 7;6 5 4;3 2 1]; >> A*B ans =

30 24 18 84 69 54 138 114 90 >> A.*B ans = 9 16 21 24 25 24 21 16 9 两者结果不同 >> [m,n]=size(A) m = 3 n = 3 >> b=sum(A) b = 12 15 18 >> a=length(A) a = 3 >>max(A) ans =

数值计算方法实验指导(Matlab版)

《数值计算方法》实验指导 (Matlab 版) 肇庆学院数学与统计学学院 计算方法课程组

1. 实验名称 实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤) 2. 实验题目 有效数字的损失. 123 )与1000个较小的数(3 10 15)的和,验证 大数吃小数的现象. (3)分别用直接法和秦九韶算法计算多项式 P(x) a 0x n a 1x n 1 在x =1.00037 处的值?验证简化计算步骤能减少运算时间. n 1 对于第(3)题中的多项式P (x ),直接逐项计算需要n (n 1) 2 1 次乘法 和n 次加法,使用秦九韶算法 P(x) (((a °x ajx a 2)x a . 则只需要n 次乘法和n 次加法. 3. 实验目的 验证数值算法需遵循的若干规则. 4. 基础理论 设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算 次数以减少运算时间并降低舍入误差的积累. 两相近的数相减会损失有效数字的个数, 用一 《数值计算方法》实验 1报告 班级: 20xx 级 XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩: ⑴取 z 1016,计算z 1 Z 和 1/(、z 1 Z),验证两个相近的数相减会造成 (2)按不同顺序求一个较大的数( a n 1 X a n

个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间. 5.实验环境 操作系统:Win dows xp ;程序设计语言:Matlab 6.实验过程 (1)直接计算并比较; (2)法1 :大数逐个加1000个小数,法2 :先把1000个小数相加再与大数加; (3)将由高次项到低次项的系数保存到数组A[n]中,其中n为多项式次数. 7.结果与分析 (1)计算的~1V Z = _______________________________ ,1/( ~1 < z) ____________________ . 分析: (2)123逐次加1000个3 10 6的和是_________________________ ,先将1000个3 10 6相 加,再用这个和与123相加得_______________________ . 分析: (3)计算__________ 次的多项式: 直接计算的结果是___________________ ,用时___________________ ; 用秦九韶算法计算的结果是____________________ ,用时 ___________________ 分析:

matlab实验报告

MATLAB 数学实验报告 指导老师: 班级: 小组成员: 时间:201_/_/_

Matlab 第二次实验报告 小组成员: 1 题目:实验四,MATLAB 选择结构与应用实验 目的:掌握if 选择结构与程序流程控制,重点掌握break,return , pause语句的应用。 问题:问题1:验证“哥德巴赫猜想” ,即:任何一个正偶数(n>=6)均可表示为两个质数的和。要求编制一个函数程序,输入一个正偶数,返回两个质数的和。 问题分析:由用户输入一个大于6 的偶数,由input 语句实现。由if 判断语句判断是否输入的数据符合条件。再引用质数判断函数来找出两个质数,再向屏幕输出两个质数即可。 编程:function [z1,z2]=gede(n); n=input('please input n')

if n<6 disp('data error'); return end if mod(n,2)==0 for i=2:n/2 k=0; for j=2:sqrt(i) if mod(i,j)==0 k=k+1; end end for j=2:sqrt(n-i) if mod(n-i,j)==0 k=k+1; end end if k==0 fprintf('two numbers are') fprintf('%.0f,%.0f',i,n- i) break end

end end 结果分析 如上图,用户输入了大于6的偶数返回两个质数5和31,通过 不断试验,即可验证哥德巴赫猜想。 纪录:if判断语句与for循环语句联合嵌套使用可使程序结构更加明晰,更快的解决问题。 2题目:实验四,MATLAB选择结构与应用实验 目的:用matlab联系生活实际,解决一些生活中常见的实际问 题。

主成分分析法matlab实现,实例演示

利用Matlab 编程实现主成分分析 1.概述 Matlab 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是 最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、与其他程序和语言的便捷接口的功能。Matlab 语言在各国高校与研究单位起着重大的作用。主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法,从数学角度来看,这是一种降维处理技术。 1.1主成分分析计算步骤 ① 计算相关系数矩阵 ?? ? ???? ???? ?? ?=pp p p p p r r r r r r r r r R 2 122221 11211 (1) 在(3.5.3)式中,r ij (i ,j=1,2,…,p )为原变量的xi 与xj 之间的相关系数,其计算公式为 ∑∑∑===----= n k n k j kj i ki n k j kj i ki ij x x x x x x x x r 1 1 2 2 1 )() () )(( (2) 因为R 是实对称矩阵(即r ij =r ji ),所以只需计算上三角元素或下三角元素即可。

② 计算特征值与特征向量 首先解特征方程0=-R I λ,通常用雅可比法(Jacobi )求出特征值 ),,2,1(p i i =λ,并使其按大小顺序排列,即0,21≥≥≥≥p λλλ ;然后分别求 出对应于特征值i λ的特征向量),,2,1(p i e i =。这里要求i e =1,即112 =∑=p j ij e ,其 中ij e 表示向量i e 的第j 个分量。 ③ 计算主成分贡献率及累计贡献率 主成分i z 的贡献率为 ),,2,1(1 p i p k k i =∑=λ λ 累计贡献率为 ) ,,2,1(11 p i p k k i k k =∑∑==λ λ 一般取累计贡献率达85—95%的特征值m λλλ,,,21 所对应的第一、第二,…,第m (m ≤p )个主成分。 ④ 计算主成分载荷 其计算公式为 ) ,,2,1,(),(p j i e x z p l ij i j i ij ===λ (3)

MATLAB学习报告

MATLAB学习报告 在上大学之前,计算机在我的印象和生活中都是一种用于娱乐的机器, 玩游戏、上网、看电影、听音乐和偶尔搜索资料。来到大学以后,我对计算机 的用途有了新的认识。大一的一年里我们接触了很多不同类型的软件有作图的,有做视频的等等。我们还学习了c语言,虽然只是学习的一些皮毛,但是我觉 得这一点皮毛足以改变我对计算机的使用和看法了。 首先我们来介绍一下MATLAB,全称是MATrix LABoratory,即矩阵实验室,是Math work公司推出的一套高效率的数值计算和可视化软件。它是当今 科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并高速发展成 计算机语言。它的优点是强大的科学运算、灵活的程序设计流程、高质量的图 形可视化与界面、便捷的与其他程序和语言接口。Matlab软件的功能。它提供 了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、 便捷的与其他程序和语言接口的功能。在国际学术界,Matlab已经被确认为准确、可靠的科学计算标准软件。在国际一流的学术刊物上,尤其是信息科学刊 物上,都可以看到Matlab的应用。 一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于 它有着不同于其他语言的特点。正如同FORTRAN和C等高级语言使人们摆脱了 需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点就是简洁。MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观、最 简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点: 1、Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执 行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特 征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的 书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。 2、Matlab的数据库的可覆盖性,可调用性。我记得C语言中,假如你得 调用一个数值,必须是局部函数中赋值,否则就定义为全局变量。还有在C语 言中数据的变量储存是一个问题,自动的有auto,静态变量有static和register。我们有时候很难记忆,所以数据储存容易出现问题。而Matlab软件的数据是由于MATLAB 语言库函数与用户文件的形式相同所以用户文件可以像 数据库函数一样随意调用。所以用户可根据自己的需要任意扩充函数库。 3、Matlab软件编程的简便性,清晰性。用Matlab软件设计程序,它更 加方便快捷。MATLAB 的基本数据单元是既不需要指定维数、也不需要说明数据类型的矩阵,而且数学表达式和运算规则与通常的习惯相同。因此,在MATLAB 环境下,数组的操作与数的操作一样简单。对比C语言,Matlab确实简单不少。我们在编写程序时简便了许多。例如,求1 1 2 3 5 8 13?这个算法。C语言得用许多的语句去循环算这个算法。而Matlab软件可以首先数据初始化,然后用while去循环,做出循环体,就可以你要多少数据,它会给你多少数据。还有

数值分析Matlab作业

数值分析编程作业

2012年12月 第二章 14.考虑梯形电阻电路的设计,电路如下: 电路中的各个电流{i1,i2,…,i8}须满足下列线性方程组: 12 123 234 345 456 567 678 78 22/ 2520 2520 2520 2520 2520 2520 250 i i V R i i i i i i i i i i i i i i i i i i i i -= -+-= -+-= -+-= -+-= -+-= -+-= -+= 这是一个三对角方程组。设V=220V,R=27Ω,运用追赶法,求各段电路的电流量。Matlab程序如下: function chase () %追赶法求梯形电路中各段的电流量 a=input('请输入下主对角线向量a='); b=input('请输入主对角线向量b='); c=input('请输入上主对角线向量c='); d=input('请输入右端向量d='); n=input('请输入系数矩阵维数n='); u(1)=b(1); for i=2:n l(i)=a(i)/u(i-1); u(i)=b(i)-c(i-1)*l(i); end y(1)=d(1); for i=2:n y(i)=d(i)-l(i)*y(i-1); end x(n)=y(n)/u(n); i=n-1; while i>0 x(i)=(y(i)-c(i)*x(i+1))/u(i); i=i-1; end x 输入如下:

请输入下主对角线向量a=[0,-2,-2,-2,-2,-2,-2,-2]; 请输入主对角线向量b=[2,5,5,5,5,5,5,5]; 请输入上主对角线向量c=[-2,-2,-2,-2,-2,-2,-2,0]; 请输入方程组右端向量d=[220/27,0,0,0,0,0,0,0]; 请输入系数矩阵阶数n=8 运行结果如下: x = 8.1478 4.0737 2.0365 1.0175 0.5073 0.2506 0.1194 0.0477 第三章 14.试分别用(1)Jacobi 迭代法;(2)Gauss-Seidel 迭代法解线性方程组 1234510123412191232721735143231211743511512x x x x x ?????? ??????---????????????=--?????? --?????? ??????---?????? 迭代初始向量 (0)(0,0,0,0,0)T x =。 (1)雅可比迭代法程序如下: function jacobi() %Jacobi 迭代法 a=input('请输入系数矩阵a='); b=input('请输入右端向量b='); x0=input('请输入初始向量x0='); n=input('请输入系数矩阵阶数n='); er=input('请输入允许误差er='); N=input('请输入最大迭代次数N='); for i=1:n for j=1:n if i==j d(i,j)=a(i,j); else d(i,j)=0; end end end m=eye(5)-d\a; %迭代矩阵 g=d\b; x=m*x0+g; k=1; while k<=N %进行迭代 for i=1:5 if max(abs(x(i)-x0(i))) >er x=m*x+g; k=k+1;

数值分析的matlab实现

第2章牛顿插值法实现 参考文献:[1]岑宝俊. 牛顿插值法在凸轮曲线修正设计中的应用[J]. 机械工程师,2009,10:54-55. 求牛顿插值多项式和差商的MA TLAB 主程序: function[A,C,L,wcgs,Cw]=newpoly(X,Y) n=length(X);A=zeros(n,n);A(:,1) =Y'; s=0.0;p=1.0;q=1.0;c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1)); end b=poly(X(j-1));q1=conv(q,b);c1=c1*j;q=q1; end C=A(n,n);b=poly(X(n));q1=conv(q1,b); for k=(n-1):-1:1 C=conv(C,poly(X(k)));d=length(C);C(d)=C(d)+A(k,k); end L(k,:)=poly2sym(C);Q=poly2sym(q1); syms M wcgs=M*Q/c1;Cw=q1/c1; (1)保存名为newpoly.m 的M 文件 (2)输入MA TLAB 程序 >> X=[242,243,249,250]; >> Y=[13.681,13.526,13.098,13.095]; >> [A,C,L,wcgs,Cw]=newpoly(X,Y) 输出3阶牛顿插值多项式L 及其系数向量C 差商的矩阵A ,插值余项wcgs 及其 ) ()()1(ξ+n n f x R 的系数向量Cw 。 A = 13.6810 0 0 0 13.5260 -0.1550 0 0 13.0980 -0.0713 0.0120 0 13.0950 -0.0030 0.0098 -0.0003 C = 1.0e+003 *

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。 举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表 示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1: 举例2:

matlab 实验案例 理发店模拟

实验案例理发店模拟 1 实验案例 (1) 1.1 案例:理发店系统研究 (1) 1.1.1 问题分析 (2) 1.1.2 模型假设 (2) 1.1.3 变量说明 (2) 1.1.4 模型建立 (2) 1.1.5 系统模拟 (3) 1.1.6 计算机模拟算法设计 (4) 1.1.7 计算机模拟程序 (5) 1.1.8 思考题 (8) 1实验案例 1.1 案例:理发店模拟 例子:一个理发店有两位服务员A和B,顾客们随机到达店内,其中60%的顾客仅需剪发,每位花5分钟时间,另外40%顾客既要剪发又要洗发,每位用时8分钟。 理发店是个含有多种随机因素的系统,请对该系统进行模拟,并对其进行评判。 (准备怎么做) 可供参考内容 “排队论”,“系统模拟”,“离散系统模拟”,“事件调度法”

1.1.1 问题分析 理发店系统包含诸多随机因素,为了对其进行评判就是要研究其运行效率, 从理发店自身利益来说,要看服务员工作负荷是否合理,是否需要增加员工等考 虑。从顾客角度讲,还要看顾客的等待时间,顾客的等待队长,如等待时间过长 或者等待的人过多,则顾客会离开。理发店系统是一个典型的排队系统,可以用 排队论有关知识来研究。 1.1.2 模型假设 1. 60%的顾客只需剪发,40%的顾客既要剪发,又要洗发; 2. 每个服务员剪发需要的时间均为5分钟,既剪发又洗发则花8分钟; 3. 顾客的到达间隔时间服从指数分布; 4. 服务中服务员不休息。 1.1.3 变量说明 u :剪发时间(单位:分钟),u=5m ; v: 既剪发又理发花的时间(单位:分钟),v=8m ; T : 顾客到达的间隔时间,是随机变量,服从参数为λ的指数分布,(单位: 分钟) T 0:顾客到达的平均间隔时间(单位:秒),T 0=λ 1; 1.1.4 模型建立 由于该系统包含诸多随机因素,很难给出解析的结果,因此可以借助计算机 模拟对该系统进行模拟。 考虑一般理发店的工作模式,一般是上午9:00开始营业,晚上10:00左 右结束,且一般是连续工作的,因此一般营业时间为13小时左右。 这里以每天运行12小时为例,进行模拟。 这里假定顾客到达的平均间隔时间T 0服从均值3分钟的指数分布, 则有 3小时到达人数约为603 603=?人, 6小时到达人数约为1203 606=?人, 10小时到达人数约为2003 6010=?人, 这里模拟顾客到达数为60人的情况。 (如何选择模拟的总人数或模拟总时间)

matlab学习心得体会(精选3篇)

matlab学习心得体会(精选3篇) matlab学习心得体会一:matlab学习心得matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。 本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。 matlab学习心得体会二:matlab学习心得(463字) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比c语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab学习心得体会三:学习matlab的心得(817字) 这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。

第2讲 matlab的数值分析

第二讲MATLAB的数值分析 2-1矩阵运算与数组运算 矩阵运算和数组运算是MATLAB数值运算的两大类型,矩阵运算是按矩阵的运算规则进行的,而数组运算则是按数组元素逐一进行的。因此,在进行某些运算(如乘、除)时,矩阵运算和数组运算有着较大的差别。在MATLAB中,可以对矩阵进行数组运算,这时是把矩阵视为数组,运算按数组的运算规则。也可以对数组进行矩阵运算,这时是把数组视为矩阵,运算按矩阵的运算规则进行。 1、矩阵加减与数组加减 矩阵加减与数组加减运算效果一致,运算符也相同,可分为两种情况: (1)若参与运算的两矩阵(数组)的维数相同,则加减运算的结果是将两矩阵的对应元素进行加减,如 A=[1 1 1;2 2 2;3 3 3]; B=A; A+B ans= 2 2 2 4 4 4 6 6 6 (2)若参与运算的两矩阵之一为标量(1*1的矩阵),则加减运算的结果是将矩阵(数组)的每一元素与该标量逐一相加减,如 A=[1 1 1;2 2 2;3 3 3]; A+2 ans= 3 3 3 4 4 4 5 5 5 2、矩阵乘与数组乘 (1)矩阵乘 矩阵乘与数组乘有着较大差别,运算结果也完全不同。矩阵乘的运算符为“*”,运算是按矩阵的乘法规则进行,即参与乘运算的两矩阵的内维必须相同。设A、B为参与乘运算的 =A m×k B k×n。因此,参与运两矩阵,C为A和B的矩阵乘的结果,则它们必须满足关系C m ×n 算的两矩阵的顺序不能任意调换,因为A*B和B*A计算结果很可能是完全不一样的。如:A=[1 1 1;2 2 2;3 3 3]; B=A;

A*B ans= 6 6 6 12 12 12 18 18 18 F=ones(1,3); G=ones(3,1); F*G ans 3 G*F ans= 1 1 1 1 1 1 1 1 1 (2)数组乘 数组乘的运算符为“.*”,运算符中的点号不能遗漏,也不能随意加空格符。参加数组乘运算的两数组的大小必须相等(即同维数组)。数组乘的结果是将两同维数组(矩阵)的对应元素逐一相乘,因此,A.*B和B.*A的计算结果是完全相同的,如: A=[1 1 1 1 1;2 2 2 2 2;3 3 3 3 3]; B=A; A.*B ans= 1 1 1 1 1 4 4 4 4 4 9 9 9 9 9 B.*A ans= 1 1 1 1 1 4 4 4 4 4 9 9 9 9 9 由于矩阵运算和数组运算的差异,能进行数组乘运算的两矩阵,不一定能进行矩阵乘运算。如 A=ones(1,3); B=A; A.*B ans= 1 1 1 A*A ???Error using= =>

matlab实验报告

2015秋2013级《MATLAB程序设计》实验报告 实验一班级:软件131姓名:陈万全学号:132852 一、实验目的 1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。 2、掌握MATLAB常用命令的使用。 3、掌握MATLAB帮助系统的使用。 4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。 二、实验内容 1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。 图1 MATLAB工作桌面 2、MATLAB的常用命令与系统帮助: (1)系统帮助 help:用来查询已知命令的用法。例如已知inv是用来计算逆矩阵,键入help inv即可得知有关inv命令的用法。 lookfor:用来寻找未知的命令。例如要寻找计算反矩阵的命令,可键入lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。找到所需的

命令後,即可用help进一步找出其用法。 (2)数据显示格式: 常用命令:说明 format short 显示小数点后4位(缺省值) format long 显示15位 format bank 显示小数点后2位 format + 显示+,-,0 format short e 5位科学记数法 format long e 15位科学记数法 format rat 最接近的有理数显示 (3)命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。 具体用法如下: ↑----重调前一行(可重复使用调用更早的) ↓----重调后一行 →----前移一字符 ←----后移一字符 home----前移到行首 end----移动到行末 esc----清除一行 del----清除当前字符 backspace----清除前一字符 (4)MATLAB工作区常用命令: who--------显示当前工作区中所有用户变量名 whos--------显示当前工作区中所有用户变量名及大小、字节数和类型 disp(x) -----显示变量X的内容 clear -----清除工作区中用户定义的所有变量 save文件名-----保存工作区中用户定义的所有变量到指定文件中 load文件名-----载入指定文件中的数据

matlab实验案例,节水洗衣机(优选.)

1 实验案例 (1) 1.1 案例:节水洗衣机 (1) 1.1.1 问题重述与分析 (2) 1.1.2 基本假设及说明 (2) 1.1.3 符号和变量说明 (2) 1.1.4 建模准备 (3) 1.1.5 模型建立 (4) 1.1.6 模型求解 (4) 1.1.7 思考题 (10) 1实验案例 1.1 案例:节水洗衣机 问题:1996年全国赛B题节水洗衣机 我国淡水资源有限,节约用水人人有责,洗衣机在家庭用水中占有相当大的份额,目前洗衣机已非常普及,节约洗衣机用水十分重要。假设在放入衣物和洗涤剂后洗衣机的运行过程为:加水—漂洗—脱水—加水—漂洗—脱水—…—加水—漂洗—脱水(称“加水—漂洗—脱水”为运行一轮)。请为洗衣机设计一种程序(包括运行多少轮、每轮加水量等),使得在满足一定洗涤效果的条件下,总用水量最少。选用合理的数据进行运算,对照目前常用的洗衣机的运行情况,对你的模型和结果出评价。

洗衣机的节水优化模型 摘要本文通过分析洗衣机的洗衣过程,认为是一次性溶解、多次稀释的过程。据此建立非线性规划模型,并利用迭代公式和最优化原理,得出最少用水量的判断公式和代数解。以海棠洗衣机为例,通过对比,利用我们的模型算出的用水量比厂家提供的数据要少,从而说明所建模型的优越性。最后,根据模型解,给出最少用水量与脏衣服的重量的关系图,并从中得出有趣的结论,也给厂家提供一个节约用水的模型。 1.1.1问题重述与分析 对洗衣机的运行进行设计,主要目的是为了节约用水量。在满足洗涤效果的前提下使得用水量最少。因此,这是一个典型的最优化问题,目标为洗衣总用水量最少,主要的决策为洗多少轮以及每轮加水量的问题。而一般洗衣只是第一次加水漂洗时才放洗涤剂,而过后则是清水漂洗,通过化学原理,可以将第1轮洗涤后的各轮洗涤看成是不断的稀释过程。为了评价洗涤效果,可用衣服上残留的污物质量与洗涤前污物质量之比作为评价指标。在设计每轮加水量时,要考虑洗衣机本身洗衣同的最大容积,运行的最低加水量。 1.1.2基本假设及说明 1.洗衣机一次用水量有最高限和最低限,能连续补充在限度内的任意水量; 2.洗衣机每轮运行过程为:加水-漂洗-脱水; 3.仅在第一轮运行时加上洗涤剂,在后面的运行轮中仅有稀释作用; 4.洗衣时所加的洗涤剂适量,漂洗时间足够,能使污垢一次溶解,忽略不能溶解的污垢; 5.脱水后的衣服质量与干衣服的重量成正比; 6.每缸洗衣水只用一次; 1.1.3符号和变量说明 A:污物的质量(kg);

MATLAB实训小结

实训小结 为期一周的MATLAB实训在学习与忙碌中度过了,时间虽短,但我们却真真切切的学到了知识,在现实工作中可以运用的知识。 在第一节课,我们便了解到MATLAB是世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面设计等。对MATLAB的系统结构和特点等,老师也向我们做出了大致的讲解,同时,我们知道了MATLAB程序的一些最基本的应用和运算,并能够进行一些简单的编程。就这样,实训的第一天大家都在期待和兴奋中度过。 接下来的时间,主要是以大家自学和练习为主,老师进行辅导和考察。在学习过程中,不懂的可以相互之间小声的讨论,也可向老师请教,但必须确保自己真正学到了知识,认真的看书并进行编程练习。一天的学习接近尾声时,就是老师考察大家一天的收获的时候了,老师总会出一些小题目让大家编出它的程序,虽然有的题目对我们来说还是有些难度的,但是在老师的指点下我们还是编出程序的,当我们看到自己编的程序运行正确时,总是会万分的兴奋,充满成就感。 就这样,仅仅一个星期的实训就结束了,虽然不能十分熟悉和运用MATLAB的所有程序,但是我们却打下了一定的基础,

在以后,当我们真正开始深入学习这门学问时,我们对它将不会再那么陌生,学起来也将轻松许多。这次实训为我们提供了一个很好的学习机会,唯一不足的就是时间有点短,我们不能在这段时间里学到更多的知识,因此,在这一周打下的基础上,我们需要用自己的努力去自学,以获取更多的知识。 知识是无穷无尽的,知识的获取需要一颗上进的心,老师将我们领进了门,下面的路就应该我们自己去走,即是充满荆棘,也要努力奋斗往前冲。

数值分析的MATLAB程序

列主元法 function lianzhuyuan(A,b) n=input('请输入n:') %选择阶数A=zeros(n,n); %系数矩阵A b=zeros(n,1); %矩阵b X=zeros(n,1); %解X for i=1:n for j=1:n A(i,j)=(1/(i+j-1)); %生成hilbert矩阵A end b(i,1)=sum(A(i,:)); %生成矩阵b end for i=1:n-1 j=i; top=max(abs(A(i:n,j))); %列主元 k=j; while abs(A(k,j))~=top %列主元所在行 k=k+1; end for z=1:n %交换主元所在行a1=A(i,z); A(i,z)=A(k,z); A(k,z)=a1; end a2=b(i,1); b(i,1)=b(k,1); b(k,1)=a2; for s=i+1:n %消去算法开始m=A(s,j)/A(i,j); %化简为上三角矩阵 A(s,j)=0; for p=i+1:n A(s,p)=A(s,p)-m*A(i,p); end b(s,1)=b(s,1)-m*b(i,1); end end X(n,1)=b(n,1)/A(n,n); %回代开始 for i=n-1:-1:1 s=0; %初始化s for j=i+1:n s=s+A(i,j)*X(j,1);

end X(i,1)=(b(i,1)-s)/A(i,i); end X 欧拉法 clc clear % 欧拉法 p=10; %贝塔的取值 T=10; %t取值的上限 y1=1; %y1的初值 r1=1; %y2的初值 %输入步长h的值 h=input('欧拉法please input number(h=1 0.5 0.25 0.125 0.0625):h=') ; if h>1 or h<0 break end S1=0:T/h; S2=0:T/h; S3=0:T/h; S4=0:T/h; i=1; % 迭代过程 for t=0:h:T Y=(exp(-t)); R=(1/(p-1))*exp(-t)+((p-2)/(p-1))*exp(-p*t); y=y1+h*(-y1); y1=y; r=r1+h*(y1-p*r1); r1=r; S1(i)=Y; S2(i)=R; S3(i)=y; S4(i)=r; i=i+1; end t=[0:h:T]; % 红线为解析解,'x'为数值解 plot(t,S1,'r',t,S3,'x')

MATLAB实验报告

实验一 MATLAB 环境的熟悉与基本运算 一、实验目的及要求 1.熟悉MATLAB 的开发环境; 2.掌握MATLAB 的一些常用命令; 3.掌握矩阵、变量、表达式的输入方法及各种基本运算。 二、实验内容 1.熟悉MATLAB 的开发环境: ① MATLAB 的各种窗口: 命令窗口、命令历史窗口、工作空间窗口、当前路径窗口。 ②路径的设置: 建立自己的文件夹,加入到MATLAB 路径中,并保存。 设置当前路径,以方便文件管理。 2.学习使用clc 、clear ,了解其功能和作用。 3.矩阵运算: 已知:A=[1 2;3 4]; B=[5 5;7 8]; 求:A*B 、A.*B ,并比较结果。 4.使用冒号选出指定元素: 已知:A=[1 2 3;4 5 6;7 8 9]; 求:A 中第3列前2个元素;A 中所有列第2,3行的元素; 5.在MATLAB 的命令窗口计算: 1) )2sin(π 2) 5.4)4.05589(÷?+ 6.关系及逻辑运算 1)已知:a=[5:1:15]; b=[1 2 8 8 7 10 12 11 13 14 15],求: y=a==b ,并分析结果 2)已知:X=[0 1;1 0]; Y=[0 0;1 0],求: x&y+x>y ,并分析结果 7.文件操作 1)将0到1000的所有整数,写入到D 盘下的文件 2)读入D 盘下的文件,并赋给变量num

8.符号运算 1)对表达式f=x 3 -1 进行因式分解 2)对表达式f=(2x 2*(x+3)-10)*t ,分别将自变量x 和t 的同类项合并 3)求 3(1)x dz z +? 三、实验报告要求 完成实验内容的3、4、5、6、7、8,写出相应的程序、结果

matlab实习总结

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连 matlab开发工作界面 接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用 Matlab是一个强大的数学工具,它的应用广泛,涉及到各个领域.它使用起来十分方便,不用麻烦去定义变量.它的绘图能力很强,甚至可以模拟出三维视图.矩阵是它应用的核心,许多工程繁琐的运算都需要靠矩阵来化简,这正是它的生命力所在.但是,他的函数很多,开始学时记的比较痛苦,我已经深深感觉到了.不过看多了也就熟了,感觉和学五笔差不多.它的语法简单,像我学过C语言的学起来还是蛮容易的.它的数组定义十分符合自然,是从1开始的,数组元素的调用也很

接近数学的表达.此外,函数的名字也很符合英文规则,反正我用得很开心就是了. 通过学习matlab,我又一次锻炼了自己的思维.它学起来得心应手也让我明白了学习一门语言(c语言)对学习其他语言的帮助指导作用.同时,它也加强了我理论联系实际的能力.这是一个专业课的基础工具,学好它是必要的. 在第一章中,讲的是一些matlab的入门技术,除了一些基本操作与介绍之外,还初步认识了简单指令的编制,认识了一些matlab 的特殊符号,例如运算用到的加减乘除。(+—*/)对我来说还是比较容易上手的。 但在第二章开始,开始有点难度了,在第二章我接触到两种数据类型,一个是double,还有就是char,另外还介绍了赋值语句,数学计算,常用函数,输入输出语句和数据文件。其中让我最容易混淆的就是运算的优先等级,当所需要运算的公式较长时,常常因没有弄好运算优先级而把程序编错,这一章也接触了更多的特殊符号,在多次看书之后,还是顺利把老师所布置的作业完成了。 在第三章中,我接触到基本的matlab选择结构,还有控制这个结构的关系运算符和逻辑运算符。也就是if结构。这个结构对运算起到很大作用,跟elseif配合使用的话,就可以将很图方法。还有,我们学习如何控制画图的附加功能,例如线的宽度和符号的颜色。这些属性可由指定的“propertyname”和值Value决定,“propertyname”和值Value将出现在plot命令的数据后。

同济大学数值分析matlab编程题汇编

MATLAB 编程题库 1.下面的数据表近似地满足函数2 1cx b ax y ++=,请适当变换成为线性最小二乘问题,编程求最好的系数c b a ,,,并在同一个图上画出所有数据和函数图像. 625 .0718.0801.0823.0802.0687.0606.0356.0995 .0628.0544.0008.0213.0362.0586.0931.0i i y x ---- 解: x=[-0.931 -0.586 -0.362 -0.213 0.008 0.544 0.628 0.995]'; y=[0.356 0.606 0.687 0.802 0.823 0.801 0.718 0.625]'; A=[x ones(8,1) -x.^2.*y]; z=A\y; a=z(1); b=z(2); c=z(3); xh=-1:0.1:1; yh=(a.*xh+b)./(1+c.*xh.^2); plot(x,y,'r+',xh,yh,'b*')

2.若在Matlab工作目录下已经有如下两个函数文件,写一个割线法程序,求出这两个函数 10 的近似根,并写出调用方式: 精度为10 解: >> edit gexianfa.m function [x iter]=gexianfa(f,x0,x1,tol) iter=0; while(norm(x1-x0)>tol) iter=iter+1; x=x1-feval(f,x1).*(x1-x0)./(feval(f,x1)-feval(f,x0)); x0=x1;x1=x; end >> edit f.m function v=f(x) v=x.*log(x)-1; >> edit g.m function z=g(y) z=y.^5+y-1; >> [x1 iter1]=gexianfa('f',1,3,1e-10) x1 = 1.7632 iter1 = 6 >> [x2 iter2]=gexianfa('g',0,1,1e-10) x2 = 0.7549 iter2 = 8

相关文档