校内建模的一道题,虽然我认为这么trivial的东西前人早就造好轮子了,但是找遍所有能找到的网络资料、文献都没找到答案,只好自己造了个轮子。
设空间曲线
其中
证明:
首先,任取
因为
因此
将③④⑤代入②:
令
可以反解出
为了形式简洁起见,令
其中如果
如果
再将
其中
证毕。
一个引理都没用到的证明,就不给例子了,回头赶作业了,困死了。
来自半年后的更新——
新增MATLAB代码实现交互式输入:
注意,本代码仅支持直线绕直线旋转!!!
曲线绕直线旋转写代码太麻烦了,而且反函数不一定单值,处理起来很麻烦。
代码如下——
%先输入为被旋转曲线的参数方程
%再输入转轴的标准方程
close all;clear all;clc;
disp('请输入首先被旋转曲线'); %输入提示信息
prompt1='请输入x=f(t),例如x=2t+3,则输入数组[2 3]nx=';
f=input(prompt1);
prompt2='请输入y=g(t),例如y=4t+5,则输入数组[4 5]ny=';
g=input(prompt2);
prompt3='请输入z=h(t),例如y=6t+7,则输入数组[6 7]nz=';
h=input(prompt3);
disp(['您的被旋转曲线方程是:']);
disp(['x=(' num2str(f(1)) ')×t+(' num2str(f(2)) ')']);
disp(['y=(' num2str(g(1)) ')×t+(' num2str(g(2)) ')']);
disp(['z=(' num2str(h(1)) ')×t+(' num2str(h(2)) ')']);
disp('请输入首先旋转轴的直线标准方程:(x-x0)/m=(y-y0)/n=(z-z0)/p'); %输入提示信息
prompt4='请输入数组[m n p]n[m n p]=';
mnp=input(prompt4);
prompt5='请输入数组[x0 y0 z0]n[x0 y0 z0]=';
xyz=input(prompt5);
disp(['您的旋转轴直线方程是:']);
disp(['(x-(' num2str(xyz(1)) '))/(' num2str(mnp(1)) ')=']);
fprintf("%c",8) %删掉换行符号
disp(['(y-(' num2str(xyz(2)) '))/(' num2str(mnp(2)) ')=']);
fprintf("%c",8) %删掉换行符号
disp(['(z-(' num2str(xyz(3)) '))/(' num2str(mnp(3)) ')']);
F=[mnp(1)*f(1)+mnp(2)*g(1)+mnp(3)*h(1),mnp(2)*f(2)+mnp(2)*g(2)+mnp(3)*h(2)];
disp(['F=(' num2str(F(1)) ')t+(' num2str(F(2)) ')']) %调试用
if(F(1)==0)
disp(['两直线垂直,方程退化,不予输出']);
return;
end
F_1=[1/F(1) -F(2)/F(1)]; %F的逆为(1/a)t+(-b/a)
disp(['F^(-1)=(' num2str(F_1(1)) ')t+(' num2str(F_1(2)) ')']) %调试用
syms x y z;
F_1u=F_1(1)*(mnp(1)*x+mnp(2)*y+mnp(3)*z); %F^(-1)(mx+ny+pz)
Gamma=(x-xyz(1))^2+(y-xyz(2))^2+(z-xyz(3))^2 ...
-(f(1)*F_1u+f(2)-xyz(1))^2-(g(1)*F_1u+g(2)-xyz(2))^2-(h(1)*F_1u+h(2)-xyz(3))^2;
Gamma=expand(Gamma);
disp(['旋转曲面方程为:' char(Gamma) '=0']);
prompt6='请输入绘图区域[x0 x1 y0 y1 z0 z1],如输入0,则为默认区间n';
plotrange=input(prompt6);
if length(plotrange)==6
fimplicit3(Gamma,plotrange); %绘图
else
fimplicit3(Gamma); %绘图
end
xlabel('x');
ylabel('y');
测试输入1:
%测试样例1:圆锥
[1 0]
[0 0]
[1 0]
[0 0 1]
[0 0 0]
0
用户交互界面如下:

绘图效果如下:

测试样例2:
%测试样例2:奇怪的图形
[2 3]
[4 5]
[6 7]
[1 2 3]
[4 5 6]
[-15 15 -15 15 0 20]
用户交互界面如下:

绘图效果如下:

好了,去赶电磁学作业了。为啥网页上写的4月2日提交,截止日期设置的4月8日。今天4月4日才发现,哭了。
版权声明:本文为weixin_39667080原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。