数学实验课堂笔记.docx
- 文档编号:10634989
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:20
- 大小:1.08MB
数学实验课堂笔记.docx
《数学实验课堂笔记.docx》由会员分享,可在线阅读,更多相关《数学实验课堂笔记.docx(20页珍藏版)》请在冰豆网上搜索。
数学实验课堂笔记
>>student=struct('name',{'吴迎东'},'scores',{[100]},'id',{[59]})
student=
name:
'吴迎东'
scores:
100
id:
59
>>clearstudent%清除student变数
student
(1)=struct('name','Banny','scores',[85,80,92,78]);
student
(2)=struct('name','Joey','scores',[80,85,90,88]);
student(3)=struct('name','Betty','scores',[88,82,90,80]);
>>student.scores
ans=
85809278
ans=
80859088
ans=
88829080
>>cat(1,student.scores)
ans=
85809278
80859088
88829080
>>cat(2,student.scores)
ans=
858092788085908888829080
>>cat(3,student.scores)
ans(:
:
1)=
85809278
ans(:
:
2)=
80859088
ans(:
:
3)=
88829080
>>cat(4,student.scores)
ans(:
:
1,1)=
85809278
ans(:
:
1,2)=
80859088
ans(:
:
1,3)=
88829080
>>clearstudent%清除student变数
student
(1)=struct('name','张庭硕','scores',[85,80]);
student
(2)=struct('name','钟书蓉','scores',[80,85]);
student(3)=struct('name','黄念中','scores',[88,82]);
fori=1:
length(student)%打印出每个学生的名字
fprintf('student%g:
%s\n',i,student(i).name);
end
student1:
张庭硕
student2:
钟书蓉
student3:
黄念中
二元正态密度函数
>>t=-8:
0.1:
8;
>>[x,y]=meshgrid(t);
>>z=1/pi*exp(-0.5*(x.^2+y.^2));
>>subplot(1,1,1)
>>meshc(x,y,z)
>>meshc(x,y,z)
>>title('二元正态密度函数')
>>t=-2:
0.1:
2;
>>[x,y]=meshgrid(t);
>>z=x.*exp(-x.^2-y.^2);
>>surf(x,y,z)
>>t=-2:
0.1:
2;
>>[x,y]=meshgrid(t);
>>z=x.*exp(-x.^2-y.^2);
mesh(x,y,z)
>>
MATLAB编程
function[a,l]=fum(r)
a=pi*r.*r;
l=2*pi*r;
>>[a,b]=fum(1:
5)
a=
3.141612.566428.274350.265578.5398
b=
6.283212.566418.849625.132731.4159
>>A=input('enterr=?
')
enterr=?
34
A=
34
辗转相除法在MATLAB上面的实现:
>>p1=[131131];
>>p2=[12012];
>>[Q,R]=deconv(p1,p2)
Q=
11
R=
00-100-1
FOR循环
>>y=0;
>>n=100;
>>fori=1:
n;
y=y+1/(i^2);
end
>>y
y=
1.6350
>>clear
>>i=1:
100;
>>s=1./i;
>>
>>s*s'
ans=
1.6350
>>n=100;
i=1:
n;
f=1./i.^2;
y=sum(f)
y=
1.6350
>>a=[12356734245-3-4-3]
a=
12356734245-3-4-3
>>(a>0)*a'
ans=
807
>>t=-8:
0.1:
8;
>>[x,y]=meshgrid(t);
>>z=1-exp(-x)-exp(-y)+exp(-x-y-x*y);
>>subplot(1,1,1)
>>meshc(x,y,z)
>>title('概率论P152例三的而为随机变量')
五、分段函数在MATLAB上面的实现
1.x=0:
0.01:
10;
y=sqrt(x).*(x>=0&x<4)+2*(x>=4&x<6)+(5-x/2).*(x>=6&x<8)+1*(x>=8);
plot(x,y,'r','linewidth',2)
axis([01002.1])
gridon
六、MATLAB在积分中的应用
functions=tfen(f,a,b,n)
ifnargin<3
error('必须输入被积函数f和积分区间端点a,b');
end
ifnargin==3
n=1000;
end
h=(b-a)/n;
x=a:
h:
b;
y=f(x);
s=sum(y(1:
end-1)+y(2:
end))*h/2;
>>edit
>>s=tfen(@sin,0,pi,200)
s=
2.0000
***三维图形的绘制***
4、>>[x,y,z]=peaks;
>>[C,h]=contour(x,y,z,12,'r');
>>xlabel('x-axis'),ylabel('y-axis');
>>clabel(C,h);
注意clabel(C,h)的作用
6、三维图形用参数方程作图的问题
theta=0:
pi/40:
2*pi;
t1=0:
0.1:
6;
[theta,t]=meshgrid(theta,t1);
X=cos(theta)+t;
Y=sin(theta)+2*t;
Z=t;
surf(X,Y,Z)
8、shadinginterp(interpolation)的运用
>>example10
>>shadinginterp
9、对于surf图形的修饰问题
>>[x0,y0,z0]=sphere(30);
>>x=2*x0;y=2*y0;z=2*z0;
>>surf(x0,y0,z0);
>>shadinginterp;
>>holdon;
>>mesh(x,y,z);
>>colormaphot;
>>holdoff;
>>hiddenoff;
>>axisequal;
>>axisoff
>>colormap([1,0,0])
>>colormap([1,1,0])针对曲面图和曲线图
>>colormap([1,0,0;1,1,0])
MATLAB解代数方程
1、迭代法
4、不同的迭代方式,收敛的速度不一样,而且有的是发散的,无法求出结果
5、如何构造(x)使收敛速度更快?
6、怎样确定初始值是在这个位置,还是在那个位置→边界是分形结构这个非常复杂。
如果选择不好,会产生混沌现象
7、迭代后的另一种情况是既不发散,也不收敛例如x=3.7*x*(1-x)
8、对于f(x)==0的迭代有没有一般的方法?
X=x+f(x)再结合
可得x=x-f(x)/f'(x)*********************************************************牛顿切线法
以上是对于单变量的情况
下面讨论多变量的情况
f(x,y,z)=0&g(x,y,z)=0&h(x,y,z)=0
19、多元统计分析
>>x=[631.60161.900.36403.0026073.0035.34
498.40143.203.57176.001023.006.26
557.6070.602.18199.0011571.009.48
684.10281.801.40286.0016660.0029.39
644.0093.501.98234.0013621.0022.68
620.30248.602.56296.0017210.0021.84
498.40147.502.50284.0013578.0013.49];
>>x2=zscore(x);
>>y2=pdist(x2,'euclidean');
>>z2=linkage(y2,'centroid');
>>c2=cophenet(z2,y2)
c2=
0.6398
>>t=cluster(z2,6)
t=
5
4
1
6
3
6
2
>>h=dendrogram(z2)
h=
173.0011
175.0011
176.0011
177.0011
178.0011
179.0011
>>xlabel('xlabel')
>>ylabel('ylabel')
>>title('聚类分析研究')
>>
数据拟合问题的研究
>>x=[202530354045505560];
>>y=[8059851170136515701790203023002610];
>>z1=polyfit(x,y,3);
>>y1=polyval(z1,x);
>>z2=polyfit(x,y,4);
>>y2=polyval(z2,x);
>>plot(x,y,'o',x,y1,'r-',x,y2,'b-.')
>>legend('原始数据','三阶多项式','四阶多项式')
MATLAB做出曲线的散点图的代码
>>x=[202530354045505560];
>>y=[8059851170136515701790203023002610];
>>plot(x,y,'+')
>>plot(x,y,'*')
888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
背景介绍
Matlab提供了一系列绘图函数,常见的包括绘制2D曲线的plot函数、绘制2D隐函数曲线的ezplot函数、绘制3D曲面的mesh和surf函数、绘制3D显函数曲面的ezmesh和ezsurf函数。
值得注意的是,ez系列的绘图函数里只有ezplot是绘制隐函数曲线的,ezmesh和ezsurf都是画显函数曲面的(不要被ez的名字误解了)。
遗憾的是,matlab里并没有提供直接绘制3D隐函数曲面的函数。
本帖的目的就是归纳总结几种方便易用的绘制隐函数曲面的办法。
问题描述
如何绘制3元方程f(x,y,z)=0确立的隐函数曲面z=g(x,y)?
其中,方程f(x,y,z)=0无法求解z关于x、y的表达式,即g(x,y)的显式表达式无法获取。
准备工作——基础函数介绍
为了解决上述问题,我们需要先对几个重要的图形函数isosurface、patch、isonormals取得初步的了解,如果您已经对这三个函数很熟悉,可以直接跳过这一步。
l. isosurface 等值面函数
调用格式:
fv=isosurface(X,Y,Z,V,isovalue)
作用:
返回某个等值面(由isovalue指定)的表面(faces)和顶点(vertices)数据,存放在结构体fv中(fv由vertices、faces两个域构成)。
如果是画隐函数 v=f(x,y,z)=0 的三维图形,那么等值面的数值为isovalue=0。
2. patch函数
调用格式:
patch(X,Y,C) 以平面坐标(X,Y)为顶点,构造平面多边形,C是RGB颜色向量
patch(X,Y,Z,C)以空间3-D坐标(X,Y,Z)为顶点,构造空间3D曲面,C是RGB颜色向量
patch(fv) 通过包含vertices、faces两个域的结构体fv来构造3D曲面,fv可以直接由等值面函数isosurface得到
例如:
patch(isosurface(X,Y,Z,V,0))
3. isonormals等值面法线函数
调用格式:
isonormals(X,Y,Z,V,p)
实现功能:
计算等值面V的顶点法线,将patch曲面p的法线设置为计算得到的法线(p是patch返回得到的句柄)。
如果不设置法线的话,得到曲面在过渡地带看起来可能不是很光滑
有了上述三个函数后,我们已经具备间接绘制3D隐函数曲面的能力了。
下面以方程
f(x,y,z)=x.*y.*z.*log(1+x.^2+y.^2+z.^2)-10=0为例,讲解如何画3D隐函数曲面。
解决办法一:
isosurface+patch+ isonormals
实现原理:
先定义3元显函数v=f(x,y,z), 则 v=0 定义的等值面就是z=g(x,y)的3D曲面。
利用isosurface函数获取v=0的等值面,将得到的等值面直接输入给patch函数,得出patch句柄p,并画出patch曲面的平面视角图形。
对p用isonormals函数设置曲面顶点数据的法线,最后设置颜色、亮度、3D视角,得到3D曲面。
代码如下:
>>f=@(x,y,z)x.*y.*z.*log(1+x.^2+y.^2+z.^2)-10;
>>[x,y,z]=meshgrid(-10:
.2:
10,-10:
.2:
10,-10:
.2:
10);
>>v=f(x,y,z);
>>h=patch(isosurface(x,y,z,v,0));
>>isonormals(x,y,z,v,h)
>>set(h,'FaceColor','r','EdgeColor','none');
>>xlabel('x');ylabel('y');zlabel('z');
>>alpha
(1)
>>gridon;view([1,1,1]);axisequal;camlight;lightinggouraud
Ezplot针对的隐函数的图像是二维的,三维的是无法做到的,所以说上面的内容还是很有价值的。
代码说明:
∙alpha函数用于设置patch曲面的透明度(可以是0~1任意数值),1 表示不透明,0 表示最大透明度。
如果想设置透明度为0.7,可以修改alpha
(1)为alpha(0.7)。
∙使用此代码解决特定问题时,只需将第1行的函数表达式替换为特定问题的函数表达式,将第2行数据(x、y、z)范围换成合适的范围,后续代码无需任何变动。
关于三维参数方程的图像的操作的再一次研究与探讨:
>>clear
>>u=-pi/2:
pi/10:
pi/2;
>>v=-pi:
0.1:
0;
>>[u,v]=meshgrid(u,v);
x=2*sec(u).*cos(v);
y=3*sec(u).*sin(v);
z=4*tan(u);
surf(x,y,z)
>>clear
>>u=-2*pi:
pi/50:
2*pi;
>>v=-2*pi:
pi/50:
2*pi;
>>[u,v]=meshgrid(u,v);
x=2*sec(u).*cos(v);
y=3*sec(u).*sin(v);
z=4*tan(u);
surf(x,y,z)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 实验 课堂 笔记