MATLAB程序设计1doc.docx

上传人:b****5 文档编号:7962749 上传时间:2023-01-27 格式:DOCX 页数:11 大小:219.69KB
下载 相关 举报
MATLAB程序设计1doc.docx_第1页
第1页 / 共11页
MATLAB程序设计1doc.docx_第2页
第2页 / 共11页
MATLAB程序设计1doc.docx_第3页
第3页 / 共11页
MATLAB程序设计1doc.docx_第4页
第4页 / 共11页
MATLAB程序设计1doc.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

MATLAB程序设计1doc.docx

《MATLAB程序设计1doc.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计1doc.docx(11页珍藏版)》请在冰豆网上搜索。

MATLAB程序设计1doc.docx

MATLAB程序设计1doc

一.多项式拟合

多项式拟合是多项式运算的一个重要组成部分,在工程及科研工作中都等到了广泛的应用。

其实现一方面可以由矩阵的除法求解超定方程来进行;另一方面在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

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1