MATLAB程序解读.docx

上传人:b****1 文档编号:1582618 上传时间:2023-05-01 格式:DOCX 页数:16 大小:217.58KB
下载 相关 举报
MATLAB程序解读.docx_第1页
第1页 / 共16页
MATLAB程序解读.docx_第2页
第2页 / 共16页
MATLAB程序解读.docx_第3页
第3页 / 共16页
MATLAB程序解读.docx_第4页
第4页 / 共16页
MATLAB程序解读.docx_第5页
第5页 / 共16页
MATLAB程序解读.docx_第6页
第6页 / 共16页
MATLAB程序解读.docx_第7页
第7页 / 共16页
MATLAB程序解读.docx_第8页
第8页 / 共16页
MATLAB程序解读.docx_第9页
第9页 / 共16页
MATLAB程序解读.docx_第10页
第10页 / 共16页
MATLAB程序解读.docx_第11页
第11页 / 共16页
MATLAB程序解读.docx_第12页
第12页 / 共16页
MATLAB程序解读.docx_第13页
第13页 / 共16页
MATLAB程序解读.docx_第14页
第14页 / 共16页
MATLAB程序解读.docx_第15页
第15页 / 共16页
MATLAB程序解读.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MATLAB程序解读.docx

《MATLAB程序解读.docx》由会员分享,可在线阅读,更多相关《MATLAB程序解读.docx(16页珍藏版)》请在冰点文库上搜索。

MATLAB程序解读.docx

MATLAB程序解读

Matlab程序

一.可视化绘图。

1.二维图形绘制:

绘制方程

表示的一组椭圆,其中

t=[0:

pi/50:

2*pi]';

a=[0.5:

.5:

4.5];

x=cos(t)*a;

y=sin(t)*sqrt(25-a.^2);

plot(x,y);

xlabel('x','FontSize',12);

ylabel('y','FontSize',12);

title('一组椭圆','FontSize',15);

2.用曲面图表示函数

x=-10:

10;

y=x;

[X,Y]=meshgrid(x,y);

Z=X.^2+Y.^2;

surf(X,Y,Z);

title('z=x^2+y^2');

3.列出求下列空间曲面交线的程序,并做图

clc

clearall

x=-10:

0.1:

10;

y=x;

[X,Y]=meshgrid(x,y);

z1=X.^2-2*Y.^2;

z2=2*X-3*Y;

k=find(abs(z1-z2)<0.1);

x1=X(k);

y1=Y(k);

z3=2*x1-3*y1;

plot3(x1(1:

2:

end),y1(1:

2:

end),z3(1:

2:

end),'r','LineWidth',2);

holdon

plot3(x1(2:

2:

end),y1(2:

2:

end),z3(2:

2:

end),'r','LineWidth',2);

title('z=2x-3y与z=x^2-2y^2的交线','FontSize',15)

gridon

4.设

要求以0.01秒为间隔,求出y的151个点,并求出其导数的值和曲线,画两个子图。

symst

f(t)=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);

g(t)=diff(f(t));

t=0:

0.01:

150*0.01;

subplot(211);

plot(t,f(t),'r','LineWidth',2);

xlabel('t(s)','FontSize',12);

ylabel('原函数值','FontSize',12);

title('原函数f(t)','FontSize',15)

subplot(212);

plot(t,g(t),'LineWidth',2);

xlabel('t(s)','FontSize',12);

ylabel('导函数值','FontSize',12);

title('导函数f(t)','FontSize',15);

5.在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,及建立图例。

clearall

clc

t=0:

pi/50:

4*pi;

y1=sin(t);

y2=cos(t);

plot(t,y1,'r');

holdon

plot(t,y2,'g--');

xlabel('t','FontSize',12);

ylabel('y','FontSize',12);

legend('y1=sin(t)','y2=cos(t)');

二.符号运算(写m文件)

1.采用符号运算,研究

取何值时,如下的齐次方程组有非零解?

(编写m文件)。

clearall

symsa

A=[1-a-24;23-a1;111-a];

f(a)=det(a);

a=solve('-a^3+5*a^2-6*a=0','a');

a=

0

2

3

从而当

不等于0,2,3时,该方程组有非零解。

2.设f(x)=x^5-4x^4+3x^2-2x+6(编写m文件)

                              

(1)取x=[-2,8]之间函数的值(取100个点),画出曲线,看它有几个零点。

(2)用roots函数求此多项式的根.

从图中可以看出有三个实根。

clearall

clc

x=linspace(-2,8,100);

y=x.^5-4*x.^4+3*x.^2-2*x+6;

plot(x,y);

axis([-28-2020]);

p=[1-403-26];

x=roots(p)

运行结果:

x=

3.7999+0.0000i

-1.2607+0.0000i

1.3479+0.0000i

0.0564+0.9623i

0.0564-0.9623i

x确实有三个实数跟。

3.(写m文件)设

为符号变量,

,试进行如下运算。

(1)

(2)

(3)对

进行因式分解,

(4)求

的反函数。

clearall

clc

symsx

f(x)=x^4+2*x^2+1;

g(x)=x^3+6*x^2+3*x+5;

F(x)=f(x)+g(x)

G(x)=f(x)*g(x);G(x)=expand(G(x))

f(x)=factor(f(x))

g(x)=factor(g(x))

运行结果:

F(x)=

x^4+x^3+8*x^2+3*x+6

G(x)=

x^7+6*x^6+5*x^5+17*x^4+7*x^3+16*x^2+3*x+5

f(x)=

(x^2+1)^2

g(x)=

x^3+6*x^2+3*x+5

4.

(1)将(x-6)(x-3)(x-8)展开为系数多项式的形式。

symsx

y=(x-6)*(x-3)*(x-8);

y=expand(y)

y=

x^3-17*x^2+90*x-144

(2)求解多项式x3-7x2+2x+40的根。

x=roots([1-7240])

x=

5.00004.0000-2.0000

(3)求解在x=8时多项式(x-1)(x-2)(x-3)(x-4)的值。

x=8;

y=(x-1)*(x-2)*(x-3)*(x-4)

y=

840

(4)计算多项式乘法(x2+2x+2)(x2+5x+4)。

symsx

y=(x^2+2*x+2)*(x^2+5*x+4);

y=expand(y)

y=

x^4+7*x^3+16*x^2+18*x+8

(5)计算多项式除法(3x3+13x2+6x+8)/(x+4)。

symsx

y=(3*x^3+13*x^2+6*x+8)/(x+4);

y=simple(y)

y=

3*x^2+x+2

5.

(1)

,用符号微分求df/dx。

symsxa

f=[ax^21/x;exp(a*x)log10(x)sin(x)];

g=diff(f,x)

g=

[0,2*x,-1/x^2]

[a*exp(a*x),1/(x*log(10)),cos(x)]

(2)求代数方程组

关于x,y的解。

symsxabc

[x,y]=solve('a*x^2+b*y+c=0','x+y=0','x','y')

x=

(b+(b^2-4*a*c)^(1/2))/(2*a)

(b-(b^2-4*a*c)^(1/2))/(2*a)

y=

-(b+(b^2-4*a*c)^(1/2))/(2*a)

-(b-(b^2-4*a*c)^(1/2))/(2*a)

三,基本编程序

1.表1给出x0,y0的一组数据,首先建立一个excel表格,读取这个表格的数据,并且分别采用3阶和11阶多项式拟合表1数据画图。

x0

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

y0

-0.4470

1.9780

3.1100

5.2500

5.0200

4.6600

4.0100

4.5800

3.4500

5.3500

9.2200

clearall

clc

A=xlsread('shuju.xlsx');

x0=A(1,2:

11);

y0=A(2,2:

11);

p1=polyfit(x0,y0,3);

p2=polyfit(x0,y0,11);

figure

(1)

plot(x0,y0,'r+','LineWidth',8);

holdon

x=0:

0.05:

1;

Y1=p1

(1)*x.^3+p1

(2)*x.^2+p1(3)*x+p1(4);

Y2=0;

fori=1:

12

Y2=Y2+p2(i)*x.^(12-i);

end

plot(x,Y1,'r','LineWidth',2);

plot(x,Y2,'k','LineWidth',2);

legend('原始数据','3阶多项式拟合','11阶多项式拟合')

 

2..A是一个維度m×n的矩阵.写一段程序,算出A中有多少个零元素(m文件)

functionN=zeroshu(A)

[n,m]=size(A);

N=0;

fori=1:

n

forj=1:

m

ifA(i,j)==0

N=N+1;

end

end

end

end

运行结果

>>a=[2356;5094;6802];

>>N=zeroshu(a)

N=

2

3.某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):

price<200没有折扣

200≤price<5003%折扣

500≤price<10005%折扣

1000≤price<25008%折扣

2500≤price<500010%折扣

5000≤price14%折扣

输入所售商品的价格,求其实际销售价格。

functionmoney=price(p)

ifp<=0

fprintf('输入错误,请重新输入');

elseifp<200

n=p;

elseifp<500&p>=200

n=p*(1-0.03);

elseifp<1000&p>=500

n=p*(1-0.05);

elseifp<2500&p>=1000

n=p*(1-0.08);

elseifp<5000&p>=2500

n=p*(1-0.1);

elseifp>=5000

n=p*(1-0.14);

end

end

end

end

end

end

end

money=n;

end

运行结果

money=price(3000)

money=

2700

money=price(1100)

money=

1012

4.请编写一个M-函数,用来实现级数和

functionS=jishu(x,n)

S=1;

fori=1:

n

S=S+(x^i)/(2*i-1);

end

end

运行结果

>S=jishu(0.9,100)

S=

2.7251

>>S=jishu(3,100)

S=

3.9047e+45

5.如果一个矩阵A中存在这样的一个元素A(i,j)满足下列条件:

A(i,j)是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。

编写一个函数文件,对于输入的矩阵A,计算A中的所有马鞍点。

将结果写入一个文件。

functionmaandian(A)

[n,m]=size(A);

k=0;

fori=1:

n

forj=1:

m

ifA(i,j)==min(A(i,:

))&A(i,j)==max(A(:

j))

k=k+1;

ma(k)=A(i,j);

end

end

end

ifk==0

fprintf('此矩阵中没有马鞍点');

return

end

fid=fopen('maanshu.txt','wt');

forl=1:

length(ma)

fprintf(fid,'%g',ma(l));

end

fclose(fid);

end

运行结果;

>>a=rand(10);

>>maandian(a)

此矩阵中没有马鞍点

>>a=[9,7,6,8;20,26,22,25;28,36,25,30;12,4,2,6]

a=

9768

20262225

28362530

12426

>>maandian(a)

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2