求助如何用matlab编写方程,得出曲线图

最近利用MATLAB编程遇到问题,并困扰很久。请大家帮忙解决......如图所示,已经得到夹角西塔与半径r的关系:phi=w0*tan(w0*r/a),其中phi为西塔(... 最近利用MATLAB编程遇到问题,并困扰很久。请大家帮忙

解决......
如图所示,已经得到夹角西塔与半径r的关系:
phi=w0*tan(w0*r/a), 其中phi为西塔(指曲线法线方向与竖

直方向的夹角),w0=0.0942, a=0.875
现在就是需要依据上面的方程,得到图示的曲线!

我的思路如下:将半径r均分n份,得步长hx=r0-0/n; 根据几

何关系可以求出在每个步长中所对应的y轴的长度,tan(phi

(i))=hy/hx; 然后各个y轴长度相加,就是曲线总高度; 最后

再求出每个不同半径下曲线高度,画出曲线图。(最后的图

形应该与图示的曲线相似!)

程序如下:
w0=0.0942;
a=0.875;
z=0;
ra=0;
rb=6.35%rb为半径
n=100;
h=(rb-ra)/n;
i=1:1:n;
r(i)=ra+i*h;
phi(i)=w0+tan(r(i)*r0/a);
h(i)=tan(phi(i)*h);
z=sum(h(i)); %曲线总的高度
j=1:1:n;
y(j)=z-sum(h(j));
plot(i,y(j))
展开
 我来答
真greatdju
2013-10-28 · TA获得超过3852个赞
知道小有建树答主
回答量:1300
采纳率:91%
帮助的人:691万
展开全部

clear;clc


r0=10;z0=1;%自己改

w0=0.0942; 

a=0.875;

[r,z]=ode45(@(r,z)-tan(w0*tan(w0*r/a)),[-r0,r0],z0);

plot(r,z)

说明:夹角phi(或者图上的theta)=-(水平正方向到切线正方向的夹角),而这个夹角的正切就是这个函数的导数,所以这个方程转换为如下形式dz/du=tan(-phi)=-tan(w0*tan(w0*r/a)),于是直接用ode45求解即可。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式