How to find a circle segment within a matlab function

I need to create a function that will find the length of the arc of a circle which is 2 times the length of the segment AB that is reuniting both ends of the arc. Here is my function but I know that within the loop «for» there is a mistake but I can't see where.
The function «func» is where my angle in rad is multiplied by the radius divided by 2 (i suppose this is the good function considering the informations mentionned before).
function [rep]=Arcb(theta)
Ea=1.0;
Er=0.00001;
itermax=25;
i=0;
r=1;
iflag=0;
for i=1:itermax
func=(theta)*r/2;
dfunc=r/2;
theta2=theta-(func/dfunc);
Ea=abs((theta2-theta)/theta);
if Ea<=Er
rep=theta2;
fprintf('La solution après %d itérations est %5.2\n',i,rep);
iflag=1;
break
else
rep=theta;
end
end
end

1 件のコメント

Dyuman Joshi
Dyuman Joshi 2023 年 2 月 23 日
Please format your code properly.
Regardless of the (finite) value of theta, theta2 will always be zero -
func=(theta)*r/2;
dfunc=r/2;
theta2=theta-(func/dfunc);

サインインしてコメントする。

回答 (1 件)

Image Analyst
Image Analyst 2023 年 2 月 23 日

0 投票

A diagram sure would have helped. Without it about all I can suggest is the FAQ:
or the attached paper.
If you have any more questions, then attach your data and code to read it in with the paperclip icon after you read this:

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品

リリース

R2022a

質問済み:

2023 年 2 月 22 日

回答済み:

2023 年 2 月 23 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by