求解空间曲线的切线和法平面
若已知某空间曲线的参数方程,要求求解方程上一点的切线方程和法平面方程,则在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')
效果图如图: