数学软件上机练习题

更新时间:2024-01-18 14:48:01 阅读量: 教育文库 文档下载

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

1.完成下列操作:

(1) 求[100,999]之间能被21整除的数的个数。 (2) 建立一个字符串向量,删除其中的大写字母。 (1)

m=100:999;

n=find(mod(m,21)==0); length(n) (2)

ch='SVHBFguisdyihnFNKSDFBNJDFNnjkdf'; k=find(ch>='A'&ch<='Z'); ch(k)=[]

?E3?32. 设有分块矩阵A???O2?3R3?2?,其中E、R、O、S分别为单位矩阵、随机矩S2?2???ER?RS?阵、零矩阵和对角阵,试通过数值计算验证A2??。 ?2S??OE=eye(3,3);

R=rand(3,2); O=zeros(2,3); S=diag([1,2]); A=[E,R;O,S];

a=[E,R+R*S;O,S^2] A^2 A^2-a

?1?2?13.下面是一个线性方程组:??3??1?4?1314151?4??x??0.95??11????? x?0.672?5??????x??0.52??1??3??6??(1) 求方程的解。

(2) 将方程右边向量元素b3改为0.53再求解,并比较解的相对变化。 (3) 计算系数矩阵A的条件数并分析结论。

(1)

a=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; b1=[0.95,0.67,0.52]'; x1=inv(a)*b1 (2)

b2=[0.95,0.67,0.53]'; x2=inv(a)*b2 (3)

c=cond(a)

4. 求分段函数的值。

?x2?x?6x?0且x??3?y??x2?5x?60?x?5且x?2及x?3 ?x2?x?1其他?用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。 x=input('please input x:'); if x<0&x~=-3 y=x*x+x-6;

elseif x>=0&x<5&x~=2&x~=3 y=x*x-5.*x+6; else

y=x*x-x-1; end y

5. 输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分~100分为A,80分~89分为B,79分~79分为C,60分~69分为D,60分以下为E。要求:(1) 分别用if语句和switch语句实现。(2) 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 score=input('please input score:'); if score<=100&score>=0 switch fix(score/10) case {9,10}; grade='A'; case {8}

grade='B'; case {7}

grade='C'; case {6}

grade='D'; otherwise

grade='E'; end grade else

disp('错误'); end

6. 硅谷公司员工的工资计算方法如下:

(1) 工作时数超过120小时者,超过部分加发15%。 (2) 工作时数低于60小时者,扣发700元。

(3) 其余按每小时84元计发。

试编程按输入的工号和该号员工的工时数,计算应发工资。 n=input('please input number:'); t=input('please input time:'); switch t

case {t>120}

w=t*84+(t-120)*15/100*84; case {t<60} w=t*84-700; otherwise w=t*84 end 7、设y?1,???t??,在同一图形窗口采用子图的形式绘制不同图形:?t1?e条形图、阶梯图、杆图和全对数坐标图。 t=-pi:pi/20:pi; y=1./(1+exp(-t));

subplot(2,2,1);bar(t,y,'g'); subplot(2,2,2);stairs(t,y,'r'); subplot(2,2,3);stem(t,y,'b'); subplot(2,2,4);loglog(t,y,'k'); 8、数值与符号计算

exax (1)求极限lim (2)求不定积分xe?dx x???a?bex(3)已知线性方程组Ax=b,其中

?2?1??1???12?1???0???? A???12?1?,b???0,运用稀疏存储矩阵的方式求其解。

?????12?10??????0??12?????syms x a b;

f=exp(x)/(a+b*exp(x)); limit(f,x,inf,'left')

x=sym('x'); f2=x*exp(a*x); int(f2,x)

B=[-1,2,0;-1,2,-1;-1,2,-1;-1,2,-1;2,-1,0]; d=[-1;0;1];

A=spdiags(B,d,5,5)

f=[1;0;0;0;0]; x=(inv(A)*f)' 9、绘图

(1)绘制极坐标图:??3sin?cos???。 ,????33sin??cos?66(2)绘制曲面图:f(x,y)??51?x?y22,x?3,y?3。

theta=-pi/6:pi/100:pi/6;

rho=(3*sin(theta).*cos(theta))./(sin(theta).^3+cos(theta).^3); polar(theta,rho,'m')

x=-3:0.01:3; y=-3:0.001:3;

[x,y]=meshgrid(x,y); z=-5./(1+x.^2+y.^2); surf(x,y,z);

title('曲面图');

?x2?y2?910、求非线性方程组?,初值x0?3,y0?0的数值解。

?x?y?1function F=fun(X) x=X(1); y=X(2);

F(1)=x^2+y^2-9; F(2)=x+y-1;

X=fsolve('fun',[3,0],optimset('display','off')) 11、已知某精密仪器的某部件轮廓线的数据如下

x y 0 0 3 5 7 9 11 12 1.8 13 1.2 14 1.0 15 1.6 1.2 1.7 2.0 2.1 2.0 用三次样条插值法求x每改变0.1时的y值。 x=[0,3,5,7,9,11,12,13,14,15]; s=0:0.1:15;

y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6]; A=spline(x,y,s)

12.采用图形用户界面,从键盘输入参数a,b,n的值,考察参数对极坐标曲线

??acos(b?n?)的影响。 theta=0:pi/100:2*pi;

a=input('输入a='); b=input('输入b='); n=input('输入n='); rho=a*cos(b+n*theta); polar(theta,rho,'m')

13.设计一个图形用户界面,其中有一个坐标平面和两个按钮,当单击第一个按钮时,在坐标平面上绘制一副图形,当单击第二个按钮时,可以改变界面的背景颜色。

figure('name','图形演示系统','numbertitle','off','menubar','none'); hplot=uimenu(gcf,'Label','&Plot');

uimenu(hplot,'Label','&huatu','Call',['x=0:pi/100:2*pi;','y=sin(x);','plot(x,y);']);

hselet=uimenu(gcf,'label','&Selet');

uimenu(hselet,'label','&Red','call','set(gcf,\); uimenu(hselet,'label','&Yellow','call','set(gcf,\);

14.分别用if 语句和switch语句实现以下计算,其中a,b,c的值从键盘输入。

??ax2?bx?c0.5?x?1.5??y??asincb?x1.5?x?3.5

?c?lnb?3.5?x?5.5x??a=input('please input a='); b=input('please input b='); c=input('please input c='); x=input('please input x='); if x>=0.5&x<1.5 y=a*x^2+b*x+c; elseif x<=3.5&x>=1.5 y=a.*sin(b)^c+x; elseif x>=3.5&x<5.5 y=log(abs(b+c/x)); end

y

15.求下列矩阵的主对角线元素、上三角阵、下三角阵、秩、范数、条件数和迹。

?1?12?51?4(1)A???305??11150%1

3?2??;2??9??0.43432?(2)B??? ?8.9421??A=[1,-1,2,3;5,1,-4,2;3,0,5,2;11,15,0,9]

B=diag(A)

C=triu(A) D=tril(A) r=rank(A) a=norm(A) b=cond(A) c=trace(A) %2

B=[0.43,43,2;-8.9,4,21] A=diag(B) C=triu(B) D=tril(B) r=rank(B) a=norm(B) b=cond(B) c=trace(B)

16. 求微分方程组的数值解,并绘制解的曲线。

?y'1?y2y3?y'??yy?213 ??y'3??0.51y1y2??y1(0)?0,y2(0)?1,y3(0)?1function xdot=sys(x,y)

xdot=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];

t0=0;tf=8;

[x,y]=ode23('sys',[t0,tf],[0,1,1]) plot(x,y) 17. 已知

?010??100??00?,P??010?,P1??12??????001???101???abc?? A??def????ghk??完成下列运算:(1) B=P1·P2·A;(2) B的逆矩阵并验证结果;(3) 包括B矩阵主对角线元素的下三角阵;(4) B的行列式值。

syms a b c d e f g h i; p1=[0 1 0;1 0 0;0 0 1]; p2=[1 0 0;0 1 0;1 0 1]; a=[a b c;d e f;g h f]; b=p1*p2*a inv(b)

B1=inv(b) B1*b tril(b)

det(b)

18. 用符号方法求下列极限或导数。

x(esinx?1)?2(etanx?1)(1)limx?0sin3x(3)已知f(x,y)?(x?2x)e2?x2?y2?xy(2)y??y?2f,求,?x?x?y1?cos(2x),求y',y''xx?0,y?1syms x y z;

f=x*(exp(sin(x))+1)-2*(exp(tan(x))-1)/sin(x)^3; limit(f)

f=(1-cos(2*x))/x; diff(f) diff(f,x,2)

f=(x^2-2*x)*exp(-x^2-z^2-x*z); Zx=-diff(f,x)/diff(f,z) dfxz=diff(diff(f,x),z); x=sym('0');z=sym('1'); eval(dfxz)

19. 已知

?f1?1?f?0?2??f3?1??fn?fn?1?2fn?2?fn?3求f1~f100中:

(1) 最大值、最小值、各数之和。 (2) 正数、零、负数的个数。

clc f(1)=1; f(2)=0; f(3)=1; for n=4:100

f(n)=f(n-1)-2*f(n-2)+f(n-3) end max(f) min(f) sum(f)

length(find(f>0)) length(find(f==0)) length(find(f<0))

n?1n?2n?3n?3

20. 若两个连续自然数的乘积减1是素数,则称这两个边疆自然数是亲密数对,

该素数是亲密素数。例如,2×3-1=5,由于5是素数,所以2和3是亲密数,5是亲密素数。求[2,50]区间内: (1) 亲密数对的对数。

(2) 与上述亲密数对对应的所有亲密素数之和。

s=0;n=0; for i=2:50

b=i*(i+1)-1; for j=2:b

if rem(b,j)~=0 continue end break end j;

if j==b n=n+1; s=s+b; end end n s

21. 一物理系统可用下列方程组来表示:

?m1cos??msin??1?0??0?m10m20?sin?cos??sin??cos?0??a1??0??a??mg?0???2???1? 0??N1??0??????1??N2??m2g?从键盘输入m1、m2和θ的值,求a1、a2、N1和N2的值。其中g取9.8,输入θ时以角度为单位。

要求:定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。

function [a,b,N,M]=shiyanwu2(m,n,t)

A=[m*cos(t*pi/180),-m,-sin(t*pi/180),0;m*sin(t*pi/180),0,cos(t*pi/180),0;0,n,-sin(t*pi/180),0;0,0,-cos(t*pi/180),1]; B=[0,9.8*m,0,9.8*n]; C=inv(A)*B'; a=C(1); b=C(2); N=C(3); M=C(4);

%在命令窗口调用该函数文件:

m1=input('m1='); m2=input('m2=');

theta=input('theta=');

[a1,a2,N1,N2]=shiyanwu2(m1,m2,theta)

22.利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质: (1) 均值和标准方差。 (2) 最大元素和最小元素。

(3) 大于0.5的随机数个数占总数的百分比。 %(1)

A=rand(1,30000); b=mean(A) std(A,0,2) %(2) max(A) min(A) %(3) n=0;

for i=1:30000 if A(i)>0.5 n=n+1; end end

p=n/30000

23. 将100个学生5门功课的成绩存入矩阵P中,进行如下处理: (1) 分别求每门课的最高分、最低分及相应学生序号。 (2) 分别求每门课的平均分和标准方差。

(3) 5门课总分的最高分、最低分及相应学生序号。

(4) 将5门课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh。 提示:为避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机矩阵来表示学生成绩。 %(1)

A=45+51*rand(100,5); [Y,U]=max(A) [a,b]=min(A) %(2)

m=mean(A) s=std(A) %(3)

sum(A,2)

[Y,U]=max(ans)

[a,b]=min(ans) %(4)

[zcj,xsxh]=sort(ans)

24. 某气象观测得某日6:00~18:00之间每隔2h的室内外温度如下表所示。 时间h 6 8 10 12 14 16 18 室内温度t1 18.0 20.0 22.0 25.0 30.0 28.0 24.0 室外温度t2 15.0 19.0 24.0 28.0 34.0 32.0 30.0

试用三次样条插值分别求出该日室内外6:30~18:30之间每隔2h各点的近似温度(0C)。 h=6:2:18;

x=6.5:2:18.5;

t1=[18,20,22,25,30,28,24]; t2=[15,19,24,28,34,32,30]; T1=spline(h,t1,x) T2=spline(h,t2,x)

25. 有3个多项式P1(x)=x^4+2x^3+4x^2+5,P2(x)=x+2,P3(x)=x^2+2x+3,试进行下列操作:

(1) 求P(x)=P1(x)+P2(x)P3(x)。 (2) 求P(x)的根。

(3) 当x取矩阵A的每一元素时,求P(x)的值。其中 :

1.2?1.4???1? A??0.7523.5???52.5??0?(4)当以矩阵A为自变量时,求P(x)的值。其中A的值与第(3)题相同。

%(1)

p1=[1,2,4,0,5]; p2=[1,2]; p3=[1,2,3];

p=p1+[0,conv(p2,p3)] %为使两向量大小相同,所以补0 %(2)

A=roots(p) %(3)

A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5]; polyval(p,A) %(4)

polyvalm(p,A)

26. 用数值方法求定积分。 (1) I1?(2) I2??2?02?cost2?4sin(2t)2?1dt的近似值。 ln(1?x)dt 21?x?0

clc;clear;

f=inline('sqrt(cos(t.^2)+4*sin(2*t).^2+1)'); I1=quad(f,0,2*pi)

g=inline('log(1+x)./(1+x.^2)'); I2=quad(g,0,2*pi)

?42??71??59?27、将矩阵a??、b??和c??组合成两个新矩阵: ????75??83??62?(1)组合成一个4?3的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素;

(2)按照a、b、c的列顺序组合成一个行向量。 a=[4 2;5 7]; b=[7 1;8 3]; c=[5 9;6 2]; d=[a(:) b(:) c(:)] e=[a(:);b(:);c(:)]'

-aty?e28、有一组测量数据满足,t的变化范围为0~10,用不同的线型和标记

点画出a?0.1、a?0.2和a?0.5三种情况下的曲线,并在图中添加标题

y?e-at、用箭头线标识出各曲线a的取值和图例框。

t=linspace(0,10)

y1=exp(-0.1*t); y2=exp(-0.2*t); y3=exp(-0.5*t);

plot(t,y1,'s-',t,y2,'d',t,y3,'v:') title( 'y=exp(-a*t)');

text(t(30),y1(30),'\\leftarrow a=0.1'); text(t(40),y2(40),'\\leftarrow a=0.2'); text(t(30),y3(30),'\\leftarrow a=0.5'); legend('a=0.1','a=0.2','a=0.5')

29. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况。

1?2i??212(1) z2?ln(x?1?x),其中x??? ?0.4552??e0.3a?e?0.3a0.3?asin(a?0.3)?ln,a??3.0,?2.9,?,2.9,3.0 (2) z3?22?t20?t?1?(3) z4??t2?11?t?2,其中t=0:0.5:2.5

?t2?2t?12?t?3?%(1)

x=[2,1+2i;-0.45,5];

z2=0.5*log(x+sqrt(1+x.^2)) %(2)

a=-3.0:0.1:3.0;

z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2) %(3)

t=0:0.5:2.5;

z4=t.^2.*(t>=0&t<1)+(t.^2-1).*(t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t<3)

?1?6?30. 设有矩阵A和B:A??11??16??215??3?1778910???12131415?,B??0??17181920??9?22232425???423416??69??23?4?

?70?1311??0(1) 求它们的乘积C。

(2) 将矩阵C的右下角3×2子矩阵赋给D。

(3) 查看MATLAB工作空间的使用情况。

A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25] B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11] C=A*B

F=size(C)

D=C(F(1)-2:F(1),F(2)-1:F(2)) whos

31. 根据y?1?111????,求: 352n?1(1) y<3时的最大n值。 (2) 与(1)的n值对应的y值。

y=0; n=1;

while(y<3)

y=y+1/(2*n-1); n=n+1; end

y=y-1/(2*n-1) n=n-1 32. 考虑以下迭代公式:xn?1?a,其中a、b为正的学数。 b?xn(1) 编写程序求迭代的结果,迭代的终止条件为|xn+1-xn|≤10-5,迭代初值x0=1.0,迭代次数不超过500次。

?b?b2?4a(2) 如果迭代过程收敛于r,那么r的准确值是,当(a,b)的值取(1,1)、

2(8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。

a=input('a='); b=input('b='); Xn=1;

Xn1=a/(b+Xn); n=0;

while abs(Xn1-Xn)>1e-5 Xn=Xn1;

Xn1=a/(b+Xn); n=n+1; if n==500 break; end end n Xn1

r1=(-b+sqrt(b*b+4*a))/2 r2=(-b-sqrt(b*b+4*a))/2

33. 已知y1=x2,y2=cos(2x),y3=y1×y2,完成下列操作: (1) 在同一坐标系下用不同的颜色和线型绘制三条曲线。 (2) 以子图形式绘制三条曲线。

(3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 %(1)

x=linspace(-2*pi,2*pi,100); y1=x.^2;

y2=cos(2*x); y3=y1.*y2;

plot(x,y1,'b-',x,y2,'r:',x,y3,'y--'); text(4,16,'\\leftarrow y1=x^2');

text(6*pi/4,-1,'\\downarrow y2=cos(2*x)');

text(-1.5*pi,-2.25*pi*pi,'\%uparrow y3=y1*y2'); %(2)

x=linspace(-2*pi,2*pi,100); y1=x.^2;

y2=cos(2*x); y3=y1.*y2;

subplot(1,3,1);%分区 plot(x,y1);

title('y1=x^2');%设置标题 subplot(1,3,2);

plot(x,y2);

title('y2=cos(2*x)'); subplot(1,3,3); plot(x,y3);

title('y3=x^2*cos(2*x)'); %(3)

x=linspace(-2*pi,2*pi,20); y1=x.^2;

subplot(2,2,1);%分区 bar(x,y1);

title('y1=x^2的条形图');%设置标题 subplot(2,2,2); stairs(x,y1);

title('y1=x^2的阶梯图'); subplot(2,2,3); stem(x,y1);

title('y1=x^2的杆图'); subplot(2,2,4);

fill(x,y1,'r');%如果少了'r'则会出错 title('y1=x^2的填充图'); %其他的函数照样做。

34. 绘制极坐标曲线ρ=asin(b+nθ),并分析参数a、b、n对曲线形状的影响。 a=input('a='); b=input('b='); n=input('n='); t=-2*pi:0.01:2*pi; r=a*sin(b+n*t); polar(t,r) 35. 绘制函数的曲线图和等高线。 x2?y24z?cosxcosye? 其中x的21个值均匀分布[-5,5]范围,y的31个值均匀分布在[0,10],要求使用subplot(2,1,1)和subplot(2,1,2)将产生的曲面图和等高线图画在同一个窗口上。 x=linspace(-5,5,21); y=linspace(0,10,31); [x,y]=meshgrid(x,y);%在[-5,5]*[0,10]的范围内生成网格坐标 z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4); subplot(2,1,1); surf(x,y,z); subplot(2,1,2);

contour3(x,y,z,50);%其中50为高度的等级数,越大越密 36. 绘制曲面图形,并进行插值着色处理。

?x?cosscost??3??y?cosssint0?s?,0?t? ?22???z?sinsezsurf('cos(s)*cos(t)','cos(s)*sin(t)','sin(s)',[0,0.5*pi,0,1.5*pi]); %利用ezsurf隐函数

shading interp %进行插值着色处理

37. 已知lgx在[1,101]区间10个整数采样点的函数值如下表所示。

x 1 11 21 31 41 51 61 71 81 91 101 lgx 0 1.0414 1.3222 1.4914 1.6128 1.7076 1.7853 1.8513 1.9085 1.9510 2.0043

试求lgx的5次拟合多项式p(x),并绘制出lgx和p(x)在[1,101]区间的函数曲线。 x=1:0.1:101; y1=log10(x);

p=polyfit(x,y1,5) y2=polyval(p,x);

plot(x,y1,':',x,y2,'-')

38. 分别用3种不同的数值方法解线性方程组。

?6x?5y?2z?5u??4?9x?y?4z?u?13? ??3x?4y?2z?2u?1??3x?9y?2u?11A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2]; b=[-4,13,1,11]'; [L,U]=lu(A); x=U\\(L\\b) %直接方法 x=A\\b

%QR分解法 [Q,R]=qr(A); x=R\\(Q\\b)

%Cholesky分解(必须是正定矩阵)(此题为非正定矩阵) %R=chol(A);

39. 用符号方法求下列积分。

(1)?(3)?%(1)

dx1?x4?x8??20(2)?dx(arcsinx)21?x2

ln2x?1xx2dx(4)e(1?e)dx4?0x?1

x=sym('x');

f=1/(1+x^4+x^8); int(f) %(2)

x=sym('x');

f=1/((asin(x))^2*sqrt(1-x^2)^1/2); int(f) %(3)

x=sym('x');

f=(x^2+1)/(x^4+1); int(f,0,inf) %(4)

x=sym('x');

f=exp(x).*(1+exp(x))^2; int(f,0,log(2)) 40. 根据?26?1111?????,求π的近似值。当n分别取100、1000、122232n210000时,结果是多少?要求:分别用循环结构和向量运算(使用sum函数)

来实现。 %循环实现 clear

n=input('place enter n:' ); sum=0; for i=1:n

sum=sum+1/(i*i); pi=sqrt(6*sum); end pi

%向量实现 clear

n=input('pi=place enter n:' ); i=1:n;

f=1./i.^2; y=sum(f);

pi=sqrt(6*y); pi

41. 一个自然数是素数,且它的数字位置经过任意对换后仍为素数。例如13是绝对素数。试求所有两位绝对素数。 function [flag]=sushu(n) for k=2:sqrt(n) flag=1;

if rem(n,k)==0 flag=0;

break; end end

%在命令窗口输入 clear

for i=10:99

j=10*rem(i,10)+fix(i/10); if sushu(i)&sushu(j) disp(i) end end

42. 级数符号求和。

(1) 计算S???1。 2n?1n?12n?110(2) 求级数?nxn?1n2的和函数,并求?n之和。

n?15?%(1)

n=sym('n');

s=symsum(1/(2*n-1),n,1,10) %(2)

n=sym('n'); x=sym('x');

s=symsum(n^2*x^(n-1),n,1,inf) s=symsum(n^2/5^n,n,1,inf)

43. 建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,

而且在按下鼠标器的左键之后显示出Left Button Pressed字样。 44. 求代数方程的数值解。

(1) 3x+sinx-ex=0在x0=1.5附近的根。

(2) 在给定的初值x0=1,y0=1,z0=1下,求方程组的数值解。

?sinx?y2?lnz?7?0?y3 ?3x?2?z?1?0?x?y?z?5?0?%(1)

function f=fz(x) f=3*x+sin(x)-exp(x); %在命令窗口输入 fzero('fz',1.5) %(2)

function F=myfun(X) x=X(1);

y=X(2); z=X(3);

F(1)=sin(x)+y^2+log(z)-7; F(2)=3*x+2^y-z^3+1; F(3)=x+y+z-5; %在命令窗口输入

X=fsolve('myfun',[1,1,1],optimset('Display','off')) 45. 求微分方程的数值解。

?xd2ydy?5?y?0?dx2dx? ?y(0)?0?y'(0)?0??function ydot=sys(x,y)

ydot=[(5*y(1)-y(2))/x;y(1)]; %在命令窗口输入 x0=0;xf=20;

[x,y]=ode45('sys',[x0,xf],[0,0]); [x,y] 46.设f(x)?11?,编写一个MATLAB函数文件fx.m,24(x?2)?0.1(x?3)?0.01使得调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。 function y=fx(x)

y=1./((x-2).^2+0.1)+1./((x-3).^4+0.01); %在命令窗口输入 y=fx(2)

a=[1,2,3,4]; y=fx(a) 47.已知y?f(40)

f(30)?f(20)(1) 当f(n)=n+10ln(n2+5)时,求y的值。

(2) 当f(n)=1×2+2×3+3×4+...+n×(n+1)时,求y的值。 function f1=m(n) f1=n+10*log(n*n+5) %在命令窗口输入

y=m(40)/(m(30)+m(20))

function f2=m(n) i=1:n;

f2=sum(i.*(i+1));

%在命令窗口输入

y=m(40)/(m(30)+m(20))

48.先利用默认属性绘制曲线y=x2e2x,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文件对象给曲线添加文字标注。 x=-2:0.01:2;

y=x.^2.*exp(2*x); h=line(x,y);

set(h,'color','r','linestyle',':','linewidth',2) text(1,exp(2),'y=x^2*exp(2*x)') 49. 用符号方法求下列极限或导数。

(1)lim?x??1??arccosxx?1t3?dAd2Ad2A,2,?,分别求dxdtdxdtlnx?2?x2?y2?xy?ax(2)已知A???tcosx

(3)已知f(x,y)?(x?2x)e?y?2f,求,?x?x?yx?0,y?1%(1) syms x;

f=(pi^1/2-acos(x)^1/2)/(x+1)^1/2; limit(f,x,-1,'right') %(2)

syms a x t;

A=[a^x t^3;t*cos(x) log(x)]; diff(A,x) diff(A,t,2)

diff(A,x)*diff(A,t) %(3)

syms x z

f=(x^2-2*x)*exp(-x^2-z^2-x*z); Zx=-diff(f,x)/diff(f,z) dfxz=diff(diff(f,x),z); x=sym('0');z=sym('1'); eval(dfxz)

50. 求微分方程初值问题的符号解,并与数值解进行比较。

?d2ydy?2?4?29y?0 dx?dx?y(0)?0,y'(0)?15?clear all;clc;

dsolve('D2y+4*Dy+29*y','y(0)=0','Dy(0)=15','x')

51.为图形窗口建立快捷菜单,用以控制窗口的背景颜色和大小。

clear;

g=figure('Position',[500,330,300,320],'Name','图形','NumberTitle','off',... 'menubar','none'); h=uicontextmenu;

hc=uimenu(h,'Label','颜色'); hw=uimenu(h,'Label','大小');

uimenu(hc,'Label','红色','Call','set(g,\); uimenu(hc,'Label','绿色','Call','set(g,\);

uimenu(hw,'Label','放大','Call','set(g,\); uimenu(hw,'Label','缩小','Call','set(g,\); set(g,'UIContextMenu',h);

52.设计一个对话框,其中有一个编辑框和按钮,当单击按钮时,使编辑框的内容加5。

53. 求函数在指定区间的极值。

x3?cosx?xlogx(1) f(x)?在(0,1)内的最小值。 xe332?4x1x2?10x1x2?x2(2) f(x1,x2)?2x1在[0,0]附近的最小值点和最小值。

%1

function f=g(x)

f=(x.^3+cos(x)+x*log(x))/exp(x); %在命令窗口输入

[x,fmin]=fminbnd('g',0,1) %2

function f=f(x,y)

f=2*x^3+4*x*y^3-10*x*y+y^2; %在命令窗口输入

[x,y,fmin]=fminbnd('fx',0,0) 54. 求下列方程的符号解。

(1)ln(1?x)?5?21?sinx(2)x2?9x?1?1?0

??x2?y2?100?0x(3)3xe?5sinx?78.5?0(4)???3x?5y?8?0clear all;clc;

x1=solve('log(x+1)-5/(1+sin(x))=2') x2=solve('x^2+9*sqrt(x+1)-1')

x3=solve('3*x*exp(x)+5*sin(x)-78.5')

[x4 y4]=solve('sqrt(x^2+y^2)-100','3*x+5*y-8')

55. 求微分方程组的通解。

?dx?dt?2x?3y?3z??dy??4x?5y?3z ?dt?dz?4x?4y?2z?dt?clear all;clc;

[x y z]=dsolve('Dx=2*x-3*y+3*z',...

'Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z','t')

56.在图形窗口默认菜单条上增加一个Plot菜单项,利用该菜单项可以在本窗口绘制三维曲面图形。

screen=get(0,'ScreenSize');

figure('Position',[200,130,300,120],'Name','图形','NumberTitle','off',... 'menubar','none');

hplot=uimenu(gcf,'Label','&plot'); uimenu(hplot,'Label','&ssk','Call',...

['x=-pi:pi/20:pi;','[x,y]=meshgrid(x);',... 'z=sin(x).*cos(y);','surf(x,y,z);']);

55. 求微分方程组的通解。

?dx?dt?2x?3y?3z??dy??4x?5y?3z ?dt?dz?4x?4y?2z?dt?clear all;clc;

[x y z]=dsolve('Dx=2*x-3*y+3*z',...

'Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z','t')

56.在图形窗口默认菜单条上增加一个Plot菜单项,利用该菜单项可以在本窗口绘制三维曲面图形。

screen=get(0,'ScreenSize');

figure('Position',[200,130,300,120],'Name','图形','NumberTitle','off',... 'menubar','none');

hplot=uimenu(gcf,'Label','&plot'); uimenu(hplot,'Label','&ssk','Call',...

['x=-pi:pi/20:pi;','[x,y]=meshgrid(x);',... 'z=sin(x).*cos(y);','surf(x,y,z);']);

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

Top