[已解决] 函数方程绘图问题

[复制链接]
86980387@qq.com 发表于 2022-10-12 17:03:34
%这是个极坐标方程组,画出是一个由圆变形成椭圆(方程如图所示),想得到数据点集导入solidworks画图三维图
%我没有编成功,希望各位大神能不吝赐教下!

%下面是主要参数和方程的代码

R=18.45; % 半径
k=2:2:1000;
i = 1;
for a=0:2*pi/360:2*pi
b(i)=0.3/sum((cos(k.*(pi/6))./((k.^2-1).^2))).*(sum(cos(k.*(pi/6)).*cos(k.*a)./((k.^2-1).^2)));  %  2、四力滚轮波发生器
i = i + 1;
end

5fb624eb60c29b71010d75d38c9c881.png

最佳答案


cbcbcbcb 发表于 2022-10-12 19:16:35
86980387@qq.com 发表于 2022-10-12 17:21
是的,想画出这个封闭的图,谢谢你,我给您发邮件

我看了,我感觉这就跟你第一个帖子差不多呀,没啥区别啊,代码如下:
  1. clear;clc;

  2. w0 = 0.3;
  3. R = 18.45; % 半径
  4. beita = pi/6;
  5. n = 2:2:100;
  6. i = 1;

  7. for theta = 0:2*pi/360:2*pi
  8. A = sum(cos(beita.*n)./(n.^2-1).^2);
  9. B = sum(cos(beita.*n).*cos(theta.*n)./(n.^2-1).^2);
  10. r_theta(i) = R + w0./A.*B;
  11. i = i + 1;
  12. end

  13. theta = 0:2*pi/360:2*pi;
  14. polarplot(theta,r_theta)
复制代码

10 条回复


cbcbcbcb 发表于 2022-10-12 17:09:38
本帖最后由 cbcbcbcb 于 2022-10-12 17:14 编辑

你这个程序编的和你这个方程好像对不上

86980387@qq.com 发表于 2022-10-12 17:12:18
cbcbcbcb 发表于 2022-10-12 17:09
我看你这都编好了,你想把数据点保存成什么样子的

想得到x,y的坐标,例如2000个点的坐标

86980387@qq.com 发表于 2022-10-12 17:16:43
cbcbcbcb 发表于 2022-10-12 17:09
你这个程序编的和你这个方程好像对不上

这个方程应该是对的,
还有另一个关于这个函数的方程:
%b(i)=0.3/sum((1./((k.^2-1).^2))).*sum(cos(k.*a)./((k.^2-1).^2));
这两个方程可以互换

86980387@qq.com 发表于 2022-10-12 17:19:36
cbcbcbcb 发表于 2022-10-12 17:09
你这个程序编的和你这个方程好像对不上

你说的是R没加上去吗,我这个回复次数有限,只有五次

cbcbcbcb 发表于 2022-10-12 17:19:51
86980387@qq.com 发表于 2022-10-12 17:16
这个方程应该是对的,
还有另一个关于这个函数的方程:
%b(i)=0.3/sum((1./((k.^2-1).^2))).*sum(cos(k.* ...

你这好像就是我回复你的第一个帖子吧,感觉咋这么像呢,你就对着改一下,应该就可以了吧,你进我主页,给我发邮件吧

86980387@qq.com 发表于 2022-10-12 17:21:55
cbcbcbcb 发表于 2022-10-12 17:19
你这好像就是我回复你的第一个帖子吧,感觉咋这么像呢,你就对着改一下,应该就可以了吧,你进我主页,给 ...

是的,想画出这个封闭的图,谢谢你,我给您发邮件

cbcbcbcb 发表于 2022-10-12 19:16:35
86980387@qq.com 发表于 2022-10-12 17:21
是的,想画出这个封闭的图,谢谢你,我给您发邮件

我看了,我感觉这就跟你第一个帖子差不多呀,没啥区别啊,代码如下:
  1. clear;clc;

  2. w0 = 0.3;
  3. R = 18.45; % 半径
  4. beita = pi/6;
  5. n = 2:2:100;
  6. i = 1;

  7. for theta = 0:2*pi/360:2*pi
  8. A = sum(cos(beita.*n)./(n.^2-1).^2);
  9. B = sum(cos(beita.*n).*cos(theta.*n)./(n.^2-1).^2);
  10. r_theta(i) = R + w0./A.*B;
  11. i = i + 1;
  12. end

  13. theta = 0:2*pi/360:2*pi;
  14. polarplot(theta,r_theta)
复制代码
回复此楼

86980387@qq.com 发表于 2022-10-12 19:23:26
cbcbcbcb 发表于 2022-10-12 19:16
我看了,我感觉这就跟你第一个帖子差不多呀,没啥区别啊,代码如下:

十分感谢,请问这个能转变成xy直角坐标吗?

cbcbcbcb 发表于 2022-10-12 19:34:35
86980387@qq.com 发表于 2022-10-12 19:23
十分感谢,请问这个能转变成xy直角坐标吗?

极坐标转直角坐标,这是高中数学知识点哦。知道thita,知道极径r,这不就可以直接转了嘛(分别乘以cos,sin即可)

86980387@qq.com 发表于 2022-10-12 19:39:24
cbcbcbcb 发表于 2022-10-12 19:34
极坐标转直角坐标,这是高中数学知识点哦。知道thita,知道极径r,这不就可以直接转了嘛(分别乘以cos,s ...

是的,只是自己编程水平不太够,我试一下,非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表