Matlab求解空间曲线的切线和法平面

求解空间曲线的切线和法平面

若已知某空间曲线的参数方程,要求求解方程上一点的切线方程和法平面方程,则在Matlab中可用如下的求解方法:
注意:

  • 求导时是对参数t进行求导
  • 带入数据时是带入对应的参数的数值
    先直接上码:
%%
syms t
x1 = cos(t)*10;
y1 = sin(t)*10;                          %得到编辑框中的字符串
z1 = t*t; 

x2 =cos(pi/4)*10;               %得到编辑框中的字符串并将其转换为数值
y2 =sin(pi/4)*10;                 %切点(上下同)
z2 =(pi/4)*(pi/4);

                
t =linspace(0,2*pi,100);                              %范围
x3= eval(x1);
y3 = eval(y1);
z3= eval(z1);
figure                                                   %得到一个独立图像
hold on
plot3(x3,y3,z3)
xlabel('x')
ylabel('y')
zlabel('z')

% 切线
fx = diff(x1,1,'t');                              %可理解为求导
fy = diff(y1,1,'t');
fz = diff(z1,1,'t');

s1= subs( fx, 't' ,pi/4);                                    %可理解为将数据带入上式导数方程
d1= subs( fy,'t', pi/4);
f1= subs( fz, 't', pi/4);

a=-4:0.1:4;                                                 %参考数分书                    
xx = a*s1+x2;                                                           
yy = a*d1+y2;                                               %xx,yy,zz为切线的坐标
zz = a*f1+z2;
hold on
view(3);
plot3(xx,yy,zz,'linewidth',2)
xlabel('x')
ylabel('y')
zlabel('z')

%法平面
xlab = -4:0.1:4;                                                
[xxx ,yyy] = meshgrid(xlab);                               
zzzz=double((-s1.*(xxx-x2)-d1.*(yyy-y2))/f1 );
zzz=zzzz+z2;
mesh(xxx,yyy,zzz)
xlabel('x')
ylabel('y')
zlabel('z')

效果图如图:在这里插入图片描述

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值