24小时热门版块排行榜    

查看: 1032  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

815292578

木虫 (著名写手)

[求助] MATLAB求解方程后没有报错,但无法绘制出曲线,求高手帮忙解决... 已有1人参与

最近利用MATLAB求解方程后没有报错,但无法绘制出曲线,求高手帮忙解决...
方程不是很复杂,具体方程如下:
clear;clc;
P=29.6; D=8245; R=0.021;  LL=0.021; x0=0.010;  pp=8960;  a=0.002;  b=0.002;  erfa=30*pi/180;  angle=atan(LL/R);  
n=10;  
h=a/n;  
N=x0/h;  %步长总数
k=1.2;  
t=1/(2*k);
Y=zeros(N,1);
L=zeros(N,1);
H=zeros(N,1);
L(1)=R*tan(angle);
H(1)=0;
x(1)=h;
y(1)=h*tan(erfa);
for i=1:1:N-1;
    x(i+1)=(i+1)*h;  %离散后xi横坐标
    y(i+1)=x(i+1)*tan(erfa);  %离散后yi纵坐标
    psaiI=atan((LL+(i+1)*h)/R);
    z=fsolve(@(z)tan(psaiI)*sqrt((1-(2*z-1)/z^2)*(1-1/((2*z-1)^t)^2))-1/((2*z-1)^t)-sqrt((2*z-1)/z^2),1);
    Dm=D*sqrt(z^2/(2*z-1));
    xx=fsolve(@(x)cos(x)/sin(psaiI-x)-sqrt(z^2/(2*z-1)),0);   
    X=[x,xx];
    L(i+1)=(L(i)*tan(X(i))*tan(psaiI)+tan(psaiI)*(R-H(i)))/(1+tan(X(i))*tan(psaiI));
    H(i+1)=(R*tan(X(i))*tan(psaiI)-L(i)*tan(X(i))+H(i))/(1+tan(X(i))*tan(psaiI));     
if H(i)>Y(i)
    Pm=z*P;
    else
    Pm=P;
    end
    if i==1
        vv(1)=(1/3)*pi*(h*tan(erfa))^2*h;  
        m(1)=pp*vv(1);
        v=Pm/m(1);
    elseif i>n
            vv(i)=(1/3)*pi*(i*h*tan(erfa))^2*i*h-vv(n)-(1/3)*pi*((i-n)*h*tan(erfa))^2*(i-n)*h;
            m(i)=pp*vv(i);
            v(i)=Pm/m(i);
    else
        vv(i)=(1/3)*pi*(i*h*tan(erfa))^2*i*h-vv(i-1);
        m(i)=pp*vv(i);
        v(i)=Pm/m(i);
    end
end
plot(x(i),v(i))
想绘制横坐标为x, 纵坐标为v的曲线。请熟悉MATLAB的高手给点建议,谢谢...
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FMStation

至尊木虫 (知名作家)

【答案】应助回帖

>> vv(i)=(1/3)*pi*((i)*h*tan(erfa))^2*(i)*h-vv(i);
>> whos vv
  Name      Size            Bytes  Class     Attributes
  vv        1x1                 8  double              

??? Index exceeds matrix dimensions.
i =  2 => No vv(2)
4楼2016-08-15 09:56:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

FMStation

至尊木虫 (知名作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
815292578: 金币+10, 有帮助 2016-08-15 06:45:41
plot(x(i),v(i))  => plot(x',v')

whos x v
  Name      Size            Bytes  Class     Attributes

  v         1x49              392  double              
  x         1x50              400  double              

維度不同
2楼2016-08-13 20:47:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

815292578

木虫 (著名写手)

引用回帖:
2楼: Originally posted by FMStation at 2016-08-13 20:47:14
plot(x(i),v(i))  => plot(x',v')

whos x v
  Name      Size            Bytes  Class     Attributes

  v         1x49              392  double              
  x         1x50              400   ...

谢谢您的回复。现在我将程序拆分出来分别计算求得x,z值; H值;Pm值;和微元质量m。最后绘制plot(x,v)。发现还是不行!
发现:这样可以得到离散的x(i)值,y(i)值,X(i)值。但是离散的z(i)值得不到!所以最后无法得到Pm=z*p值。请问给出意见如何修改?谢谢...

clear;clc;
P=29.6; D=8245; R=0.021;  LL=0.021; x0=0.010;  pp=8960;  a=0.002;  b=0.002;  erfa=30*pi/180;  angle=atan(LL/R);  
n=10;  
h=a/n;  
N=x0/h;  %步长总数
k=1.2;  
t=1/(2*k);
%求X值和z值
for i=1:N
    x(i)=i*h;
    y(i)=x(i)*tan(erfa);
    psaiI=atan((LL+i*h)/R);
    z=fsolve(@(z)tan(psaiI)*sqrt((1-(2*z-1)/z^2)*(1-1/((2*z-1)^t)^2))-1/((2*z-1)^t)-sqrt((2*z-1)/z^2),1);  
    xx=fsolve(@(x)cos(x)/sin(psaiI-x)-sqrt(z^2/(2*z-1)),0);   
    X(i)=xx;   
end
%求H值
L=zeros(N,1);
H=zeros(N,1);
L(1)=R*tan(angle);
H(1)=0;
for i=1:N-1
    L(i+1)=(L(i)*tan(X(i))*((LL+i*h)/R)+((LL+i*h)/R)*(R-H(i)))/(1+tan(X(i))*((LL+i*h)/R));
    H(i+1)=(R*tan(X(i))*((LL+i*h)/R)-L(i)*tan(X(i))+H(i))/(1+tan(X(i))*((LL+i*h)/R));   
end
%比较上面计算出的H和y值的大小后,求Pm值
if H(i)>y(i)
    Pm=z*P;
else Pm=P;
end
%求各个微元的质量
for i=1:N
    if i==1
        vv(1)=(1/3)*pi*(h*tan(erfa))^2*h;  %第一个微元体积
        m(1)=pp*vv(1);
        v(1)=Pm/m(1);
    elseif i>n
        vv(i)=(1/3)*pi*((i)*h*tan(erfa))^2*(i)*h-vv(n)-(1/3)*pi*((i-n)*h*tan(erfa))^2*(i-n)*h;
        m(i)=pp*vv(i);
        v(i)=Pm/m(i);
    else
        vv(i)=(1/3)*pi*((i)*h*tan(erfa))^2*(i)*h-vv(i);
        m(i)=pp*vv(i);
        v(i)=Pm/m(i);
    end
end
plot(x,v)
3楼2016-08-15 06:44:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

815292578

木虫 (著名写手)

引用回帖:
4楼: Originally posted by FMStation at 2016-08-15 09:56:39
>> vv(i)=(1/3)*pi*((i)*h*tan(erfa))^2*(i)*h-vv(i);
>> whos vv
  Name      Size            Bytes  Class     Attributes
  vv        1x1                 8  double              

??? Ind ...

谢谢您的回复。vv(i)是指离散后各个微元的体积。由于求解公式不同,当i=1;1<i<=n;n<i<=N.三个不同公式求解的。
接下来该如何求解?能给点建议吗...谢谢
5楼2016-08-16 03:36:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 澳大利亚 Murdoch University 全奖博士招生(3个名额)地质化工冶金领域 +15 AI8RaGaPaSCR 2026-08-07 16/800 2026-08-13 17:45 by mhIP3HAX38ZI
[基金申请] 静等基金结果 +6 gjjjzhong 2026-08-10 19/950 2026-08-13 17:28 by Tide man
[文学芳草园] 阿姨 +3 汪汪锅 2026-08-09 3/150 2026-08-13 16:56 by 410610288
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +4 majunge000 2026-08-11 6/300 2026-08-13 16:50 by 四季常青藤
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +22 Lanmanbaby 2026-08-09 36/1800 2026-08-12 22:50 by sdfapple719
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[硕博家园] 读博的好处 +3 lnee 2026-08-11 3/150 2026-08-11 18:10 by 希望我好好的
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 化学口download_prp&amp;fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
信息提示
请填处理意见