文档库 最新最全的文档下载
当前位置:文档库 › MATLAB软件与基础数学实验

MATLAB软件与基础数学实验

MATLAB软件与基础数学实验
MATLAB软件与基础数学实验

MATLAB 软件与基础数学实验

实验1 MATLAB 基本特性与基本运算

例1-1 求[12+2×(7-4)]÷32的算术运算结果。

? (12+2*(7-4))/3^2 ? ans = 2

例1-2 计算5!,并把运算结果赋给变量y

? y=5*4*3*2*1 ? y =120

例1-3

? sqrt (2) % 计算2开平方 ? ans = 1.4142

例1-4

? x = sqrt (2); % 计算2开平方并赋值给变量x (不显示) ? x % 查看x 的赋值情况 ? x = 1.4142

例1-5 设

75,24=-=b a ,计算|)tan(||)

||sin(|b a b a ++的值。

? a=pi/180*(-24); %转换为弧度值且不显示 ? b=pi/180*75; %转换为弧度值且不显示 ? z=sin(abs(a)+abs(b))/sqrt(tan(abs(a+b))) %计算结果并显示

? z =0.8888

例1-6 设三角形三边长为2,3,4===c b a ,求此三角形的面积。

? a=4;b=3;c=2; %输入边长值且不显示 ? s=(a+b+c)/2;

? A=s*(s-a)*(s-b)*(s-c); %计算面积平方且不显示 ? A=sqrt(A) %计算面积并显示

? A = 2.9047

例1-7 设

??????????=101654321A ,??

???

?????-=112311021B ,计算||,,A AB B A +,1-A 。 ? A=[1,2,3;4,5,6;1,0,1];

? B=[-1 2 0;1 1 3;2 1 1]; ?B A +

?ans= 0 4 3 5 6 9 3 1 2 ?B A *

?Ans=7 7 9 13 19 21 1 3 1

?)(det A % det 为求方阵的行列式命令

?ans = -6

?)(inv A %inv 为方阵的求逆命令 ?ans = -0.8333 0.3333 0.5000 -0.3333 0.3333 -1.0000 0.8333 -0.3333 0.5000

例1-8 显示上例中矩阵A 的第2行第3列元素,并对其进行修改.

? A(2,3) ? A(2,3) = 6

若想把该元素改为-1,只要输入下列语句: ? A(2,3)= -1;

例1-9 分别画出函数x x y cos 2

=和

x x

z sin =

在区间[-6π,6π]上的图形。

? x= (-6 : 0.1 : 6)*pi; % 从-6pi 到6pi 以0.1pi 为步长生成向量x

? y=x .^2 .* cos(x); % 产生与x 对应的函数值向量y(两向量对应元素乘积,用.*)

? z=sin(x) ./ (x+eps); % 产生与x 对应的函数值向量z(两向量对应元素相除,用./)

? subplot (1,2,1) % 分图形窗口为1行2列,并在第一个子窗中绘图 ? plot (x,y,'linewidth',2) % 画函数y 的曲线,默认为蓝色(参看实验2) ? grid %在第一个子窗中加坐标网格 ? subplot(1,2,2) %在第二个子窗中绘图

? plot(x,z,'linewidth',2) % 画函数z 的曲线,默认为蓝色(参看实验2) ? grid %在第二个子窗中加坐标网格

例1-10 试求方程组??????????=?????????

?--432201624121X 的解。 ? a=[1,2,1;4,2,-6;-1,0,2]; % 输入系数矩阵a

? b=[2;3;4]; % 输入右端列向量b ? d=det(a) %求系数矩阵的行列式 ? d= 2

? c=inv(a) %求系数矩阵的逆阵 ? c = 2.0000 -2.0000 -7.0000 -1.0000 1.5000 5.0000 1.0000 -1.0000 -3.0000

? x=c*b %矩阵左逆乘,结果为方程组的解 ? x = -30.0000

22.5000 -13.0000

? X=a\b %用\除法直接求方程组的解X (与上述x 相同) ? X = -30.0000

22.5000 -13.0000

? disp ([a,b,x]) %显示增广矩阵及解向量 ? 1.0000 2.0000 1.0000 2.0000 -30.0000 4.0000 2.0000 -6.0000 3.0000 22.5000 -1.0000 0 2.0000 4.0000 -13.0000

例1-11试求矩阵方程

?

?

?

?

?

?

=

?

?

?

?

?

?

?

?

?

?

-

-

1

1

1

3

2

1

2

1

6

2

4

1

2

1

X

的解。

? a=[1,2,1;4,2,-6;-1,0,2] ; % 输入系数矩阵a

? b=[1 2 3;1 1 1] ; % 输入右端矩阵b

?X=b/a % 用/除法直接求方程组的解X ?X = 3.0000 -2.0000 -6.0000

2.0000 -1.5000 -5.0000

例1-12 建立同时计算

n

b

a

y)

(

1

+

=,n

b

a

y)

(

2

-

=的函数。即任给a,b,n三个数,返

回y1,y2.

function [y1 , y2]=fun1(a , b , n)

% fun1 is a function used by DEMO y1=(a+b)^n, y2=(a-b)^n

% Copyright by XJTU

y1=(a+b).^n ;

y2=(a-b).^n;

例1-13设

22

11

()6

(0.3)0.01(0.9)0.04

f x

x x

=+-

-+-+,试画出在[0,2]上的曲线

段。

? x=0 : 0.01 : 2; %生成自变量x

? y=1 ./ ((x-0.3) .^2+0.01)+1 ./ ((x-0.9) .^2+0.04)-6; %生成函数值y,注意点运算

?plot(x,y,'linewidth',2) %画函数曲线

?grid%加坐标网格

? f=inline(' 1 ./ ((x-0.3) .^2+0.01)+1 ./ ((x-0.9) .^2+0.04)-6 '); %生成数值函数f(x)

?fplot(f,[0,2]) % 画函数f在[0,2]上的曲线

? grid % 加坐标网格

例如:对于例题1-13中所定义的f(x),求其零点c.

? f=inline(' 1 ./ ((x-0.3) .^2+0.01)+1 ./ ((x-0.9) .^2+0.04)-6 '); %生成数值函数f(x)

? c=fzero(f , [0,2]) % 求函数f在[0,2]上的零点c,此处要求f(0)f(2)<0

?c= 1.2995

?fzero(f , 1) % 求函数f在x=1附近的零点

?ans = 1.2995

例如:求一元函数最小值(fminbnd命令)

? fy=inline('1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6');

? [xmin,fmim]=fminbnd(fy,0.2,0.8) %函数fy在[0.2,0.8]上最小值点及最小值

?xmin = 0.6370

?fmim = 11.2528

? ff=inline('-1./((x-0.3).^2+0.01)-1./((x-0.9).^2+0.04)+6'); %函数ff=-fy

? [x,y]=fminbnd(ff,0.2,0.8); %函数ff在[0.2,0.8]上最小值点及最小值

? xmax=x

?xmax = 0.3004

? fmax=-y

?fmax = 96.5014

例如:求例题1-13中所定义f(x)在[0,1]上的定积分?10)d

(x

x

f

.

? f=inline('1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6');

? I=quad(f,0,1) % 求f(x)在[0,1]上定积分

? I = 29.8583

例1-14 求二重积分???]

2,1[]1,0[d σ

xy 及三重积分?????+]

1,0[]1,0[]1,0[2)(dxdydz

z xe

y

? g=inline('x .*y', 'x','y'); % 建立二元函数g(x,y)=xy ? I=dblquad(g,0,1,1,2) % 求g(x,y)在[0,1] ×[1,2]上的二重积分 ? I = 0.7500

? h=inline('x .*exp(y)+z.^2', 'x','y','z'); % 建立三元函数2

),,(z xe z y x h y

+= ? I=triplequad(h,0,1,0,1,0,1) % 求h(x,y,z)在[0,1] ×[0,1] ×[0,1]上的三重积分 ? I = 1.1925

例1-15 已知5652

3

++-=t t t y ,设该曲线在区间[0,x ]上所围曲边梯形面积为s ,试求当s 分别为5,10时的x 的值。

分.

(1) 对于s=5 ? f=inline('1/4*x^4-5/3*x^3+3*x^2+5*x-5') ; %建立函数

5

5335

41)(234-++-=x x x x x f

? x=fzero(f,[0,5]) %求解方程0)(=x f 在[0,5]上的根

? x =0.7762 (2) 对于s=10

?g=inline('1/4*x^4-5/3*x^3+3*x^2+5*x-10');

? x=fzero(g,[0,10]) %求解方程0)(=x g 在[0,10]上的根 ? x =1.5179

例1-16 利用MATLAB 命令求解无理数的近似值。 (1) 用函数零点命令(fzero )求无理数e 的近似值;

(2) 用定积分计算命令(trapz ,quad ,quadl )求无理数2ln 的近似值。

(提示:e =2.7182818284…,2ln =0.6931471806…)

(1) 无理数e 可以看成是方程 01ln =-x 在x =2附近的实根,于是可以用fzero 来求解。 ? f=inline('log(x)-1') ; %建立函数1ln )(-=x x f

? x0=fzero(f,2); %求解方程0)(=x f 在x =2附近的根 ? e =vpa(x0,10) %显示x0小数点后10位 ? e =2.7182818284

(2) 由于无理数

?

+=1

0 112ln dx x ,于是可以用trapz ,quad ,quadl 命令分别来求解。

用梯形法(trapz )近似计算

? X=0:0.01:1; %产生[0,1]区间上的划分向量 ? Y=1./(1+X); %求对应的分点处的函数值向量 ? a=trapz (X,Y); %求用梯形法求出积分近似值 ? ln2 =vpa(a,10) %显示a 小数点后10位

? ln2 =0.6931534305 (注意:已精确到小数点后4位)

用高阶方法(quad ,quadl )近似计算

? f=inline('1./(1+x)'); %建立被积函数f(x)

? a=quad (f,0,1); %用辛浦生方法求f 在[0,1]上的积分近似值 ? ln2 =vpa(a,10) %显示a 小数点后10位 ? ln2 =0.6931471999 (注意:已精确到小数点后7位)

? a=quadl (f,0,1); %用高阶方法求f 在[0,1]上的积分近似值 ? ln2 =vpa(a,10) %显示a 小数点后10位 ? ln2 =0.6931471861 (注意:已精确到小数点后9位)

例1-17 求极限h x h x h sin )sin(lim

0-+→。

?syms h

? fx= sym ('(sin(x+h)-sin(x))/h') ; %建立符号函数fx ? limit(fx,h,0) %求fx : h->0的极限 ? ans=cos(x)

例1-18:设)sin(),(y y x y x f n

+=,求.,,,222y x f y

f y f x f ????????? ? syms x y n %声明符号变量,注意变量间必须用空格分开

? fx=x^n*y+sin(y); %建立符号函数

? diff(fx) %对变量x(默认)求一阶导数(偏导数)

? ans =x^n*n/x*y 即

y nx n 1- ? diff(fx, y) %对变量y 求一阶导数(偏导数)

? ans =x^n+cos(y)

? diff(fx, y, 2) %对变量y 求二阶导数(偏导数) ? ans =-sin(y)

? diff(diff(fx,x), y) %先对x 求导再对y 求导(二阶混合偏导数) ? ans = x^n*n/x 即 1

-n nx

例1-19:求

?+dx

x xy 21,

dy

x xy t

?+ 0 21,

dy x xy

dx x

?

?

+ 0

2

1

1,

.

)(1 0

1 0

1 0

?

?

?---++y

x x

dz z y x dy dx

? syms x y z %声明符号变量,注意变量间必须用空格分开 ? f1=x*y/(1+x^2) ; %建立符号函数 ? f2=x+y+z;

? int(f1) %对f1关于变量x(默认)求不定积分

? ans =1/2*y*log(1+x^2) %即 )

1l n (21

2x y +

?syms t

? int(f1,0, t ) %对f1关于变量x(默认)在[0,t]上求定积分

? ans =1/2*log(1+t^2)*y %即 )

1l n (21

2t y +

? int(int(f1,y,0, sqrt(x)),x,0,1 ) %对f1先求对y 的积分再求对x 的积分(二重积分)

? ans =1/2-1/8*pi %即 .

8121π-

? int(int(int(f2,z,0, 1-x-y),y,0,1-x),x,0,1 ) %对f2先对zy 的积分再求对x 的积分(二重积

分)

? ans =1/8

级数求和(symsum )

? syms a k

? symsum(1/k,1,inf) %求级数

+++++k 131211 (ans=inf 即∞)

? symsum(1/(k*(k+1)),1,inf) %求级数 ++?++?+?)1(1321211k k (ans=1)

? symsum(a*1/3^k,k,0,inf) %求级数

+++++k a a a a 3332 (ans= 3/2*a)

泰勒展开(taylor )

? syms x

? fy=1/(1+x+x^2)

? f=taylor(fy) %求fx 对自变量x(默认)在x=0点(默认)泰勒展开前6项(默认) ? f=taylor(fy,8,1) %求fx 对自变量x(默认)在x=1点泰勒展开式前8项 方程求根(solve )

? fx=sym('a*x^2+b*x+c') ; %建立符号函数

? solve(fx) %求方程fx=0的符号解 ? ans = [ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]

[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]

? syms b

? solve(fx, b ) %求方程fx=0关于变量b 的符号解 ? ans = -(a*x^2+c)/x 微分方程(组)求解(dsolve )

? dsolve('Dy=5') %求方程y'=5的通解,默认自变量为t ? ans = 5*t+C1

? dsolve('Dy=x', 'x') %求方程y'=x 的通解,指定自变量为x ? ans =1/2*x^2+C1

? dsolve('D2y=1+Dy', 'y(0)=1', 'Dy(0)=0') %求方程y''=1+y'满足y(0)=1,y'(0)=0的特解 ? ans = -t+exp(t) 即 t

e t y +-=

? [x,y]=dsolve('Dx=x+y,Dy=2*x') %求方程组??

?='+=' 2x y y x x 的通解,默认自变量为

t

? x =1/3*C1*exp(-t)+2/3*C1*exp(2*t)+1/3*C2*exp(2*t)-1/3*C2*exp(-t)

y =2/3*C1*exp(2*t)-2/3*C1*exp(-t)+2/3*C2*exp(-t)+1/3*C2*exp(2*t)

???++--=++-=-- )2(3/1)2(3/1 )2(3/1)(3/12212122121t t t t e c c e c c y e c c e c c x

实验2 MATLAB 绘制二维、三维图形

例2-1 在子图形窗口中画出]2,0[π上正弦、余弦曲线。

? x=0:0.1*pi:2*pi; %按步长赋值生成x 向量

? y=sin(x); z=cos(x); %生成正弦、余弦函数值y 、z 向量

? subplot(2,1,1) %分图形窗口为2行1列,并在第一个子窗中绘图 ? plot(x,y,x,z) %在第一个子窗中画出正弦、余弦曲线 ? subplot(2,1,2) %在第二个子窗中绘图

? plot(x,y,'k:',x,z,'r-') %在第二个子窗中用不同颜色画两条曲线 ? hold on %保持第二个子窗中绘图 ? plot(x,y,'bo',x,z,'k+') %用'o'和'+'标记曲线上分点 ? hold off %取消图形保持 例2-2 画出]2,0[π上正弦、余弦曲线并对线型加粗、点型加大,重新定置坐标系以及加注相关说明和注释。

? x=0:0.1*pi:2*pi; %按步长赋值生成x 向量

? y=sin(x); %生成正弦、余弦函数值y 、z 向量 ? z=cos(x);

? plot(x,y, 'b-', x,z, 'k .-', ' linewidth ',3, ' markersize ',15)

? axis([-0.2*pi 2.2*pi –1.2 1.2]) %重新设置图形窗口坐标轴范围 ? grid %加注坐标网格

? xlabel('Variable \it{x}') %标记横坐标轴, \it{x}表示x 为斜体 ? ylabel('Variable \it{y}') %标记纵坐标轴 ? title('Sine and Cosine Cruves') %标记图名

? text(2.5,0.7,'Sin(x)') %在(2.5,0.7)位置,标记曲线名称 ? text(1.5,0.1,'Cos(x)') %在(1.5,0.1)位置,标记曲线名称

? hold on %图形保持,在同一图形窗口中叠加图形 ? plot([0,2*pi],[0,0], 'r-.') %叠加一条红色的点划直线:(0,0)到(2pi,0) ? hold off %图形保持取消,再画图时将另辟窗口 例2-3 分别在两个图形窗口画出填充一正方形和极坐标方程θθ2cos 2sin 2?=r 的图形。

? h1=figure; %打开第一个图形窗口,返回其图标识号(句柄)h1

? x=[0 1 1 0 0]; %闭合图形的顶点横坐标向量 ? y=[0 0 1 1 0]; %闭合图形的顶点纵坐标向量 ? fill(x,y,'y') %填充闭合图形(用黄颜色) ? axis([-1 2 -1 2]) %重新设置坐标轴

? h2=figure; %打开第二个图形窗口,返回其图标识号(句柄)h2

? theta=linspace(0,2*pi); %对theta 角的范围进行划分,生成分点向量 ? rho=sin(2*theta).*cos(2*theta); %生成相应极坐标方程的极径rho 向量 ? polar(theta,rho,'r') %绘制相应的极坐标方程图形(用红颜色) ? title('Polar plot of sin(2*theta)cos(2*theta)') %添加图形标题 ? set(h2,'linewidth',3) %对第二个窗口中曲线加粗

例2-4在[-2.5,2.5]上画出函数2

x

e y -=的直方图和阶梯图。

? x=linspace(-2.5,2.5,20); %产生横坐标x 向量 ? y=exp(-x.*x); %生成函数值向量

? h1=subplot(1,2,1); %分图形窗口并在第一个子窗中绘图,返回其句柄

h1

? bar(x,y) %画出直方图

? title(' Bar Chart of a Bell Curve ') %添加图形标题

? h2= subplot(1,2,2); %在第二个子窗中绘图,返回其句柄h2 ? stairs(x,y) %画出阶梯图

? title(' Stairs Plot of a Bell Curve ') %添加图形标题

例2-5 采用不同形式(直角坐标、参数、极坐标),画出单位圆12

2

=+y x 的图形。 (1)直角坐标系

? x=-1:0.01:1; %对x 的范围进行划分,生成分点向量 ?y1=sqrt(1-x.^2); %生成上半单位圆的函数值向量 ?y2=-y1; %生成下半单位圆的函数值向量 ?plot(x,y1,x,y2); %同时画出上半圆和下半圆

?axis equal %让坐标系中两个坐标轴取值相同

(2)参数方程

? t=0:0.01*pi:2*pi ; %对t 的范围进行划分,生成分点向量 ?x=cos(t); y=sin(t); %生成单位圆上的函数值向量 ?plot(x,y); %画出单位圆

?axis equal %让坐标系中两个坐标轴取值相同

(3)极坐标系

? t=0:0.01*pi:2*pi ; %对t 的范围进行划分,生成分点向量 ? r=1+0*t; %生成单位圆的极径r 向量 ? polar(t,r) %绘制相应的极坐标方程图形 例2-6 画出螺旋线:x=sin(t),y=cos(t),z=t,]10,0[π∈t 上一段曲线。

? t=0:pi/50:10*pi; %生成参数t 数组 ? X=sin(t); %生成螺旋线X 数组 ? Y=cos(t); %生成螺旋线Y 数组 ? Z=t; %生成螺旋线Z 数组 ? plot3(X,Y ,Z, 'k-', 'linewidth',3) %画螺旋线 ? grid

例2-7 画出矩形域[-1,1] ×[-1,1]上旋转抛物面:2

2

y x z +=。

? x=linspace(-1,1,100); %分割[-1,1]区间生成x ? y=x; %y 与x 相同

? [X,Y]=meshgrid(x,y); %生成矩形域[-1,1] ×[-1,1]网格节点坐标矩阵

? Z=X.^2+Y .^2; %生成22

y x z +=函数值矩阵 ? subplot(1,2,1)

? mesh(X,Y,Z) ; %在第一个子图中画2

2y x z +=网格曲面

? subplot(1,2,2)

? surf(X,Y ,Z) ; %在第二个子图中画2

2

y x z +=光滑曲面

? shading flat ; %对曲面2

2y x z +=平滑并除去网格

例2-8 在圆形域122≤+y x 上绘制旋转抛物面:22y x z +=。

? x=linspace(-1,1,300); %分割[-1,1]区间生成x

? y=x; %生成y

? [X,Y]=meshgrid(x,y); %生成矩形域[-1,1]X[-1,1]网格节点坐标矩阵

? Z=X.^2+Y .^2; %生成2

2y x z +=函数值矩阵

? i=find(Z>1); %找出圆域

122≤+y x 之外的函数值(z>1)坐标点i

? Z(i)=NaN; %对圆域12

2

≤+y x 之外的坐标点i 处函数值进行

“赋空”

? subplot(1,2,1)

? mesh(X,Y,Z) ; %在第一个子图中画2

2y x z +=网格曲面

? subplot(1,2,2)

? surf(X,Y ,Z) ; %在第二个子图中画2

2

y x z +=光滑曲面 ? shading flat ; %对曲面2

2

y x z +=平滑并除去网格

例2-9 画出2

2

2

2sin y x y x z ++=

在5.7||,5.7||≤≤y x 上的图形。

? x=-7.5:0.5:7.5; ? y=x;

? [X,Y]=meshgrid(x,y);

? u=sqrt(X.^2+Y .^2)+eps; %加eps 使得u 不等于0,保证z 有意义 ? Z=sin(u)./u; ? surf(X,Y ,Z)

例2-10 有一组实验数据如下表所示,试绘图表示。

? d1=[12.51 13.54 15.60 15.92 20.64 24.53 30.24 50.00 36.34];

? d2=[ 9.87 20.54 32.21 40.50 48.31 64.51 72.32 85.98 89.77];

? d3=[10.11 8.14 14.17 10.14 40.50 39.45 60.11 70.13 40.90];

? plot(t,d1,'r+-',t,d2,'kx:',t,d3,'b*-','linewidth',2,'markersize',8); ? title('time & data');

? xlabel('time');ylabel('data'); ? axis([0 10 0 100]);

? text(6.5,25.5,'\leftarrowdata1'); % ' \leftarrow '表示画一左箭头←,且在标识前 ? text(3,43.8,'data2\rightarrow'); % ' \rightarrow '表示画一右箭头→,且在标识后 ? text(4.8,30.5,'\leftarrowdata3');

? grid

实验3 MATLAB 编程介绍与循环结构

3-1:求n (n=100)个奇数的和:s=1+3+5+…+(2n -1).

clear;clc; %清除内存变量,清理命令窗口 n=100; %赋值给定奇数的个数

s=0; %设定存放和的变量s 并赋初值0

for i=1:n %定义循环变量i 从1到n ,以1为步长,即为奇数序号 s=s+(2*i-1); %先计算右端奇数并累加后再赋给左端的变量s fprintf('i=%.0f, s=%.0f\n ',i,s) %逐行显示出累加求和的过程 end %循环结构结束

例3-2:求正整数n 的阶乘:p=1×2 × 3 × … × n = n!,并求出n=20时的结果。 clear;clc; %清除内存变量,清理命令窗口 n=20; %赋值给定正整数

p=1; %设定存放阶乘的变量p 并赋初值1

for i=1:n %定义循环变量i 从1到n ,以1为步长,即连续正整数 p=p*i; %先计算右端乘积后再赋给左端的变量p fprintf('i=%.0f, p=%.0f\n ',i,p) %逐行显示出i! end %循环结构结束

例3-3:根据麦克劳林公式可以得到e ≈1+1+1/2!+1/3!+…+1/n!,试求e 的近似值。 clear;clc; %清除内存变量,清理命令窗口 n=10; %赋值给定正整数

p=1; %设定存放阶乘的变量p 并赋初值1

s=1; %设定存放累加和的变量s 并赋初值1

for i=1:n %定义循环变量i 从1到n ,以1为步长 p=p*i; %先计算右端乘积后再赋给左端的变量p ,此时p 为i 的阶乘

s=s+1/p; %先计算右端阶乘倒数的累加后再赋给左端的变量s fprintf('i=%.0f, s=%.8f\n ',i,s) %逐行显示出第i 次e 的近似值 end %循环结构结束

例3-4:对于数列{}

,2,1,=n n ,求其前n 项和不超过1000时的n 的值及和.

clear;clc; %清除内存变量,清理命令窗口 n=0; %设定正整数并赋初值0

s=0; %设定存放累加和的变量s 并赋初值0

while s<=1000 %用累加和s 与1000进行比较作为循环条件

n=n+1; %改变n 为连续正整数

s=s+sqrt(n); %先计算右端开方数的累加后再赋给左端的变量s

fprintf('n=%.0f, s=%.4f\n ',n,s) %逐行显示正整数及部分和

end %循环结构结束

例3-5:根据e ≈1+1+1/2!+1/3!+…+1/n! 求e 的近似值,要求精确到8

10-。

clear;clc; %清除内存变量,清理命令窗口

p=1; %设定存放阶乘的变量p 并赋初值1 s=1; %设定存放累加和的变量s 并赋初值1 r=1; %设定前后两次近似值的误差r 并赋初值1

k=0; %设定构造连续正整数的变量k 赋初值0又为循环次数

while r>=1.0e-8 %当近似值的精度r 没达到9

10-时继续循环 k=k+1; %累计循环次数并作为下一个正整数k p=p*k; %计算k 的阶乘p

r=1/p; %计算前后两次近似值的误差r

s=s+r; %计算e 的近似值s

fprintf('k=%.0f, s=%.10f\n ',k,s) %逐行显示出第k 次e 的近似值s

end %循环结构结束

实验4 MATLAB 选择结构与应用实验

例4-1:求任意有限数组a=[a(1),a(2),…,a(n)] 中数值最大的元素M 以及所在位置k. function [M,k]=findM(a) %定义函数findM ,输入数组a ,返回最大元素M 及位置k

n=length(a); %获取数组的长度即元素的个数n

M=a(1); k=1; %将第一个元素作为最大值赋值给M ,位置为1; for i=2:n %从第二个元素到最后一个元素依次进行 if a(i)>M %比较后续元素与目前最大值M 的大小

M=a(i); k=i; %将数值较大的元素赋值给M ,同时保留位置i end %选择结构结束 end %循环结构结束

? a=[1,2.2,pi,-0.8,3.2,0]; %任意给定一数组 ? [M,k]=findM(a) %调用函数findM

? M =3.200 ? k =5

例4-2:编写一个函数将百分制成绩转换为优(A),良(B),中(C),差(D)四等级. function jb=dengji(fs) %定义函数dengji ,输入分数fs ,返回等级A,B,C,D

if fs>=90 %判断分数fs 是否处在优秀级别上

jb=' A '; %定义为A 级

elseif fs>=78 %判断分数fs 是否处在良好级别上 jb=' B '; %定义为B 级 elseif fs>=60 %判断分数fs 是否处在合格级别上 jb=' C '; %定义为C 级

else %分数fs 不处于以上任何级别上

jb=' D '; %定义为D 级 end %选择结构结束 ? jb=dengji(81) %调用函数dengji

? jb =B

例4-3:Fibonacci 数组的元素满足Fibonacci 规则:

}{n a :121==a a ,12+++=k k k a a a , ,3,2,1=k .

求出该数组中第一个大于10000的元素。

n=100; %给定一个较大的n 作为数列的位置 a=[1,1]; %设定数列的初始值

for i=3:n %从第3个元素开始循环递推生成后续元素

p=a(i-1)+a(i-2); %前两个元素之和生成后续元素p

a=[a,p]; %将刚产生的元素p 放置到数组a 的最后,拼接成新的数组 if p>10000 %判断将刚产生的元素p 是否超过10000 break; %跳出所在的for 循环 end %选择结构结束

end%循环结构结束

disp([a])%显示所生成的数列,最后一个元素a(length(a))为所求的元素

例4-4:动态显示数列极限

)

(

)

1

1(∞

+

=n

e

n

a n

n

的逼近过程。

clear;clf;%清除内存变量,清理图形窗口

hold on%开启图形保持功能以便重复画点

axis([0,150,2,2.8]);%设置坐标窗口

grid%画出坐标网格

for n=2:2:150%让n从2开始,建立循环an=(1+1/n)^n;%计算数列的值

plot(n,an,'r.','markersize',15);%画出相应的坐标点,点的大小为15 pause(0.1); %暂停0.1秒后开始下一循环

fprintf('n=%d an=%.4f\n',n,an);%显示出每次结算结果(在命令窗口中)end%循环结构结束

问题1:对于数列

)

(

2

1

:}

{

1

n

n

n

n a

A

a

a

a+

=

+)

,2,1,0

(

=

n,A

a,0

>>0为常数,可

以证明该数列收敛,且

A

a

n

n

=

lim

。显然,这个结论提供了一个求平方根A的近似方法,

试编制一个函数程序,对任意给定的正实数A,求出A的近似值(精确到5

10-)。

function [a1,k]=jixian(A) %定义函数jixian,输入常数A,返回极限近似值和迭代次数

if A<=0%如果A不为正,则显示错误信息且a1=-1,k=-1并终止程序

disp('data error!');

a1=-1;k=-1;

return %终止程序返回调用处

end

a0=1; k=0; %给定数列的初始值a0和累计循环的变量k

r=1; %设定存放相邻两次迭代值差的绝对值,赋初值1

while r>=1.0e-5%当误差没达到6

10-时继续循环

k=k+1;%循环次数累加一次

a1=(a0+A/a0)/2;%计算下一个元素a1

r=abs(a1-a0); %计算前后两次迭代值差的绝对值,存放在r中

a0=a1; %将a1赋给a0作为新的初值,迭代下一个元素

fprintf('k=%.0f a1=%.8f\n',k,a1) %显示每次迭代结果

end %循环结构结束

? [a,b]=jixian(2) %调用函数jixian

k=1 a1=1.50000000

k=2 a1=1.41666667

k=3 a1=1.41421569

k=4 a1=1.41421356

?a = 1.4142

?b = 4

问题2:对于任意一个正整数,都可以判断其是质数还是合数,这一点在一些有关数论问题中是经常用到的。但当一个正的奇数比较大时,手工来判断是否为质数往往不很容易。现在要求编制一个函数程序,对任意一个正整数,判断出它是质数还是合数,若是质数,则返回值1;若是合数,返回值0,同时给出两个因数;若输入非正数,则返回值-1,并提示错误。

function k=hezhishu(M) %定义函数hezhishu,输入正整数M,返回合质数的标

志k

k=1;%赋数k初值为1,默认为质数

if M<=1

disp(' data error!');k=-1;%输入的数非合质数时,输出错误信息

return%程序终止,返回

end

if M>=4%输入的数M从4开始,2,3为质数

[M开始循环

for m=2: fix(sqrt(M))%从2到]

if mod(M,m)==0%M被m整除,即M为合数

k=0;%赋数k为0,表示M为合数

fprintf('%.0f=%.0f×%.0f\n',M,m,M/m)%显示M=m×n

break%循环终止

end

end

end

? k=hezhishu(1259) %调用函数hezhishu

?k = 1%表明1259为质数

? k=hezhishu(1159) %调用函数hezhishu

?1159 =19×61

?k = 0%表明1159为合数

? k=hezhishu(-8) %调用函数hezhishu

?data error!

?k = -1%表明输入数据错误

问题3:设某一建筑公司要筹建一批A、B、C三种类型的楼房,已知每栋楼房的投资和售价分别为:A类投资90万,售价115万;B类投资110万,售价150万;C类投资170万,售价205万。现在该公司有资金1250万,要求每类楼房至少建一栋,最多不超过5栋,那么如何设计建楼方案,在资金充分利用的前提下能获得最大利润?

clear;clc;

t=[90,110,170]; %楼房的投资单价向量

p=[115,150,205]; %楼房的售价向量

z=1250; %总资本

r=p-t; %楼房的利润向量

D=[];k=0; %D为存放方案及利润的结果矩阵,k为行标

for a=1:5 % a为A类楼房的数量

for b=1:5 % b为B类楼房的数量

for c=1:5 % c为C类楼房的数量

f=[a,b,c]; % f为建楼方案即各类楼房数量向量

if f * t'<=z % 计算f方案投资额度,如果投资允许,方案有效

zr=f * r'; % 计算f方案的利润

k=k+1; %结果矩阵的行数加1

D(k,:)=[f , zr]; %方案及利润的结果存放矩阵D的k行

end

end

end

end

[R, I]=max(D( : ,4)); %求出矩阵D第4列(利润)中最大值所在的行I

disp([D(I, : )]) %显示出矩阵D的第I行,前三列即为建楼最优方案

问题4:设0A(0,0)为一导弹发射点,发现位于B(0,100)处一架敌机沿水平方向逃离(如图),随即发射一枚导弹予以打击,现已知导弹时刻对准敌机,且速率为飞机速率的两倍(设

飞机速度为1)。试编程模拟导弹打击敌机的动态过程,并实时给出飞机和导弹的位置坐标。如果敌机飞行60单位距离之外即逃出我方空域,那么,要想在我方空域内击落敌机,则导

弹的速度至少应提高到敌机速度的多少倍?

clear;clc;clf;

hold on

axis([0 100 0 120]);

grid

A=[0,0]; %标记导弹的初始位置

B=[0,100]; %标记敌机的初始位置

d=norm(A-B); %计算两者之间的距离

k=0; % k为循环统计量,即为迭代的次数

v=1;dt=1;K=2; %给定飞机速度v、时间间隔dt、速度关系系数K

的值

while k<10000 %开始循环,次数不超过10000

k=k+1; %循环次数累加1

B=B+[v*dt,0]; %计算敌机位置

plot(A(1),A(2),'r.' ,'markersize',15); %标记导弹位置

plot(B(1),B(2),'b.' ,'markersize',15); %标记敌机位置

e=B-A;d=norm(e); %计算两者之间的距离

fprintf('k=%.0f B(%.0f,100) A(%.2f,%.2f)

d=%.2f\n',k,B(1),A(1),A(2),d)

if d<=0.5 %如果飞机与导弹距离很小,可认为击中目标

break %终止循环

end

e=e/d; %计算导弹飞行方向向量

A=A+K*v*dt*e; %计算导弹位置

pause(0.2) %暂停0.2秒,放慢画图演示过程

end

实验5 开普勒方程近似解与方程求根

例 5-1 用“二分法”求方程1sin 5.0+=x x 的近似根(误差5

10-<).

f=inline(' x-0.5*sin(x)-1');

a=1; b=2;

dlt=1.0e-5; k=1;

while abs(b-a)>dlt c=(a+b)/2; if f(c)= =0 break ;

elseif f(c)*f(b)<0 a=c; else b=c; end

fprintf('k=%d, x=%.5f\n',k,c); k=k+1; end

例 5-2 用“切线法”求方程1sin 5.0+=x x 的近似根(误差5

10-<).

f=inline(' x-0.5*sin(x)-1');

df=inline('1-0.5*cos(x)'); d2f=inline('0.5*sin(x)'); a=1; b=2;

dlt=1.0e-5; if f(a)*d2f(a)>0 x0=a; else

x0=b; end

m=min(abs(df(a)),abs(df(b))); k=0;

while abs(f(x0))>m*dlt k=k+1;

x1=x0-f(x0)/df(x0);

x0=x1;

fprintf('k=%d x=%.5f\n',k,x0); end

例5-3 求方程组

1

2

123

123

123

sin()40

2

x

x x x e

x x x

x x x

?++-=

?

+=

?

?=-

?的近似解.

function f=group1(x)

f=[sin(x(1))+x(2)+x(3)^2*exp(x(1))-4;

x(1)+x(2)*x(3);

x(1)*x(2)*x(3)+2];

?[x,fval]=fsolve('group1',[1,1,1])

x =

1.4142 -1.3701 1.0322

fval =

1.0e-012 *

0.1155

0.0007

-0.0071

例5-4求方程组

2

212

121

91254610

210

x x x

x x x

?--+=

?

-+=

?的近似解.

function f=group2(x)

f=[9*x(2)^2-12*x(1)-54*x(2)+61;

x(1)*x(2)-2*x(1)+1];

?[x,fval]=fsolve('group2',[0,0])

x =

1.0902 1.0828

fval =

1.0e-011 *

0.1044

-0.0324

?[x,fval]=fsolve('group2',[-2,2])

x =

-1.5682 2.6377

fval =

1.0e-007 *

0.3218

0.0260

实验6 Logistic方程求解与混沌

3 数值实验与分析

clc;clf;

x=0.1;

y=[ ];

r=1.2; %改变取值得到相应的图形

hold on

axis([0 100 0 1])

for i=1:100

x=r*x*(1-x);

y=[y,x];

plot(i,x,'k.','markersize',10)

fprintf('x(%d)=%.10f\n',i,x);

end

t=1:100;

plot(t,y,'k-');

grid

步4:

clear;clf;

axis([0,4,0,1]);

grid;

hold on

for r=0:0.3:3.9

x=[0.1];

for i=2:150

x(i)=r*x(i-1)*(1-x(i-1));

end

pause(0.5)

for i=101:150

plot(r,x(i),'k.');

end

text(r-0.1,max(x(101:150))+0.05,['\it{r}=',num2str(r)]) end

步6:

clear;clf;

hold on

axis([2.7,4,0,1]);

grid

for r=2.7:0.005:3.9

x=[0.1];

for i=2:150

x(i)=r*x(i-1)*(1-x(i-1));

end

pause(0.1)

for i=101:150

plot(r,x(i),'k.');

end

end

的计算与数值积分

实验7

2.级数逼近

clc;clear;

n=0;

r=1;

p=0;

k=-1;

while r>=1.0e-5

n=n+1;

k=k*(-1);

p1=p+k/(2*n-1);

r=abs(4*(p1-p));

fprintf('n=%.0f,p=%.10f\n',n,4*p1);

p=p1;

end

MATLAB程序:

clear;

n=0;

r=1;

p=0;

k=-1;

a=1;

b=1;

while r>=1.0e-5

n=n+1;

k=k*(-1);

a=4*a;b=9*b;

p1=p+k/(2*n-1)*(2/a+3/b);

r=abs(4*(p1-p));

fprintf('n=%.0f,p=%.10f\n',n,4*p1);

p=p1;

end

3.数值积分

(1)梯形法

f=inline('4./(1+x.*x)');

x=0:0.1:1;

y=f(x);

p=trapz(x,y);

fprintf('p=%.6f\n',p)

再对分点加密,精度有所提高:

f=inline('4./(1+x.*x)');

x=0:0.01:1;

y=f(x);

p=trapz(x,y);

fprintf('p=%.6f\n',p)

(2)复化梯形法

clear;

f=inline('4./(1+x.*x)');

a=0;b=1; n=1;

h=(b-a)/n;

t1=h/2*(f(a)+f(b));

er=1;k=1;

while er>1.0e-5

s=0;

for i=1:n

s=s+f(a+(i-1/2)*h);

end

t2=(t1+h*s)/2;

er=abs(t2-t1);

fprintf('n=%.0f,p=%.6f,r=%.6f\n',k,t2,er);

n=2*n; h=h/2; t1=t2;

k=k+1;

end

(3)抛物线(Simpson)方法

clear;

f=inline('4./(1+x.*x)'); a=0;b=1; n=1; z=quad(f,a,b);

fprintf('z=%.10f\n',z)

实验8 河流流量估计与数据插值

(1)多项式插值

function p=lagrange(x,y) %输入数据点坐标向量x,y ,输出插值多项式系数p L=length(x); A=ones(L); for j=2:L

A(:,j)=A(:,j-1).*x'; end

X=inv(A)*y'; for i=1:L

p(i)=X(L-i+1); end

例8-1

求其插值多项式曲线。x=[1 2 3 4 5];

y=[-1 1.5 2.1 3.6 4.9];

plot(x,y,'k.','markersize',15) axis([1 5 -1 5]) grid; hold on

p=lagrange(x,y); t=1:0.1:5;

u=polyval(p,t);

plot(t,u,'r-')

求其插值多项式曲线。

x=0:0.1:1;

y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2]; plot(x,y,'k.','markersize',15) axis([0 1 -2 16]) grid; hold on

p=lagrange (x,y); t=0:0.01:1; u=polyval (p,t); plot(t,u,'r-') 例8-3 对函数

22011

x y +=

,在[-5,5]上以1为步长进行划分作Lagrange 插值,观

察函数曲线(虚线)与插值曲线(实线)的变化。

x=-5:0.1:5;

y=1./(1+20*x .*x);

plot(x,y,'k--','linewidth',2) axis([-5 5 -1.2 6]) grid;

hold on

x=-5:5;

y=1./(1+20*x .*x);

p=lagrange(x,y);

t=-5:0.1:5;

f=polyva l(p,t);

plot(t,f,'r-')

(2)分段线性插值

x=0:0.1:1;

y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2];

plot(x,y,'k.','markersize',15)

axis([0 1 -2 16])

grid;

hold on

t=0:0.01:1;

u=interp1(x,y,t);

plot(t,u,'r-')

(3)三次样条插值

x=0:0.1:1;

y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2];

plot(x,y,'k.','markersize',15)

axis([0 1 -2 16])

grid;pause(0.5)

hold on

t=0:0.01:1;

u=spline(x,y,t);

plot(t,u,'r-')

(1)画出河床观测点的散点图

clf;clear

x=0:5:100;

y=[0 2.41 2.96 2.15 2.65 3.12 4.23 5.12 6.21 5.68 4.22 ...

3.91 3.26 2.85 2.35 3.02 3.63

4.12 3.46 2.08 0]; y1=10-y;

plot(x,y1,'k.','markersize',18);

axis([0 100 0 10]);

grid

(2)利用分段线性插值绘制河床曲线

clf;clear

x=0:5:100;

y=[0 2.41 2.96 2.15 2.65 3.12 4.23 5.12 6.21 5.68 4.22 ...

3.91 3.26 2.85 2.35 3.02 3.63

4.12 3.46 2.08 0]; y1=10-y;

plot(x,y1,'k.','markersize',15);

axis([0 100 2 10])

grid;hold on

t=0:100;

u=interp1(x,y1,t);

plot(t,u)

S=100*10-trapz(x,y1);

p=sqrt(diff(x).^2+diff(y1).^2);

L=sum(p);

fprintf('S=%.2f , L=%.2f\n',S,L)

数学软件MATLAB实验作业

数学软件与数学实验作业 一.《数学软件》练习题(任选12题,其中19-24题至少选2题): 3.对下列各式进行因式分解. (1). syms x y >> factor(x^5-x^3) (2). syms x y >> factor(x^4-y^4) (3). syms x >> factor(16-x^4) (4). syms x >> factor(x^3-6*x^2+11*x-6) (5). syms x y >> factor((x+y)^2-10*(x+y)+25) (6). syms x y >> factor(x^2/4+x*y+y^2) (7). syms x y a b >> factor(3*a*x+4*b*y+4*a*y+3*b*x) (8). syms x >> factor(x^4+4*x^3-19*x^2-46*x+120) 5.解下列方程或方程组. (1).solve('(y-3)^2-(y+3)^3=9*y*(1-2*y)') (2). solve('3*x^2+5*(2*x+1)') (3). solve('a*b*x^2+(a^4+b^4)*x+a^3*b^3','x') (4). solve('x^2-(2*m+1)*x+m^2+m','x') (5). [x,y]=solve('4*x^2-9*y^2=15','2*x-3*y=15') 6.计算极限. (1). syms x f=(exp(x)-exp(-x))/sin(x); limit(f,x,0) (2) syms x >> f=(x/(x-1)-1/log(x)); >> limit(f,x,1) (3). syms x >> f=(1-cos(x))/x^2; >> limit(f,x,0)

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次,但由于迭代法一般只具有局部收敛性,因此通常不用二分法来求得非线性方程的精确解,而只用它求得根的一个近似解,再用收敛速度较快的迭代法求得其精确解。

MATLAB实验练习题(计算机)-南邮-MATLAB-数学实验大作业答案

“”练习题 要求:抄题、写出操作命令、运行结果,并根据要求,贴上运行图。 1、求230x e x -=的所有根。(先画图后求解)(要求贴图) >> ('(x)-3*x^2',0) = -2*(-1/6*3^(1/2)) -2*(-11/6*3^(1/2)) -2*(1/6*3^(1/2)) 3、求解下列各题: 1)30 sin lim x x x x ->- >> x;

>> (((x))^3) = 1/6 2) (10)cos ,x y e x y =求 >> x; >> ((x)*(x),10) = (-32)*(x)*(x) 3)2 1/2 0(17x e dx ?精确到位有效数字) >> x; >> ((((x^2),0,1/2)),17) =

0.54498710418362222 4)4 2 254x dx x +? >> x; >> (x^4/(25^2)) = 125*(5) - 25*x + x^3/3 5)求由参数方程arctan x y t ??=? =??dy dx 与二阶导 数22 d y dx 。 >> t; >> ((1^2))(t); >> ()() = 1

6)设函数(x)由方程e所确定,求y′(x)。>> x y; *(y)(1); >> ()() = (x + (y)) 7) sin2 x e xdx +∞- ? >> x; >> ()*(2*x); >> (y,0) = 2/5

8) 08x =展开(最高次幂为) >> x (1); taylor(f,0,9) = - (429*x^8)/32768 + (33*x^7)/2048 - (21*x^6)/1024 + (7*x^5)/256 - (5*x^4)/128 + x^3/16 - x^2/8 + 2 + 1 9) 1sin (3)(2)x y e y =求 >> x y; >> ((1)); >> ((y,3),2) =

MATLAB数学实验第二版答案(胡良剑)

数学实验答案 Chapter 1 Page20,ex1 (5) 等于[exp(1),exp(2);exp(3),exp(4)] (7) 3=1*3, 8=2*4 (8) a为各列最小值,b为最小值所在的行号 (10) 1>=4,false, 2>=3,false, 3>=2, ture, 4>=1,ture (11) 答案表明:编址第2元素满足不等式(30>=20)和编址第4元素满足不等式(40>=10) (12) 答案表明:编址第2行第1列元素满足不等式(30>=20)和编址第2行第2列元素满足不等式(40>=10) Page20, ex2 (1)a, b, c的值尽管都是1,但数据类型分别为数值,字符,逻辑,注意a与c相等,但他们不等于b (2)double(fun)输出的分别是字符a,b,s,(,x,)的ASCII码 Page20,ex3 >> r=2;p=0.5;n=12; >> T=log(r)/n/log(1+0.01*p) Page20,ex4 >> x=-2:0.05:2;f=x.^4-2.^x; >> [fmin,min_index]=min(f) 最小值最小值点编址 >> x(min_index) ans = 0.6500 最小值点 >> [f1,x1_index]=min(abs(f)) 求近似根--绝对值最小的点 f1 = 0.0328 x1_index = 24 >> x(x1_index) ans = -0.8500 >> x(x1_index)=[];f=x.^4-2.^x; 删去绝对值最小的点以求函数绝对值次小的点 >> [f2,x2_index]=min(abs(f)) 求另一近似根--函数绝对值次小的点 f2 = 0.0630 x2_index = 65 >> x(x2_index) ans = 1.2500

matlab数学实验练习题

Matlab 数学实验 实验一 插值与拟合 实验内容: 预备知识:编制计算拉格朗日插值的M 文件。 1. 选择一些函数,在n 个节点上(n 不要太大,如5 ~ 11)用拉格朗日、分段线性、三次样条三种插值方法,计算m 个插值点的函数值(m 要适中,如50~100)。通过数值和图形输出,将三种插值结果与精确值进行比较。适当增加n ,再做比较,由此作初步分析。下列函数任选一种。 (1)、 ;20,sin π≤≤=x x y (2)、;11,)1(2/12≤≤--=x x y (3)、;22,c o s 10 ≤≤-=x x y (4)、22),exp(2≤≤--=x x y 2.用电压V=10伏的电池给电容器充电,电容器上t 时刻的电压为 ) (0)()(t e V V V t v ---=,其中0V 是电容器的初始电压,τ是充电常数。试由下面 一组t ,V 数据确定0V 和τ。 实验二 常微分方程数值解试验 实验目的: 1. 用MATLAB 软件求解微分方程,掌握Euler 方法和龙格-库塔方法; 2. 掌握用微分方程模型解决简化的实际问题。 实验内容:

实验三地图问题 1.下图是一个国家的地图,为了计算出它的国土面积,首先对地图作如下测量: 以由西向东方向为x轴,由南到北方向为y轴,选择方便的原点,并将从最西边界点到最东边界点在x轴上的区间适当地划分为若干段,在每个分点的y方向测出南边界点和北边界点的y坐标y1和y2,这样就得到了表中的数据(单位mm)。 根据地图的比例我们知道18mm相当于40km,试由测量数据计算该国土 的近似面积,并与它的精确值41288km2比较。

山东建筑大学数学实验期末作业matlab

数学实验 期 末 作 业 学号: 班级: 姓名:

1. 求函数x x y 2sin 3=的5阶导数。 2. 使用sparse 命令描述? ? ???? ? ? ??30001 020******* 01020 10003。 3. 求解边值问题 1)0(,0)0(,34,43==+-=+=g f g f dx dg g f dx df 。 4. 建立函数1 2sin )(3-=x x f x 的M-文件,并计算)2(f 和)10(f 。 5. 计算二重积分dy dx x y ??211 0][。 6. 已知数列满足2,11 01=+= +a ka a k k ,求5a ,并要求最后结果分别以小数点后两位和有理数这两种数据显示格式输出。

7. 大约在1500年前,《孙子算经》中就记载了这个有趣的问题:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?”请根据你的思路编程求解。 8. 绘制以下方程所表示的图形。 (1)x x y -=23 2 (2)y z cos =绕z 轴的旋转曲面 (3))40(,) 2sin(sin )]2cos(4[cos )]2cos(4[π<

10.根据中华人民共和国个人所得税法规定:公民的个人工资、薪金应依法缴纳个人所得税。所得税计算办法为:在每个人的月收入中超过2000元以上的部分应该纳税,这部分收入称为应纳税所得额。应纳税所得额实行分段累计税率,按下列税率表计算: 个人所得税税率表: 等级全月应纳税所得额税率(%) 1 不超过500元的部分 5 2 超过500元,不到2000元的部分10 3 超过2000元,不到5000元的部分15 4 超过5000元,不到20000元的部分20 5 超过20000元,不到40000元的部分25 6 超过40000元,不到60000元的部分30 7 超过60000元,不到80000元的部分35 8 超过80000元,不到100000元的部分40 9 超过100000元的部分45 若某人的工资是x元,试建立税款y与收入x之间的M-文件,并要求程序运行时可以告知操作者“please input the number of your wage”。

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软件与基础数学实验

软件与基础数学实验 实验1 基本特性与基本运算 例1-1求[12+2×(7-4)]÷32的算术运算结果。 >> >> (12+2*(7-4))/3^2 s = 2 例1-2计算5!,并把运算结果赋给变量y 1; 1:5 *i; y 例1-3计算2开平方 >> 2^(0.5) s = 1.4142 >> 例1-4 计算2开平方并赋值给变量x(不显示) 查看x的赋值情况 2; ^(0.5); x 例1-4设 75 , 24= - =b a,计算|) tan(| |) | | sin(| b a b a + + 的值。 (-24)/180*; 75/180*; a1(a); b1(b); ();

(a11)/((c))^(0.5) 例1-5 设三角形三边长为2,3,4===c b a ,求此三角形的面积。 432; ()/2; (p*()*()*())^(0.5) 例1-7 设 ??????????=101654321A ,?? ??? ?????-=112311021B ,计算||,,A AB B A +,1-A 。 [1,2,3;4,5,6;1,0,1]; [-1,2,0;1,1,3;2,1,1]; ; *b; (a); (a); 例1-8 显示上例中矩阵A 的第2行第3列元素,并对其进行修改. [1,2,3;4,5,6;1,0,1]; (2,3); a(2,3)(' ') 例1-9 分别画出函数x x y cos 2 =和x x z sin = 在区间[-6π,6π]上的图形。 1; 1/6*:0.01:1/6*; (x.*x).*(x); (x); (); 例1-10 试求方程组??????????=????????? ?--432201624121X 的解。 [1,2,1;4,261,0,2]; [2;3;4]; (a)*b 例1-11 试求矩阵方程??????=????? ?????--111321201624121X 的解。 [1,2,1;4,261,0,2]; [1,2,3;1,1,1]; *(a)

matlab数学实验报告5

数学实验报告 制作成员班级学号 2011年6月12日

培养容器温度变化率模型 一、实验目的 利用matlab软件估测培养容器温度变化率 二、实验问题 现在大棚技术越来越好,能够将温度控制在一定温度范围内。为利用这种优势,实验室现在需要培植某种适于在8.16℃到10.74℃下能够快速长大的甜菜品种。为达到实验所需温度,又尽可能地节约成本,研究所决定使用如下方式控制培养容器的温度:1,每天加热一次或两次,每次约两小时; 2,当温度降至8.16℃时,加热装置开始工作;当温度达到10.74℃时,加热装置停止工作。 已知实验的时间是冬天,实验室为了其它实验的需要已经将实验室的温度大致稳定在0℃。下表记录的是该培养容器某一天的温度 时间(h)温度(℃)时间(h)温度(℃)09.68 1.849.31 0.929.45 2.959.13 3.878.981 4.989.65 4.988.811 5.909.41 5.908.691 6.839.18 7.008.5217.938.92 7.938.3919.048.66 8.978.2219.968.43 9.89加热装置工作20.848.22 10.93加热装置工作22.02加热装置工作10.9510.8222.96加热装置工作12.0310.5023.8810.59 12.9510.2124.9910.35 13.889.9425.9110.18 三、建立数学模型 1,分析:由物理学中的傅利叶传热定律知温度变化率只取决于温度

差,与温度本身无关。因为培养容器最低温度和最高温度分别是:8.16℃和10.74℃;即最低温度差和最高温度差分别是:8.16℃和10.74℃。而且,16.8/74.10≈1.1467,约为1,故可以忽略温度对温度变化率的影响2, 将温度变化率看成是时间的连续函数,为计算简单,不妨将温度变化率定义成单位时间温度变化的多少,即温度对时间连续变化的绝对值(温度是下降的),得到结果后再乘以一系数即可。 四、问题求解和程序设计流程1)温度变化率的估计方法 根据上表的数据,利用matlab 做出温度-时间散点图如下: 下面计算温度变化率与时间的关系。由图选择将数据分三段,然后对每一段数据做如下处理:设某段数据为{(0x ,0y ),(1x ,1y ),(2x , 2y ),…,(n x ,n y )},相邻数据中点的平均温度变化率采取公式: 温度变化率=(左端点的温度-右端点的温度)/区间长度算得即:v( 2 1i i x x ++)=(1+-i i y y )/(i i x x - +1). 每段首尾点的温度变化率采用下面的公式计算:v(0x )=(30y -41y +2y )/(2x -0x )v(n x )=(3n y -41+n y +2+n y )/(n x -2-n x )

MATLAB数学实验100例题解

一元函数微分学 实验1 一元函数的图形(基础实验) 实验目的 通过图形加深对函数及其性质的认识与理解, 掌握运用函数的图形来观察和分析 函数的有关特性与变化趋势的方法,建立数形结合的思想; 掌握用Matlab 作平面曲线图性的方法与技巧. 初等函数的图形 2 作出函数x y tan =和x y cot =的图形观察其周期性和变化趋势. 解:程序代码: >> x=linspace(0,2*pi,600); t=sin(x)./(cos(x)+eps); plot(x,t);title('tan(x)');axis ([0,2*pi,-50,50]); 图象: 程序代码: >> x=linspace(0,2*pi,100); ct=cos(x)./(sin(x)+eps); plot(x,ct);title('cot(x)');axis ([0,2*pi,-50,50]); 图象: cot(x) 4在区间]1,1[-画出函数x y 1 sin =的图形. 解:程序代码: >> x=linspace(-1,1,10000); y=sin(1./x); plot(x,y); axis([-1,1,-2,2]) 图象:

二维参数方程作图 6画出参数方程???==t t t y t t t x 3cos sin )(5cos cos )(的图形: 解:程序代码: >> t=linspace(0,2*pi,100); plot(cos(t).*cos(5*t),sin(t).*cos(3*t)); 图象: 极坐标方程作图 8 作出极坐标方程为10/t e r =的对数螺线的图形. 解:程序代码: >> t=0:0.01:2*pi; r=exp(t/10); polar(log(t+eps),log(r+eps)); 图象: 90270 分段函数作图 10 作出符号函数x y sgn =的图形. 解:

浅析Matlab数学实验报告

数学实验报告 姓名: 班级: 学号: 第一次实验任务 过程: a=1+3i; b=2-i; 结果: a+b =3.0000 + 2.0000i a-b =-1.0000 + 4.0000i a*b = 5.0000 + 5.0000i a/b = -0.2000 + 1.4000i 过程: x=-4.5*pi/180; y=7.6*pi/180; 结果: sin(abs(x)+y)/sqrt(cos(abs(x+y))) =0.2098 心得:对于matlab 中的角度计算应转为弧度。 (1)过程: x=0:0.01:2*pi; y1=sin(x); y2=cos(x); y3=exp(x); y4=log(x); plot(x,y1,x,y2,x,y3,x,y4) plot(x,y1,x,y2,x,y3,x,y4) 结果: (2)过程:>> subplot(2,2,1) >> plot(x,y1) >> subplot(2,2,2) >> plot(x,y2) ./,,,,2,311b a b a b a b a i b i a ?-+-=+=计算、设有两个复数 6,7,5.4)

cos()sin(2=-=++y x y x y x ,其中、计算的图形。 下分别绘制)同一页面四个坐标系)同一坐标系下(、在( x y e y x y x y x ln ,,cos ,sin 213==== >> subplot(2,2,3) >> plot(x,y3) >> subplot(2.2.4) >> subplot(2,2,4) >> plot(x,y4) 结果: 心得:在matlab中,用subplot能够实现在同一页面输出多个坐标系的图像,应注意将它与hold on进行区别,后者为在同一坐标系中划出多条曲线。 5、随机生成一个3x3矩阵A及3x2矩阵B,计算(1)AB,(2)对B中每个元素平方后得到的矩阵C,(3)sinB,(4)A的行列式,(5)判断A是否可逆,若可逆,计算A的逆矩阵,(6)解矩阵方程AX=B,(7)矩阵A中第二行元素加1,其余元素不变,得到矩阵D,计算D。 过程:A=fix(rand(3,3).*10) ; B=fix(rand(3,3).*10);

数学软件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数学实验答案(全)

第一次练习 教学要求:熟练掌握Matlab 软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab 软件解决微积分、线性代数与解析几何中的计算问题。 补充命令 vpa(x,n) 显示x 的n 位有效数字,教材102页 fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形 在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin lim x mx mx x →-与3 sin lim x mx mx x →∞- syms x limit((902*x-sin(902*x))/x^3) ans = 366935404/3 limit((902*x-sin(902*x))/x^3,inf) ans = 0 1.2 cos 1000 x mx y e =,求''y syms x diff(exp(x)*cos(902*x/1000),2) ans = (46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算 22 11 00 x y e dxdy +?? dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1) ans = 2.1394 1.4 计算4 2 2 4x dx m x +? syms x int(x^4/(902^2+4*x^2)) ans = (91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 (10)cos ,x y e mx y =求 syms x diff(exp(x)*cos(902*x),10) ans = -356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x) 1.6 0x =的泰勒展式(最高次幂为4).

Matlab 实验

一、实验目的 熟悉MATLAB 软件的用户环境;了解MATLAB 软件的一般命令;掌握MATLAB 向量、数组、矩阵操作与运算函数;掌握MATLAB 软件的基本绘图命令;掌握MATLAB 语言的几种循环、条件和开关选择结构,及其编程规范。 通过该实验的学习,使学生能灵活应用MATLAB 软件解决一些简单问题,能借助MATLAB 软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发现进而证实其中的规律。 二、实验仪器、设备或软件: 电脑,MATLAB 软件 三、实验内容 1.MATLAB 软件的数组操作及运算练习; 2.直接使用MATLAB 软件进行作图练习; 3.用MATLAB 语言编写命令M 文件和函数M 文件。 四、实验步骤 1.在D 盘建立一个自己的文件夹; 2.开启软件平台——MATLAB ,将你建立的文件夹加入到MATLAB 的搜索路径中; 3.利用帮助了解函数max, min, sum, mean, sort, length ,rand, size 和diag 的功能和用法; 4.开启MATLAB 编辑窗口,键入你编写的M 文件(命令文件或函数文件); 5.保存文件(注意将文件存入你自己的文件夹)并运行; 6.若出现错误,修改、运行直到输出正确结果; 7.写出实验报告,并浅谈学习心得体会。 五、实验要求与任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→算法与编程→计算结果或图形→心得体会) 1. 已知矩阵??????????=321212113A , ???? ??????--=101012111B 要求:(1)屏幕输出A 与B ;(2)A 的转置A′;(3)求A+B 的值;(4)求A-B 的值;(5)求4A ;(6)求A×B ;(7)求A -1.

matlab实验报告

Matlab实验报告 ——定积分的近似计算 学生姓名: 学号: 专业:数学与应用数学专业

数学实验报告 实验序号:1001114030 日期:2012年10月20日 班级应一姓名陈璐学号1001114030 实验名称:定积分的近似运算 问题背景描述: 利用牛顿—莱布尼茨公式虽然可以精确地计算定积分的值,但它仅适合于被积分函数的原函数能用初等函数表达出来的情形。如果这点办不到或不容易办到, 这就有必要考虑近似计算的方法。在定积分的很多应用问题中,被积函数甚至没 有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只 能应用近似方法去计算相应的定积分。 实验目的: 本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线发。对于定积分的近似数值计算,Matlab有专门函数可用。 实验原理与数学模型: 1.sum(a):求数组a的和。 2.format long:长格式,即屏幕显示15位有效数字。 3.double():若输入的是字符则转化为相应的ASCII码;若输入的是整型数之则转化为 相应的实型数值。 4.quad():抛物线法求数值积分。格式:quad(fun,a,b)。此处的fun是函数,并且

为数值形式,所以使用*、/、^等运算时要在其前加上小数点。 5.trapz():梯形法求数值积分。格式:trapz(x,y)。其中x为带有步长的积分区间;y为数 值形式的运算。 6.fprintf(文件地址,格式,写入的变量):把数据写入指定文件。 7.syms 变量1变量2……:定义变量为符号。 8.sym('表达式'):将表达式定义为符号。 9.int(f,v,a,b):求f关于v积分,积分区间由a到b。 10.subs(f,'x',a):将a的值赋给符号表达式f中的x,并计算出值。若简单地使用subs (f),则将f的所有符号变量用可能的数值代入,并计算出值。 实验所用软件及版本:Matlab 7.0.1

MATLAB数学实验报告

Matlab 数学实验报告

一、实验目的 通过以下四组实验,熟悉MATLAB的编程技巧,学会运用MATLAB的一些主要功能、命令,通过建立数学模型解决理论或实际问题。了解诸如分岔、混沌等概念、学会建立Malthu模型和Logistic 模型、懂得最小二乘法、线性规划等基本思想。 二、实验内容 2.1实验题目一 2.1.1实验问题 Feigenbaum曾对超越函数y=λsin(πx)(λ为非负实数)进行了分岔与混沌的研究,试进行迭代格式x k+1=λsin(πx k),做出相应的Feigenbaum图 2.1.2程序设计 clear;clf; axis([0,4,0,4]); hold on for r=0:0.3:3.9 x=[0.1]; for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.5) for i=101:150

plot(r,x(i),'k.'); end text(r-0.1,max(x(101:150))+0.05,['\it{r}=',num2str(r)]) end 加密迭代后 clear;clf; axis([0,4,0,4]); hold on for r=0:0.005:3.9 x=[0.1];

for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.1) for i=101:150 plot(r,x(i),'k.'); end end 运行后得到Feigenbaum图

2.2实验题目二 2.2.1实验问题 某农夫有一个半径10米的圆形牛栏,长满了草。他要将一头牛拴在牛栏边界的桩栏上,但只让牛吃到一半草,问拴牛鼻子的绳子应为多长? 2.2.2问题分析 如图所示,E为圆ABD的圆心,AB为拴牛的绳子,圆ABD为草场,区域ABCD为牛能到达的区域。问题要求区域ABCD等于圆ABC 的一半,可以设BC等于x,只要求出∠a和∠b就能求出所求面积。先计算扇形ABCD的面积,2a÷π×πx2=2aπ2,再求AB的面积,用扇形ABE的面积减去三角形ABE的面积即可。

数学实验与数学软件(Mathmaticandmatlab)

数学软件与数学实验2013-2014学年度秋季学期期末试卷 专业:统计学 班级:11级2班 学号:20110723 姓名:晏静

一、按要求计算出下列表达式的值 (1)318, 3 162 53 ?? + ? ?? , 21 eπ+, 2.5 tg, 2 log15; (2)给出π的9位和e的10位近似值; (3)求658和4102的最大公约数及35和25的最小公倍数; (4)产生10个0与10之间随机数的一个表; (5)求虚数1453 i i i i +- -的实部,虚部,模,共轭,辐角。 (6)自己运用Table建立两个表,并进行表运算,如连接、并集、交、排序等操作。

二、因式分解 22212321332112322 1 22(1)()()()4;(2)21;x x x x x x x x x x x x x x x +++++---- 解: 三、解方程(组) 1234234124234-2+344-+-3(1)+31-73+3 x x x x x x x x x x x x x -=??=? ? +=??+=-? 65432(2)5232002000.x x x x x x -+--++= 四、求极限 () 20 (1)1sin ;(2);(3)56! ctg x n x n n n Lim x Lim n n →→∞ →∞++

(1) (2) (3) 五、求导数 32 22(1)()=ln(x+1+);(2)()=cos 2,; (3)=log (),Z . x f x x f f x e y x y Z xy x y y ???求的导数已知求求关于的二阶导 (1) (2) (3) 六、求下列定积分与不定积分: ()()()12201+sin ln 1+(1);(2);(3)sin (1+cos ) +1(1+)(2+-) x x dx dx x x x x x x ? ? ?2 2-(4)=0,=1,==.y D D x y y x I x e d σ??设是由直线围成的区域,计算的值 (1) (2)

Matlab数学实验一2015(标准答案版)

Matlab数学实验一——matlab初体验 一、实验目的及意义 [1] 熟悉MATLAB软件的用户环境; [2] 了解MATLAB软件的一般目的命令; [3] 掌握MATLAB数组操作与运算函数; 通过该实验的学习,使学生能熟悉matlab的基础应用,初步应用MATLAB软件解决一些简单问题。 二、实验内容 1.认识matlab的界面和基本操作 2.了解matlab的数据输出方式(format) 3. MATLAB软件的数组(矩阵)操作及运算练习; 三、实验任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→原理→算法与编程→计算结果或图形→心得体会) 完成如下题目,并按照实验报告格式和要求填写实验报告 1.在commandwindow中分别输入如下值,看它们的值等于多少,并用matlab的help中查询这些缺省预定义变量的含义,用中文写出它们的意义。 ijeps inf nan pi realmaxrealmin 2.分别输入一个分数、整数、小数等,(如:a=1/9),观察显示结果,并使用format函数控制数据的显示格式,如:分别输入format short、format long、format short e、format long g、format bank、format hex等,然后再在命令窗口中输入a,显示a的值的不同形式,并理解这些格式的含义。 3.测试函数clear、clc的含义及所带参数的含义(利用matlab的help功能)。 4. 写出在命令窗口中的计算步骤和运行结果。 (1)计算 1.22 10 (ln log) 81 e ππ +- ; >>(log(pi)+log(pi)/log(10)-exp(1.2))^2/81 >>ans = 0.0348 (2) >> x=2;y=4; >> z=x^2+exp(x+y)-y*log(x)-3 z = 401.6562 (3)输入变量 13 5.3, 25 a b ?? ==?? ?? ,在工作空间中使用who,whos,并用save命令将变量存入”D:\exe0 1.mat”文件。测试clear命令,然后用load命令将保存的”D:\exe01.mat”文件载入>> a=5.3 a=

《数学实验》报告matlab-第五次作业

《数学实验》报告 实验名称 matlab拟合与插值学院机械工程学院 专业班级 姓名 学号

2011年 10月

一、【实验目的】 掌握Matlab关于采用最小二乘法拟合曲线的方法。学会使用matlab求实际中得到数据的插值曲线。 二、【实验任务】 P130第8、10、12题 三、【实验程序】 P130第8题: x=[0.10,0.30,0.40,0.55,0.70,0.80,0.95]; y=[15,18,19,21,22.6,23.8,26]; p1=polyfit(x,y,1); p3=polyfit(x,y,3); p5=polyfit(x,y,5); disp('一阶拟合函数'),f1=poly2str(p1,'x') disp('三阶拟合函数'),f3=poly2str(p3,'x') disp('五阶拟合函数'),f5=poly2str(p5,'x') x1=0.1:0.0017:0.95; y1=polyval(p1,x1); y3=polyval(p3,x1); y5=polyval(p5,x1); plot(x,y,'rp',x1,y1,'--',x1,y3,'k-.',x1,y5); legend('拟合点','一次拟合','三次拟合','七次拟合') P130第10题 x=[10,15,20,25,30]; y=[25.2,29.8,31.2,31.7,29.4]; xi=10:.5:30; yi1=interp1(x,y,xi,'*nearest'); yi2=interp1(x,y,xi,'*linear'); yi3=interp1(x,y,xi,'*spline'); yi4=interp1(x,y,xi,'*cubic'); plot(x,y,'ro',xi,yi1,'--',xi,yi2,'-',xi,yi3,'k.-',xi,yi4,'m:') ,grid on

数学实验matlab练习题

2015-2016数学实验练习题 一、选择题 1.清除Matlab工作空间(wordspace)变量的命令是(B ) A. clc B. clear C. clf D.delete 2. 清除当前屏幕上显示的所有内容,但不清除工作空间中的数据的命令是( A ) A. clc B. clear C. clf D.delete 3. 用来清除图形的命令( C ) A. clc B. clear C. clf D.delete 4. 在MATLAB程序中,使命令行不显示运算结果的符号是( A ) A. ; B. % C. # D. & 5. 在MATLAB程序中,可以将某行表示为注释行的符号是( B ) A. ; B. % C. # D. & 6.在循环结构中跳出循环,执行循环后面代码的命令为 ( B ) A. return B. break C. continue D. Keyboard 7.在循环结构中跳出循环,但继续下次循环的命令为( C ) A. return B. break C. continue D. Keyboard 8. MATLAB中用于声明全局变量的关键字是( C ) A. inf B. syms C. global D. function 9. 用户可以通过下面哪项获得指令的使用说明( A ) A. help B. load C. demo D. lookfor 10.在MATLAB命令窗口中键入命令S=zoros(3);可生成一个三行三列的零矩阵,如果省略了变量名S,MATLAB表现计算结果将用下面的哪一变量名做缺省变量名( A ) A. ans; B. pi; C. NaN; D. Eps. 11. 9/0的结果是( B ) A. NAN; B. Inf; C. eps; D. 0 12.在MATLAB中程序或语句的执行结果都可以用不同格式显示,将数据结果显示为分数形式,用下面哪一条命令语句( D ) A. format long; B. format long e; C. format bank; D. fromat rat 13. 下列MATLAB命令中是构造1行3列的(-1,1)均匀分布随机矩阵的命令的是(D)

相关文档
相关文档 最新文档