MATLAB软件与基础数学实验

更新时间:2024-07-08 03:02:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MATLAB软件与基础数学实验

Saw H.Z

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

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

>> s=(12+2*(7-4))/3^2 s = 2

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

for i=1:5 y=y*i; end y

例1-3 计算2开平方

>> s=2^(0.5) s =

1.4142 >>

例1-4 计算2开平方并赋值给变量x(不显示)

查看x的赋值情况 a=2;

x=a^(0.5); x

sin(|a|?|b|)例1-4 设a??24,b?75,计算

a=(-24)/180*pi; b=75/180*pi; a1=abs(a); b1=abs(b); c=abs(a+b);

s=sin(a1+b1)/(tan(c))^(0.5)

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

??tan(|a?b|)的值。

a=4;b=3;c=2; p=(a+b+c)/2;

s=(p*(p-a)*(p-b)*(p-c))^(0.5)

?123???120??B??113?A??456???????101??,?211??,计算A?B,AB,|A|,A?1。 例1-7 设

a=[1,2,3;4,5,6;1,0,1];

b=[-1,2,0;1,1,3;2,1,1]; x=a+b; y=a*b; z=norm(a); q=inv(a); x,y,z,q

例1-8 显示上例中矩阵A的第2行第3列元素,并对其进行修改. a=[1,2,3;4,5,6;1,0,1];

x=a(2,3);

a(2,3)=input('change into=') x,a

例1-9 分别画出函数y?xcosx和

a=1;

x=-1/6*pi:0.01:1/6*pi; y=(x.*x).*cos(x); z=sin(x)/x; plot(x,y,x,z);

2z?sinxx在区间[-6?,6?]上的图形。

?121??2??42?6?X??3???????102????4??的解。 例1-10 试求方程组?a=[1,2,1;4,2,-6;-1,0,2];

b=[2;3;4]; x=inv(a)*b

?121????123?X?42?6???111??????102??例1-11 试求矩阵方程的解。

a=[1,2,1;4,2,-6;-1,0,2];

b=[1,2,3;1,1,1]; x=b*inv(a)

例1-12 建立同时计算y1?(a?b),y2?(a?b)的函数。即任给a,b,n三个数,返回y1,y2.

a=input('a=');

nnb=input('b='); n=input('n='); y1=(a+b)^n; y2=(a-b)^n; y1,y2

f(x)?例1-13 设段。

% 加坐标网格 x=0:2;

y=1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6; plot(x,y); grid on;

例如:对于例题1-13中所定义的f(x),求其零点c. 例如:求一元函数最小值(fminbnd命令)

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

11??6(x?0.3)2?0.01(x?0.9)2?0.04,试画出在[0,2]上的曲线

例1-14 求二重积分[0,1]?[1,2]及三重积分[0,1]?[0,1]?[0,1]syms x y z

a1=int(y,int(x,x.*y,1,2),0,1);

a2=int(z,int(y,int(x,x.*exp.^y+z.^2,0,1),0,1),0,1); a1,a2

32??xyd??f(x)dx.

???(xe?z)dxdydz 0y2 1。

例1-15 已知y?t?5t?6t?5,设该曲线在区间[0,x]上所围曲边梯形面积为s,

试求当s分别为5,10时的x的值。

分.

>> f=inline('1/4*t^4-5/3*t^3+3*t^2+5*t-5'); >> t=fzero(f,[0,5]) t =

0.7762 >> clear

>> f=inline('1/4*t^4-5/3*t^3+3*t^2+5*t-10'); >> t=fzero(f,[0,10]) t =

1.5179

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

(2) 用定积分计算命令(trapz,quad,quadl)求无理数ln2的近似值。 (提示:e =2.7182818284…,ln2=0.6931471806…)

(

(1)

>> clear

>> f=inline('log(x)-1'); >> x=fzero(f,2);

>> e=vpa(x,10) e =

2.718281828 (2)

trapz :>> clear >> x=0:0.01:1; >> y=1./(1+x); >> a=trapz(x,y); >> ln2=vpa(a,10) ln2 =

.6931534305

quad :>> f=inline('1./(1+x)'); >> a=quad(f,0,1); >> ln2=vpa(a,10) ln2 =

.6931471999

quadl: >> a=quadl(f,0,1); >> ln2=vpa(a,10) ln2 =

.6931471861

sin(x?h)?sinxh例1-17 求极限h?0。

lim>> syms x h

>> limit((sin(x+h)-sin(x))/h,h,0) ans = cos(x)

?f?f?2f?2f,,2,.n?x?y?x?y?yf(x,y)?xy?sin(y)例1-18:设,求

f=(x^n)*y+sin(y);

syms x n y;

>> f=(x^n)*y+sin(y); >> dx=diff(f,x); >> dy=diff(f,y); >> dx dx =

n*x^(n - 1)*y >> dy

dy =

cos(y) + x^n

dy2=diff(f,y,2); >> dy2 dy2 =

-sin(y)

>> dxdy=diff(diff(f,x),y); >> dxdy

dxdy =

n*x^(n - 1) 例

?xy1-19

1?x2dx t 1xy,

?xy 0 1?x2dy,

? 0dx? x 01?x2dy? 1?x?x?y 0dx? 1 0dy? 1 0(x?y?z)dz.? syms x y z

%声明符号变量,注意变量间必须用空格分开级数求和(symsum)

%求级数1?12?13???1k?? (ans=inf 即?)

1 %求级数1?2?12?3???1k?(k?1)?? (ans=1) %求级数a?aaa3?32???3k?? (ans= 3/2*a)

泰勒展开(taylor)

? syms x

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

求fx对自变量x(默认)在x=0点(默认)泰勒展开前6项(默认) 求fx对自变量x(默认)在x=1点泰勒展开式前8项

syms x

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

1/(1+x+x^2)

>> taylor(fy,x,0,6) ans =

1-x+x^3-x^4

>> taylor(fy,x,1,8) ans = 1/73

方程求根(solve)

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

求方程fx=0关于变量b的符号解

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

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

solve(fx,'b') ans =

-(a*x^2+c)/x

微分方程(组)求解(dsolve)

求方程y'=5的通解,默认自变量为t 求方程y'=x的通解,指定自变量为x 求方程y''=1+y'满足y(0)=1,y'(0)=0的特解

?x??x?y?求方程组?y??2x 的通解,默认自变量为t

>> dsolve('Dy=5','x') ans = 5*x+C1

dsolve('Dy=x','x') ans =

1/2*x^2+C1

>> dsolve('D2y=1+Dy','y(0)=1','Dy(0)=0') ans = exp(t)-t

>> [x,y]=dsolve('Dx=x+y,Dy=2*x')

x =

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

C1*exp(-t)+C2*exp(2*t)

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

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

x=0:pi/10:2*pi; >> y=sin(x); >> plot(x,y) >> y=cos(x); >> plot(x,y)

例2-2 画出[0,2?]上正弦、余弦曲线并对线型加粗、点型加大,重新定置坐标系以及

加注相关说明和注释。 x=0:pi/10:2*pi; >> y=sin(x); a=plot(x,y,’-+’); set(a,'LineWidth',3.0) axis([0 7 -2 3]) title(‘tuxiang’); xlabel(‘x zhou’) ylabel(‘y zhou’) text(1,2,asd);

例2-3 分别在两个图形窗口画出填充一正方形和极坐标方程r?2sin2??cos2?的

图形。 figure(1); x=[0 1 1 0 0] y=[0 0 1 1 0] >> fill(x,y,'x')

figure(2); theta=[0:0.01:2-pi]

r=2*sin(x*theta).*cos(2*theta); polar(theta,r);

例2-4在[-2.5,2.5]上画出函数y?e>> x=[-2.5:0.25:2.5]; >> y=exp(-x.*x); >> stairs(x,y); >> bar(x,y)

?x2的直方图和阶梯图。

22x?y?1的图形。例2-4 采用不同形式(直角坐标、参数、极坐标),画出单位圆

>> t=deg2rad(0:360);

>> x=cos(t); >> y=sin(t); >> plot(x,y)

>> x=0:pi/20:2*pi; >> plot(cos(x),sin(x))

>> x=0:pi/20:pi*2; >> y=sin(x)+cos(x); >> polar(x,y)

例2-5 画出螺旋线:x=sin(t),y=cos(t),z=t,t?[0,10?]上一段曲线。 >> t=0:pi/50:10*pi; >> y1=sin(t); >> y2=cos(t); >> plot3(y1,y2,t);

例2-6 画出矩形域[-1,1] ×[-1,1]上旋转抛物面:z?x?y。

>> x=linspace(-1,1,100); >> y=x;

>> [X,Y]=meshgrid(x,y); >> Z=X.^2+Y.^2; >> mesh(X,Y,Z)

22

例2-7 在圆形域x?y?1上绘制旋转抛物面:z?x?y。

>> x=linspace(-1,1,300); >> y=x;

>> [X,Y]=meshgrid(x,y); >> Z=X.^2+Y.^2; >> i=find(Z>1); >> Z(i)=NaN; >> mesh(X,Y,Z)

2222z?例2-9 画出

sinx2?y2x2?y2在|x|?7.5,|y|?7.5上的图形。

>> x=7.5:0.5:7.5; >> y=x

>> [X,Y]=meshgrid(x,y); >> u=sqrt(X.^2+Y.^2)+eps; >> Z=sin(u)./u; >> surf(X,Y,Z);

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

时 间 数据1 数据2 数据3 1 2 3 4 5 6 7 8 9 12.51 13.54 15.60 15.92 20.64 24.53 30.24 50.00 36.34 9.87 20.54 32.21 40.50 48.31 64.51 72.32 85.98 89.77 10.11 8.14 14.17 10.14 40.50 39.45 60.11 70.13 40.90 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,’kt:’,t,d3,’b*-’,’linewidth’,2,’markersize,8’); title(‘time&data’);xlable(‘time’);ylable(‘data’); axis([0 10 0 100]);

text(6.5,25.5,’’leftarrowdata1’);text(3,43.8,’data2\\rightarrow’); text(4.8,30.5,’leftarrowdata3’); grid

本文来源:https://www.bwwdw.com/article/snh.html

Top