查看: 159|回复: 5|关注: 0

[已解决] 调用函数返回值进行比较 新手

[复制链接]

新手

7 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
程序:
syms x y;  
theta=pi/3;
a=0.4; b=0.15; c=0.005;
k1=0;
k2=2*b-c;
if 0<theta<pi & theta~=pi/3
    k1=(2*b-c)/tan(theta);
end
x1=-k1/2;  y1=k2/2;
x2=k1/2;  y2=-k2/2;
for i=1:400
syms R;
R(1)=x1;
d=0.001;
[Ap,Av]=second2(R(i),x1,x2,y1,y2,theta,a,b,k1,k2);
R(i+1)=R(i)+d;
i=i+1;
Ap=vpa(Ap);
Av=vpa(Av);
if Ap<=Av
    break;
end
end


函数
function [Ap,Av]=second2(xt1,x1,x2,y1,y2,theta,a,b,k1,k2)
syms x y ;
yt1=-(xt1-x1)/tan(pi-theta)+y1;
syms E F;
[E,F]=solve(y-yt1==(x-xt1)*tan(pi-theta),x^2/a^2+y^2/b^2==1,x,y);
xt2=E(1);xt3=E(2);yt2=F(1);yt3=F(2);
syms temp;
if abs(xt1-xt2)>abs(xt1-xt3)
    temp=xt2; xt2=xt3;xt3=temp;
end
if abs(yt1-yt2)>abs(yt1-yt3)
    temp=yt2; yt2=yt3;yt3=temp;
end
AL=pi*a*b/2;
AL2=((yt1-y1)^2+(xt1-x1)^2)^(1/2)*(k1^2+k2^2)^(1/2);
Ap=abs(int((a^2-(a^2*y^2)/b^2)^(1/2)-((y-yt1)/tan(pi-theta)+xt1),x,yt2,yt3));
Av=AL2-AL+Ap;
end



错误信息
无法从 sym 转换为 logical。

出错 second (line 20)
if Ap<Av
不知道还哪里没有赋值 无法进行比较

相关帖子

论坛优秀回答者

中级

1331 麦片

财富积分


5001500


0

主题

1840

帖子

270

最佳答案
  • 关注者: 50
发表于 2019-12-4 18:59:24 | 显示全部楼层 |此回复为最佳答案
display(Ap)

Ap =

0.28678909316916682505839017152095*abs(0.57735026918962576450914878050196*y + (0.16 - 7.1111111111111111111111111111111*y^2)^(1/2) - 0.085159164705469800265099445124039)

你这都没有给y赋值呢!怎么能比较大小

新手

7 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2019-12-4 19:46:20 | 显示全部楼层

多谢多谢  对y积分 我写的对x积分 我更改了
出现了新的问题。。
错误代码
索引超出矩阵维度。

出错 sym/subsref (line 881)
            R_tilde = builtin('subsref',L_tilde,Idx);

出错 second (line 15)
[Ap,Av]=second2(R(i),x1,y1,theta,a,b,k1,k2);

论坛优秀回答者

中级

1331 麦片

财富积分


5001500


0

主题

1840

帖子

270

最佳答案
  • 关注者: 50
发表于 2019-12-4 19:51:34 | 显示全部楼层
CZYLIKE 发表于 2019-12-4 19:46
多谢多谢  对y积分 我写的对x积分 我更改了
出现了新的问题。。
错误代码

你的函数编写还有问题呢!

新手

7 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 2019-12-4 22:40:09 | 显示全部楼层
WarnerChang 发表于 2019-12-4 19:51
你的函数编写还有问题呢!

老哥有时间能帮忙看看么 我没系统学过就是边查边写了 :'( 如果方便的话 多谢了!

论坛优秀回答者

中级

1331 麦片

财富积分


5001500


0

主题

1840

帖子

270

最佳答案
  • 关注者: 50
发表于 2019-12-5 10:32:02 | 显示全部楼层
CZYLIKE 发表于 2019-12-4 22:40
老哥有时间能帮忙看看么 我没系统学过就是边查边写了  如果方便的话 多谢了! ...

你想要做什么呢?!我不知道呀,可以看我给你发的消息
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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