1樓:李儼姜秋寒
過球心o(0,0,0)及點p(3,1,-1)的直線與球面的兩個交點即為所求。
可用以下**求解
symsxy
ztq1='x-3*t'
q2='y-t'
q3='z+t'
q4='x^2+y^2+z^2-1'
[x,y,z,t]=solve(q1,q2,q3,q4)x=
1/11*11^(1/2)
-1/11*11^(1/2)y=
3/11*11^(1/2)
-3/11*11^(1/2)z=
1/11*11^(1/2)
-1/11*11^(1/2)
dmin=sqrt((3-x(1))^2+(1-y(1))^2+(-1-z(1))^2)
dmin
=((3-1/11*11^(1/2))^2+(1-3/11*11^(1/2))^2+(-1-1/11*11^(1/2))^2)^(1/2)
dmax=sqrt((3-x(2))^2+(1-y(2))^2+(-1-z(2))^2)
dmax
=((3+1/11*11^(1/2))^2+(1+3/11*11^(1/2))^2+(-1+1/11*11^(1/2))^2)^(1/2)
dmax=
eval(dmax)
dmax
=3.8749
dmin=
eval(dmin)
dmin
=2.9975
2樓:匿名使用者
function f = myfun(x)
f=sqrt((x(1)-3)^2+(x(2)-1)^2+(x(3)+1)^2);
function [c,ceq]=conf(x)
c=0;
ceq=1-x(1)^2-x(2)^2-x(3)^2;
這兩個函式分別定義在myfun.m和conf.m中
命令列輸入
[x,fval]=fmincon(@myfun,[0 0 1],,,,,,,@conf)
求得x =
0.9045 0.3015 -0.3015
fval =
2.3166
所以最近點座標[0.9045 0.3015 -0.3015],距離是2.3166
最遠點的話f=-sqrt((x(1)-3)^2+(x(2)-1)^2+(x(3)+1)^2);
再[x,fval]=fmincon(@myfun,[0 0 1],,,,,,,@conf)
求得x =
-0.9045 -0.3015 0.3015
fval =
-4.3166
所以最遠點座標[ -0.9045 -0.3015 0.3015],距離是4.3166
滿意請採納,不懂可追問,謝謝!
matlab作球x^2+y^2+z^2=1的影象
3樓:白楊龍
x=-1:0.001:1;
y=-1:0.01:1;
[x,y]=meshgrid(x,y);
z=sqrt(1-(x.^bai2+y.^2));
z(find(imag(z)~=0))=nan;
mesh(x,y,z)
hold on
mesh(x,y,-z)
但是中心du
資料少不zhi好看,
dao建議內用極座標容
畫t=linspace(0,pi,100);
p=linspace(0,2*pi,100);
[theta,phi]=meshgrid(t,p);
x=sin(theta).*sin(phi);
y=sin(theta).*cos(phi);
z=cos(theta);
mesh(x,y,z);
axis equal;
4樓:y00000的老巢
你x=1;y=1 的時候z是一個虛數
用matlab畫出上半球面 (x^2+y^2+z^2=1 ) 與平面 x+y+z=1.5的交線 10
5樓:風清響
[x,y,z]=sphere(50); %利用sphere建立矩陣
z(z<0)=0 %把z<0的部分置為0
mesh(x,y,z) %畫上半球面
hold on;
ezmesh('1.5-x-y',[-1 1]) %畫平面x+y+z=1.5
[x,y,z]=meshgrid(linspace(-1,1));
contourslice(x,y,z,x+y+z-1.5,x,y,z,[0 0]) %畫交線
axis equal
然後你可以轉換一下視角
view(135,0)
----------------------其實簡單點這樣就行------------------
[x,y,z]=sphere(50); %利用sphere建立矩陣
z(z<0)=0 %把z<0的部分置為0
mesh(x,y,z) %畫上半球面
hold on;
ezmesh('1.5-x-y',[-1 1]) %畫平面x+y+z=1.5
axis equal
view(135,0)
6樓:匿名使用者
泡沫是一個舞蹈基礎的電子商務平臺,為從業店提供全面服務的**。
用matlab軟體作錐面x^2+y^2=z^2和柱面(x-1)^2+y^2=1相交的圖形,求大神幫忙寫一下程式~~~
7樓:匿名使用者
你看看程du
序,不懂
zhi得可以問我。
%程式xgrid = -2:0.1:2;
ygrid = -2:0.1:2;
[x,y] = meshgrid(xgrid,ygrid);
z_p = sqrt(x.^dao2+y.^2);
z_n = -sqrt(x.^2+y.^2);
mesh(x,y,z_p);%錐面版上半部分hold on;
mesh(x,y,z_n);%錐面下半部分hold on;
t=0:pi/20:2*pi;
x1=sin(t)+1;
y1=cos(t);
z1=linspace(-3,3,length(t));
x=meshgrid(x1);y=meshgrid(y1);z=[meshgrid(z1)]';
mesh(x,y,z)%圓柱面權
xlabel('x')
ylabel('y')
zlabel('z')
axis equal
用matlab作出圓柱面x^2+y^2=1和圓柱面x^2+z^2=1相交的圖形
8樓:
clear all
[x,y,z]=cylinder(1,100);%生成標準的100個面的圓柱資料,半徑為1,高為1,圓心0,0;
z1=[z(1,:);z(2,:)+2];%圓柱高增高2,變為高3
z2=[z(1,:)-1;z(2,:)+2];%圓柱高增高2,變為高3,並且底加深1,從-1開始,以便與橫向的圓柱完全相交
surf(x,y,z2)
% mesh(x,y,z2)
xlabel('x');ylabel('y');zlabel('z')
hold on
surf(x,z1,y)
% mesh(x,z1,y)
axis equal
% hidden off %透視 mesh可用,但看不見相交圖形了
% shading interp;%可控制讓surf圖中出現或去掉網格線
hold off
如何用matlab畫出在圓域x^2+y^2<=1上畫出上半球面z=sqrt(1-x^2-y^2)的圖形。
9樓:沅江笑笑生
x=-7.5:0.5:7.5; y=x; % 先產生x及抄y二個陣列
>> [x,y]=meshgrid(x,y); % 再以襲meshgrid形成二維的網格資料
>> z=x.^2+y.^2; % 產生z軸的資料>> mesh(x,y,z) % 將z軸的變化值以網格方式畫出>> surf(x,y,z) % 將z軸的變化值以曲面方式畫出
用matlab在圓域x.^2+y.^2<1畫出上半球面z=sqrt(1-x.^2-y.^2)
10樓:匿名使用者
^舉個例子,希望有所幫助。**% 用matlab在圓域x.^2+y.^2<1畫出上半球面z=sqrt(1-x.^2-y.^2)
clc; clear all; close all;
[x, y] = meshgrid(linspace(-1, 1));
z = sqrt(1-x.^2-y.^2);
z(x.^2+y.^2 >= 1) = nan;
figure;
surf(x, y, z);結果
matlab軟體如何程式設計的,MATLAB軟體如何程式設計的
matlab 程式的檔案 是以.m檔案的形式呈現的。將matlab 編寫進.m檔案內然後執行即可。例子 建立一個 helloworld.m 檔案內包括內容如下 fprintf hello world 使用快捷鍵f5直接執行,然後可以在控制檯下看到列印的 hello world jack little...
用matlab程式設計計算1加到,用matlab程式設計計算1加到
s 0 for i 1 100 s s i ends 程式的功能是計算 1 2 100 的和,程式用到了一個 for 迴圈結構,基本語句比較簡單。擴充套件資料matlab常用的基本數學函式 abs x 純量的絕對值或向量的長度 angle z 複數z的相角 phase angle sqrt x 開平...
用matlab畫這個的影象,怎麼程式設計
用matlab繪製微分方程組數值解x1 t 和x2 t 的圖形。可以按下列方法來解決。1 建立微分方程組自定義函式,ode fun t,x 2 呼叫 ode45 函式命令,求解此微分方程組,得到x1 t x2 t 3 呼叫plot 函式命令,繪製x1 t 和x2 t 的圖形 按此思路程式設計,執行可...