1、一多项式拟合多项式拟合是多项式运算的一个重要组成部分,在工程及科研工作中都等到了广泛的应用。其实现一方面可以由矩阵的除法求解超定方程来进行;另一方面在 MATLAB 中还提供了专门的拟合函数 polyfit,其常用调用格式如下:polyfit(X,Y,n):其中 X,Y 为拟合数据,n 为拟合多项式的阶数。p,s=polyfit(X,Y ,n):其中 p 为拟合多项式系数常量,s 为拟合多项式系数常量的结构信息。1.用 5 阶多项式对 0,pi/2上的正弦函数进行最小二乘拟合。x=0:pi/20:pi/2;y=sin(x);a=polyfit(x,y,5);x1=0:pi/30:pi*2;y1
2、=sin(x1);y2=a(1)*x1.5+a(2)*x1.4+a(3)*x1.3+a(4)*x1.2+a(5)*x1+a(6);plot(x1,y1,b-,x1,y2,r*)legend(原曲线,拟合曲线)axis(0,7,-1.2,4)0 1 2 3 4 5 6 7-1-0.500.511.522.533.54原原原原原原原2.设原始数据为 x, 在 11 个点上测得的 y 值如下:X=-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0;Y=2.8 2.96 2.54 3.44 3.56 5.4 6.0 8.4 9.5 13.3 15;采用2阶和1
3、0阶多项式拟合,并画图比较x=-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0;y=2.8 2.96 2.54 3.44 3.56 5.4 6.0 8.4 9.5 13.3 15;a=polyfit(x,y,2);x1=-2:0.01:2;y2=a(1)*x1.2+a(2)*x1+a(3);plot(x,y,b-,x1,y2,r-)-2 -1.5 -1 -0.5 0 0.5 1 1.5 2246810121416x=-2.0 -1.6 -1.2 -0.8 -0.4 0 0.4 0.8 1.2 1.6 2.0;y=2.8 2.96 2.54 3.44
4、3.56 5.4 6.0 8.4 9.5 13.3 15;a=polyfit(x,y,10);x1=-2:0.01:2;y2=a(1)*x1.10+a(2)*x1.9+a(3)*x1.8+a(4)*x1.7+a(5)*x1.6+a(6)*x1.5+a(7)*x1.4+a(8)*x1.3+a(9)*x1.2+a(10)*x1+a(11);plot(x,y,b-,x1,y2,r-)-2 -1.5 -1 -0.5 0 0.5 1 1.5 2051015202530二图形的保持与子图1.在 4 个子图中绘制不同的三角函数图。 (二维子图的绘制)x=0:0.1*pi:2*pi;subplot(2,2,1
5、);plot(x,sin(x),-*);title(sin(x);subplot(2,2,2);plot(x,cos(x),-o);title(cos(x);subplot(2,2,3);plot(x,sin(x).*cos(x),-x);title(sin(x)*cos(x);subplot(2,2,4);plot(x,sin(x)+cos(x),-h);title(sin(x)+cos(x)0 2 4 6 8-1-0.500.51 sin(x)0 2 4 6 8-1-0.500.51 cos(x)0 2 4 6 8-0.500.5 sin(x)*cos(x)0 2 4 6 8-2-1012
6、 sin(x)+cos(x)2.对于函数 , 的取值范围 02, 的取值范22)1()(yxzxy围 0,画出四个三维子图,其中 ; ;2 1,1,; ;要求每一个子图有标题。,15.0,8.x,y=meshgrid(0:0.1:2,-2:0.1:0);subplot(2,2,1);z=(x-1).2+(y+1).2;mesh(z);title(子图 1);subplot(2,2,2);z=2*(x-1).2+(y+1).2;mesh(z);title(子图 2);subplot(2,2,3);z=(x-1).2+2*(y+1).2;mesh(z);title(子图 3);subplot(2,
7、2,4);z=0.8*(x-1).2+0.5*(y+1).2;mesh(z);title(子图 4);0 204002040012原原 10 204002040024原原 20 204002040024原原 30 204002040012原原 4三龙格-库塔方法1.用经典的 R-K 方法求解 y=-2y+2x2+2x。其中(0=x=0.5),y(0)=1.编制函数文件(fun.m)fun.mfunction f=fun(x,y)f=-2*y+2*x.2+2*x在命令窗口输入x,y=ode23(fun,0,0.5,1);x0 0.0400 0.0900 0.1400 0.1900 0.2400
8、0.2900 0.3400 0.3900 0.4400 0.4900 0.5000y1.0000 0.9247 0.8434 0.7754 0.7199 0.6764 0.6440 0.6222 0.6105 0.6084 0.6154 0.6179再输入:plot(x,y,-o)可等到图形如下:0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50.650.70.750.80.850.90.9512.解刚性方程解如下刚性方程:(见课本 251 页)编制 f.m 文件function f=f(x,y)f=-2 1;998 -999*y+2*sin(x);
9、999*(cos(x)-sin(x)在程序窗口输入:tic;ode45(f,0 10,2,3);t1=toct1 =3.4540tic;ode23(f,0 10,2,3);t1=toct1 =2.9839tic;ode23s(f,0 10,2,3);t1=toct1 =0.69570 1 2 3 4 5 6 7 8 9 10-1.5-1-0.500.511.522.533.用龙格库塔方法求解常微分方程,初始条件为 ,4d2tx,20tdx10tx编制函数文件(f.m)function ydot=f(t,y)ydot=y(2); 4 ;在命令窗口输入:T,Y=ode45(f,0:0.1:10,1
10、,2);plot(T,Y(:,1),T,Y(:,2);0 1 2 3 4 5 6 7 8 9 100501001502002504.设有一微分方程组 ,已知 当时,)2sin()co(X21tt 0t, ,求微分方程在 上的解,并画出5.0)(1X5.0)(25,的轨迹。2编制函数文件(liao.m) function f=liao(t,X)f=X(2)+cos(t);sin(2*t);在命令窗口输入:T,X=ode45(liao,0 50,0.5,-0.5);plot(X(:,1),X(:,2);-1 -0.5 0 0.5 1 1.5 2-0.5-0.4-0.3-0.2-0.100.10.2
11、0.30.40.5四While/for 循环1.用for 循环求1!+2!+3!+20! 的值sum=0;for i=1:20;prd=1;for k=1:i;prd=prd*k;endsum=sum+prd;endsumsum =2.5613e+018五Simulink 电路仿真Simulink 是 MATLAB 软件的扩展,是实现动态系统建模和仿真的一个软件包。运行一个仿真完整的步骤:(1).设置仿真参数(2).启动仿真(3).仿真结果分析1、 电阻电路的计算,电路如图建立 Simulink 模型,R1=2,R2=4,R3=12 ,R4=4 ,R5=12,R6=4 ,R7=2,Us=10V
12、。求 i3,U4,U7powerguiContinuousVoltage Measurement1v+-Voltage Measurementv+-Paralel RLC Branch6Paralel RLC Branch5Paralel RLC Branch4Paralel RLC Branch3Paralel RLC Branch2Paralel RLC Branch1Paralel RLC BranchDisplay2-0.1852Display10.7407Display2.222DC Voltage SourceCurrent Measurementi+-2.StepScopeIntegrator 11sIntegrator1sGain1-K-Gain-K-Add注:参数设置Step time: 0Final value: 1e11Gain1: 2.5e6Gain: 1e12Simulation stop time: 1.5e-5