日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

曲线绕x轴旋转曲面方程_空间曲线绕空间直线旋转生成的旋转曲面方程

發布時間:2024/9/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 曲线绕x轴旋转曲面方程_空间曲线绕空间直线旋转生成的旋转曲面方程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

校內建模的一道題,雖然我認為這么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)==6fimplicit3(Gamma,plotrange); %繪圖 elsefimplicit3(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日才發現,哭了。

總結

以上是生活随笔為你收集整理的曲线绕x轴旋转曲面方程_空间曲线绕空间直线旋转生成的旋转曲面方程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。