用matlab軟體程式設計 求出球面上x 2 y 2 z 2 1上與點 3,1, 1 距離最近和最遠點

時間 2021-08-30 11:16:25

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 的圖形 按此思路程式設計,執行可...