参数图有两个参数和一个函数

时间:2018-02-14 02:23:22

标签: matlab matlab-figure

我想通过在Matlab中使用这些方程来绘制这个参数方程

p_x = p_0*coshu*cosv, p_y = p_0*sinhu*sinv

sinv*( sqrt(1 − γ)*coshu + cosα) = −sinα *sinhu

我需要p_y/p_0 vs p_x/p_0之间的情节。如图

enter image description here

其中u是'时的自由参数。 α = 8*pi/5。和γ = 0, 0.05, 0.15, 0.2

我尝试了一个代码解决上面的方程式;

close all
clear all
clc
a = 8*pi/5        % 'a' as alpha
 %z=0;           % 'z'   as  gamma
z=0.15      
u = -5:0.003:5;
x = cosh(u).*sqrt(1 - (sin(a).*sin(a).*sinh(u).*sinh(u))./square((sqrt(1-z).*cosh(u) + cos(a))));
% where x =  p_x/p_0  and y = p_y/p_0
y= -1.*((sinh(u).*sinh(u).*sin(a))./(1*sqrt(1-z).*cosh(u) + cos(a)));
plot(x,y,'-k')

在评论中解决方程式1的另一种尝试(sign(cos(v))仍有一些错误):

clc; clear;
alpha=8*pi/5; gamma=0.05;
t=1;
Py0={};
for Px0=-3:.5:3
  syms u
  F=cosh(u)*sqrt(1 - ((sin(alpha)*sinh(u))/(sqrt(1-gamma)*cosh(u)+cos(alpha)))^2 )-Px0;
  u=double(solve(F));
  Py0{t}=sinh(u).*(-(sin(alpha).*sinh(u))./(sqrt(1-gamma).*cosh(u)+cos(alpha)));
  t=t+1;
  clear u
end;
Py0
% plot(-3:0.5:3,Py0)

1 个答案:

答案 0 :(得分:1)

$是自由参数,但其范围受第三个等式的限制:

  

sin(v)*(sqrt(1 - γ)* cosh(u)+ cos(α))= - sin(α)* sinh(u)

这可以改写为:

  

sin(v)= -sin(alpha)* sinh(u)/(sqrt(1-y)* cosh(u)+ cos(alpha))

知道

  

abs(sin(v))< = 1

给出了eval url=replace (url, "Open_KnowledgeZone:", "") 的条件。

使用

  

cosh(x)^ 2 - sinh(x)^ 2 = 1

条件变为:

  

abs(-sin(alpha)* sqrt(cosh(u)^ 2-1)/(sqrt(1-y)* cosh(u)+ cos(alpha))< = 1

因为cosh(x)是一个偶数函数,所以上面的表达式也是如此。因此,计算

就足够了
  

-sin(alpha)* sqrt(cosh(u)^ 2-1)/(sqrt(1-y)* cosh(u)+ cos(alpha)< = 1

我们希望知道表达式保留的最大uu),因为我们知道uu_max范围内受到限制。所以我们需要解决

  

-sin(alpha)* sqrt(cosh(u)^ 2-1)/(sqrt(1-y)* cosh(u)+ cos(alpha)= 1

这是二阶多项式,因此将有2个解。我们对真正的解决方案很感兴趣,如果所有解决方案都是虚构的,那么u的范围就没有限制。

将其放入MATLAB中,得到以下代码:

[-u_max,u_max]

编辑:更新代码

u