matlab-数学实验—圆环特征的计算

该博客记录了一次MATLAB实验,旨在应用近似思想和绘图函数绘制圆环面。实验中,作者首先计算数据点到中心点的平均距离得到R,再利用最大和最小距离确定r,从而绘制圆环面。在遇到困难时,作者尝试了多种方法解决问题,如调整mesh函数的使用和改进图像绘制表达式。实验提升了作者的编程技巧和问题解决能力,建议增加综合性项目以提高MATLAB和数值计算技能。
摘要由CSDN通过智能技术生成

题目:

. 实验目的

    体会近似思想的运用和matlab绘图函数的使用。

三.实验过程

实现的具体思路:

首先在求取参数R,r时,可以先计算数据文件中所有点距离中心点的距离,然后求取这些距离的平均值,这样我们可以得到R.然后根据R+r=最大的距离,R-r=最小的距离,得到r的值。

在绘制圆环面上,根据参数方程可以求解出圆环面上的点,然后根据surf函数绘制圆环面

提示图形:

任务一的代码如下:

data=load('data_ring1.txt');

[m,n]=size(data);

for i=1:m distance(i)=sqrt(data(i,1)^2+data(i,2)^2+data(i,3)^2);

end

distance_total=0;

for i=1:m

    distance_total=distance(i)+distance_total;

end

R=distance_total/m

max_distance=max(distance);

min_distance=min(distance);

r1=max_distance-R;

r2=R-min_distance;

r=(r1+r2)/2

运行结果:

绘制图形的代码:

figure

k=linspace(0,2*pi,60)

s=linspace(0,2*pi,60)

R=25.884127431102569971699267625809;

r=0.21829770998673581061666482128203;

[u,v]=meshgrid(k,s);

x_new=(R+r*cos(u)).*cos(v);

y_new=(R+r*cos(u)).*sin(v);

z_new=r*sin(u);

surf(x_new,y_new,z_new)

任务二的代码:

data=load('data_ring2.txt');

x_max=max(data(:,1));

y_max=max(data(:,2));

z_max=max(data(:,3));

x_min=min(data(:,1));

y_min=min(data(:,2));

z_min=min(data(:,3));

center_node=[(x_max+x_min)/2,(y_max+y_min)/2,(z_max+z_min)/2]%圆环中心

[m,n]=size(data);

for i=1:m

    distance(i)=sqrt((data(i,1)-center_node(1))^2+(data(i,2)-center_node(2))^2+(data(i,3)-center_node(3))^2);

end

distance_total=0;

for i=1:m

    distance_total=distance(i)+distance_total;

end

R=distance_total/m

max_distance=max(distance);

min_distance=min(distance);

r1=max_distance-R;

r2=R-min_distance;

r=(r1+r2)/2

任务二的绘图代码:

figure

center_node =[12.0284    3.1771    6.4995];

k=linspace(0,2*pi,60)

s=linspace(0,2*pi,60)

R= 18.2532;

r= 3.2230;

[u,v]=meshgrid(k,s);

x_new=center_node(1)+(R+r*cos(u)).*cos(v);

y_new=center_node(2)+(R+r*cos(u)).*sin(v);

z_new=center_node(3)+r*sin(u);

surf(x_new,y_new,z_new)

legend('ÖÐÐÄΪ£º12.0284    3.1771    6.4995')

四. 实验自评与改进方向

实验中遇到了一些问题,例如第一次自己尝试使用mesh函数绘制图像,但是没有考虑到坐标的范围问题;在绘制图像上,第一次采用表达式方程绘制也失败了,之后便采用圆环的参数方程顺利地解决了问题。

本实验中还需要改进的方向:在编程时自己可以规范化学习别人的编程方式。

五. 实验体会,收获及建议

1.通过此次综合实验掌握了圆环的参数方程表达和matlab的画图函数的练习。

2.在此次实验中自己尝试了多种方法求解,自己的思维能力得到了锻炼。

建议:建议增加综合性项目的训练,有助于更加熟练的使用matlab和锻炼自己的编程能力,同时也增加对数学实验的理解和数值计算的理解。

  • 13
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个编程的菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值