1、P1051. 主程序:s1,kk=quad(f1,0,2);s2,kk=quad(f2,2,4);s=s1+s2 函数:function y=f1(x)y=log(x.2);function y=f2(x)y=log(16)./(2+sin(x+1).*pi);f1=inline(log(x.2),x);f2=inline(log(16)./(2+sin(x+1).*pi),x);s1,kk=quad(f1,0,2);s2,kk=quad(f2,2,4);s=s1+s2 3. syms x a taus=int(log(x.2),0.5,tau)solve(s=10)4. 求解方程 x5+6x
2、4-3x2=10 的 5 个根,并将其位置用五角星符号标记在复平面上,要求横纵坐标轴刻度等长,注明虚轴和实轴,在 title 位置上写出方程。clc;close all;clear all; factor=1 6 0 -3 0 -10; ro=roots(factor);disp(ro);scatter(real(ro),imag(ro),p);axis equal;title(x5+6x4-3x2=10);xlabel(real axis);ylabel(imagine axis(j); 6. 某班同学成绩已经存放在矩阵 A 中,每行为某一位同学的数据,第 1 列为学号,第 2 列至第 4
3、列为其三门课程的成绩,试编程按照 3 门课平均成绩由小到大的顺序重新排列成绩表,并放在矩阵 B 中。clc;clear all;close all;A=99234012,95,73,88; 99234033,84,77,80; 99234009,66,80,72; 99234067,92,93,59; y,index=sort(mean(A(:,2:end),2);B=A(index,:); disp(B);9. figure (1)u,v,b=ginput(5);line(u,v);for i=1:5;str=(,num2str(u(i),);text(u(i),v(i),str);end1
4、1.解如下微分方程,并绘制出图像 y(x).(1)function ydot= f(x,y) ydot=zeros(2,1);ydot(1)=y(2); ydot(2)=2*(y(2).2);t0=0;tf=1; x0=0,-1; t,x=ode45(f,t0,tf,x0);plot(t,x); title(y=f(x); xlabel(x);ylabel(y); (2)t0=1;tf=2; x0=1,0; t,x=ode45(f,t0,tf,x0);plot(t,x); title(y=f(x); xlabel(x);ylabel(y); function xdot= f(t,x) xdot
5、=zeros(2,1);xdot(1)=x(2); xdot(2)=-1./(x(1).3);p873. 在同一坐标系下绘制 t2,- t2,t2sint 在 t0,2pi内的曲线图;选择合适的“曲线线型”,“曲线颜色”、“标记符号”选项,并在图形上加注坐标轴名和图名。close all;clear all;clc; t=linspace(0,2*pi,1024);y1=t.2; y2=-t.2; y3=(t.2).*sin(t);figure(2);plot(t,y1,:y,t,y2,-g,t,y3,-r); legend(y=t2,y=-t2,y=t2*sin(t); title(三个函数
6、图形);xlabel(t);ylabel(f(t); 4. theta=linspace(0,16*pi,2048); subplot(2,2,1);polar(theta,1.0013*theta.2); subplot(2,2,2);polar(theta,cos(3.5*theta);subplot(2,2,3);polar(theta,sin(theta)./theta); subplot(2,2,4);polar(theta,1-(cos(7*theta).3); 5. ttl=主视图, 左视图, 俯视图,三维图;angle=0,0,-90,0,0 90,-37.5,30;for i
7、=1:4subplot(2,2,i);x=0:0.01:1;y=0:0.02:2;x,y=meshgrid(x,y);z=1./sqrt(1-x.2)+y.*2)+1./sqrt(1+x.2)+y.2);mesh(x,y,z)view(anglei);title(ttli);end6. 用鼠标左键在图形窗口上取 5 个点,在每个点的位置处写出一个字符串来显式鼠标点的横坐标值,然后将这些点连成折线。axis(0,5,0,5); hold on;box on;x=;y=;gtext(); for i=1:5x1,y1,button=ginput(1);if(button=1)break;endpl
8、ot(x1,y1,o);x=x,x1;y=y,y1; text(x1,y1,num2str(x1);line(x,y);endhold off老师: figure (1)u,v,b=ginput(5);line(u,v);for i=1:5;str=(,num2str(u(i),);text(u(i),v(i),str);end油桶clc;clear;syms x y h;w=ezplot(x2/(2.52)+(y-2)2/4-1=0); %绘制椭圆.set(w,Color,k); hold on;axis(-2.55,2.55,0,4.05); %设置坐标值.set(gca,XTick,XC
9、olor,w); %将坐标隐去.set(gca,YTick,YColor,w);line(0,0,0,4,Color,k,LineStyle,-) %画出中间刻度线.hold on;s=int(100-25*(y-2).2)/16).0.5,0,h); %用 int 函数求不定积分.for i=1:25H(i)=solve(s-0.3125*i,h); %求得各个刻度的高度.endfor i=1:25if mod(i,4)=0plot(-0.3,0.3,H(i),H(i),b) ; %每四格为一长刻度.elseplot(-0.1,0.1,H(i),H(i),k) ;endend%标注长刻度分别
10、为 20,40,60,80,100,120.text(0.4,0.86,20); text(0.4,1.42,40);text(0.4,1.93,60);text(0.4,2.43,80);text(0.35,2.97,100);text(0.35,3.64,120);用循环语句形成一个有 20 个分量的数组,满足 fibonacci 规则,令第 K+2 个元素满足 a(k+2)=a(k)+a(k+1)a(1)=1;a(2)=1;for k=1:18a(k+2)=a(k)+a(k+1);enda在同一图形窗口上分成四个绘图区域,试分别绘制主视图,左视图,俯视图和默认视角的三位表面图。ttl=主
11、视图, 左视图, 俯视图,三维图;angle=0,0,-90,0,0 90,-37.5,30;for i=1:4subplot(2,2,i);ezmesh(关于 x,y,z 的关系表达式,取值范围);view(anglei);title(ttli);endttl=主视图, 左视图, 俯视图,三维图;angle=0,0,-90,0,0 90,-37.5,30;for i=1:4subplot(2,2,i);ezmesh(1/(1-X)2+Y2)0.5+1/(1+X)2+Y2)0.5,-2 2);view(anglei);title(ttli);End试用文字和数学公式描述下面指令要完成的计算任务
12、 roots(11 0 -6 2 0 -3)roots 为求多项式的根,其向量表达多项式的系数,对应降幂排列,那么就有本题对应求解 11x5-6x3+2x2-3 的根。试举例说明 matlab 语言中三位数组是如何定义的。在 Matlab 中习惯性的会将二维数组中的第一维称为“行”第二维称为“列”,而对于三维数组的第三位则是习惯性的称为“页”。在 Matlab 中将三维及三维以上的数组统称为高维数组,三维数组也是高级运算的基础。举例如课本 31 页。在程序段中插入语句 A=zeros(10000,1);能显著缩短程序运行时间。因为插入本语句后,在循环语句前预先为变量 A 分配了足够的单元,循环
13、时只需向各元素内填数,如果不插入的话则未预先定义 A 的大小,每次执行一次循环体便要扩充一次 y 的长度,增加了内部工作量。Matlab 语言的基本编程单元为 复数矩阵摄氏度转华氏度clc;clear; C=input(c=); f=32+C*1.8; disp(sprintf(f=%2.2f,f); 华氏度转摄氏度clc;clear; f=input(f=); c=(f-32)/1.8; disp(sprintf(c=%2.2f,c); 实例二: 数据的多项式曲线拟合例: 已知某压力传感器的标定数据见下表,p 为电压值,u 为电压值。p 0.0 1.1 2.1 2.8 4.2 5.0 6.1
14、 6.9 8.1 9.0 9.9u 10 11 13 14 17 18 22 24 29 34 39试用多项式 dcpba23拟合其特性函数,求出 和 ,把拟合曲线和各个标定点画在同一幅图a,上。解:将压力视为自变量,电压视为函数,编程如下:p=0,1.1,2.1,2.8,4.2,5,6.1,6.9,8.1,9,9.9;u=10,11,13,14,17,18,22,24,29,34,39;A=polyfit(p,u,3);a=A(1),b=A(2),c=A(3),d=A(4),p1=0:0.01:10;u1=polyval(A,p1);plot(p1,u1,p,u,o)0 1 2 3 4 5
15、6 7 8 9 10510152025303540pu1.如何求未保存数据(上次 matlab 执行了 save x ):执行load x y即可得到 y 的数据2.画视图 P87 页上3.roots 的作用相当于求 11s5+0s4-6s3+2s2+0s-3=0 的根。4.三维数组的建立 P31 下5.A=zeros(100000,1)的意义预先定维可以节约时间。1.求定积分函数程序 1:函数名为 jifen1.mfunction y=jifen1(x)y=exp(pi-x)函数程序 2:函数名为 jifen2.mfunction y=jifen2(x)y=log10(16)/(2+sin(
16、x+1)*pi)主程序:y1=quad(jifen1,0,3.5);y2=quad(jifen2,3.5,7);y=y1+y12.求解微分方程函数程序:函数名 difen.mfunction xdot=difeq(t,x)xdot=zeros(4,1)xdot(1)=x(2)xdot(2)=2*x(4)+x(1)xdot(3)=x(4)xdot(4)=-2*x(2)+x(3)主程序:t0=0;tf=20;x0=1.1 0 0 -1;t,x=ode23(difeq,t0,tf,x0)xx=x(:,3)yy=x(:,3)plot(yy,xx)3.求采样点的幅频、相频、条形、波形图(数据 y 和 h 存储在 signaldata.mat文件中)。load signaldata y hN=length(y);t=(0:(N-1)*h;Y=fft(y);f=t/h/(N-1)*h);n=floor(length(f)/2);subplot(2,2,1)plot(f(1:n),abs(Y(1:n)subplot(2,2,3)plot(f(1:n),angle(Y(1:n)*180/pi)subplot(2,2,2)hist(y,20)subplot(2,2,4)plot(t,y)4.求多项式系数P104