MATLAB程序设计doc.docx
- 文档编号:7497624
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:11
- 大小:223.89KB
MATLAB程序设计doc.docx
《MATLAB程序设计doc.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计doc.docx(11页珍藏版)》请在冰豆网上搜索。
MATLAB程序设计doc
一.多项式拟合
多项式拟合是多项式运算的一个重要组成部分,在工程及科研工作中都等到了广泛的应用。
其实现一方面可以由矩阵的除法求解超定方程来进行;另一方面在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=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])
2.设原始数据为x,在11个点上测得的y值如下:
X=[-2.0-1.6-1.2-0.8-0.400.40.81.21.62.0];
Y=[2.82.962.543.443.565.46.08.49.513.315];
采用2阶和10阶多项式拟合,并画图比较
x=[-2.0-1.6-1.2-0.8-0.400.40.81.21.62.0];
y=[2.82.962.543.443.565.46.08.49.513.315];
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--')
x=[-2.0-1.6-1.2-0.8-0.400.40.81.21.62.0];
y=[2.82.962.543.443.565.46.08.49.513.315];
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--')
二.图形的保持与子图
1.在4个子图中绘制不同的三角函数图。
(二维子图的绘制)
x=0:
0.1*pi:
2*pi;
subplot(2,2,1);
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)')
2.对于函数
,
的取值范围0~2,
的取值范围
~0,画出四个三维子图,其中
;
;
;
;要求每一个子图有标题。
[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,2,4);
z=0.8*(x-1).^2+0.5*(y+1).^2;
mesh(z);
title('子图4');
三.龙格-库塔方法
1.用经典的R-K方法求解y’=-2y+2x2+2x。
其中(0<=x<=0.5),y(0)=1.
编制函数文件(fun.m)
fun.m
functionf=fun(x,y)
f=-2*y+2*x.^2+2*x
在命令窗口输入
[x,y]=ode23('fun',[0,0.5],1);
x'
00.04000.09000.14000.19000.24000.29000.34000.39000.44000.49000.5000
y'
1.00000.92470.84340.77540.71990.67640.64400.62220.61050.60840.61540.6179
再输入:
plot(x,y,'-o')
可等到图形如下:
2.解刚性方程
解如下刚性方程:
(见课本251页)
编制f.m文件
functionf=f(x,y)
f=[-21;998-999]*y+[2*sin(x);999*(cos(x)-sin(x))]
在程序窗口输入:
tic;ode45(@f,[010],[2,3]);t1=toc
t1=
3.4540
tic;ode23(@f,[010],[2,3]);t1=toc
t1=
2.9839
tic;ode23s(@f,[010],[2,3]);t1=toc
t1=
0.6957
3.用龙格库塔方法求解常微分方程,初始条件为
,
,
编制函数文件(f.m)
functionydot=f(t,y)
ydot=[y
(2);4];
在命令窗口输入:
[T,Y]=ode45(@f,[0:
0.1:
10],[1,2]);
plot(T,Y(:
1),T,Y(:
2));
4.设有一微分方程组
,已知
当时,
,
,求微分方程在
上的解,并画出
的轨迹。
编制函数文件(liao.m)
functionf=liao(t,X)
f=[X
(2)+cos(t);sin(2*t)];
在命令窗口输入:
[T,X]=ode45('liao',[050],[0.5,-0.5]);
plot(X(:
1),X(:
2));
四.While/for循环
1.用for循环求1!
+2!
+3!
+…+20!
的值
sum=0;
fori=1:
20;
prd=1;
fork=1:
i;
prd=prd*k;
end
sum=sum+prd;
end
sum
sum=
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。
求i3,U4,U7
2.
注:
参数设置
Steptime:
0
Finalvalue:
1e11
Gain1:
2.5e6
Gain:
1e12
Simulationstoptime:
1.5e-5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程序设计 doc