查看: 832|回复: 21|关注: 0

[已解决] 如何进行 多值隐函数作图

[复制链接]

新手

32 麦片

财富积分


050


1

主题

16

帖子

0

最佳答案
如图所示为需要绘制的方程
  1. tand(d)=(Ma^2*sind(b)^2-1)/((1+Ma^2*((r+1)/2-sind(b)^2))*tand(b))
复制代码
其中,d,r为常数,现需要作出b_Ma的图像。【d = 5; r = 1.4】

做过的尝试:使用ezplot函数绘图,但是没有图像,代码及结果如下:

  1. >> syms Ma b
  2. >> r = 1.4;
  3. >> d = 5;
  4. >> ezplot(tand(d)-(Ma^2*sind(b)^2-1)/((1+Ma^2*((r+1)/2-sind(b)^2))*tand(b)),[0.5,5])
复制代码


问题:
1. 为什么ezplot函数画不出图像?我该如何改正?
     2.可不可以通过直接解方程,然后plot绘制?如果可以该怎么操作。
     3.有没有其他的绘制此类图像的方法。谢谢!


回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

0

主题

2263

帖子

351

最佳答案
  • 关注者: 63
发表于 2020-3-15 16:27:15 | 显示全部楼层
试试fimplicit函数吧
1.仔细阅读论坛各版块置顶贴;2.该论坛旨在交流解惑,请粘贴出错代码;3.doc+'函数名'查看函数说明 ...
回复此楼 已获打赏: 0 积分

举报

新手

32 麦片

财富积分


050


1

主题

16

帖子

0

最佳答案
 楼主| 发表于 2020-3-16 17:49:25 | 显示全部楼层
WarnerChang 发表于 2020-3-15 16:27
试试fimplicit函数吧

ezplot函数我最后调整好了,用的是这个代码
  1. r = 1.4;
  2. syms Ma1 b
  3. for d = 0:5:35
  4.     S = tand(d)-(Ma1^2*sind(b)^2-1)/((1+Ma1^2*((r+1)/2-sind(b)^2))*tand(b));
  5.     ezplot(S,[1,4,10,90]);
  6.     hold on;
  7. end
复制代码


我还有两个问题向您请教:
1、对于您给的fimplicit函数我试了一下,也不知道是我哪里用法不对,效率非常低,代码如下,很长时间一直在计算,没有出结果。
  1. r = 1.4;
  2. for d = 0:5:35
  3.     S = @(Ma,b)tand(d)-(Ma1.^2*sind(b)^2-1)./((1+Ma1.^2*((r+1)/2-sind(b)^2))*tand(b));
  4.     fimplicit(S,[1,4,10,90]);
  5.     hold on;
  6. end
复制代码


2、另外我想通过联立两个隐函数方程,来绘制关于p2/p1与Ma之间的函数图像,我应该怎么操作?【目标是消去β】(两函数如下图所示)

[latex]\tan \delta=\frac{M a_{1}^{2} \sin ^{2} \beta-1}{\left[1+M a_{1}^{2}\left(\frac{\gamma+1}{2}-\sin ^{2} \beta\right)\right] \tan \beta}[/latex]
【其中delta为给定值,可取值为5,gamma=1.4】
谢谢!

function1

function1

function2

function2
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

0

主题

2263

帖子

351

最佳答案
  • 关注者: 63
发表于 2020-3-16 19:22:45 | 显示全部楼层 |此回复为最佳答案
ReachPluto 发表于 2020-3-16 17:49
ezplot函数我最后调整好了,用的是这个代码

使用eliminate函数消去beta吧
1.仔细阅读论坛各版块置顶贴;2.该论坛旨在交流解惑,请粘贴出错代码;3.doc+'函数名'查看函数说明 ...
回复此楼 已获打赏: 0 积分

举报

新手

32 麦片

财富积分


050


1

主题

16

帖子

0

最佳答案
 楼主| 发表于 2020-3-16 19:37:21 | 显示全部楼层
WarnerChang 发表于 2020-3-16 19:22
使用eliminate函数消去beta吧

非常感谢!
回复此楼 已获打赏: 0 积分

举报

新手

32 麦片

财富积分


050


1

主题

16

帖子

0

最佳答案
 楼主| 发表于 2020-3-17 17:05:05 | 显示全部楼层
WarnerChang 发表于 2020-3-16 19:22
使用eliminate函数消去beta吧

我还是没有画出来,您能否帮我写一下这个代码?谢谢
如果需要,以下是两个方程的代码
  1. Eq1 =@(Ma1,b) tand(d)-(Ma1.^2.*sind(b).^2-1)./((1+Ma1.^2.*((r+1)./2-sind(b).^2)).*tand(b));
复制代码
  1. Eq2 =@(P,Ma1,b) P - 2*r/(r+1).*Ma1.^2.*sin(b).^2+(r-1)/(r+1);
复制代码
当 d = 5, r = 1.4; Ma1 = 1:0.05:3.5时,P与Ma1 的函数图



回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

0

主题

2263

帖子

351

最佳答案
  • 关注者: 63
发表于 2020-3-17 18:21:54 | 显示全部楼层
ReachPluto 发表于 2020-3-17 17:05
我还是没有画出来,您能否帮我写一下这个代码?谢谢
如果需要,以下是两个方程的代码

你想要画哪个函数的图像啊?
1.仔细阅读论坛各版块置顶贴;2.该论坛旨在交流解惑,请粘贴出错代码;3.doc+'函数名'查看函数说明 ...
回复此楼 已获打赏: 0 积分

举报

新手

32 麦片

财富积分


050


1

主题

16

帖子

0

最佳答案
 楼主| 发表于 2020-3-17 18:46:45 | 显示全部楼层
WarnerChang 发表于 2020-3-17 18:21
你想要画哪个函数的图像啊?

P关于Ma1的图像,也就是3楼那两个公式联立后的图(P就是公式里的p2/p1),中间的变量beta消去,其他的都是常量
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

0

主题

2263

帖子

351

最佳答案
  • 关注者: 63
发表于 2020-3-17 18:52:13 | 显示全部楼层
ReachPluto 发表于 2020-3-17 18:46
P关于Ma1的图像,也就是3楼那两个公式联立后的图(P就是公式里的p2/p1),中间的变量beta消去,其他的都 ...

那你把最后的方程传上来呢
1.仔细阅读论坛各版块置顶贴;2.该论坛旨在交流解惑,请粘贴出错代码;3.doc+'函数名'查看函数说明 ...
回复此楼 已获打赏: 0 积分

举报

新手

32 麦片

财富积分


050


1

主题

16

帖子

0

最佳答案
 楼主| 发表于 2020-3-17 20:53:35 | 显示全部楼层
WarnerChang 发表于 2020-3-17 18:52
那你把最后的方程传上来呢

这里我是举了比较简单的例子,实际上两个方程,并不能分离出来beta然后带入另一个方程消去,所以我想请教的是,能不能在不能化简的情况下,把这个图画出来。【因为三个未知数,两个方程(三楼所示方程,六楼有代码),是可以画出任意两个变量之间的图的】
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表