24小时热门版块排行榜    

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

hedge

银虫 (小有名气)

[求助] 一个求弧长的问题! 已有1人参与

本人用MATLAB计算y=Asin(kx)弧长l出错。我的MATLAB版本R2013a.
如果有高手解决我的问题,或者用更简单的方法解决此问题,100金币。
基本思路是:给定振幅A,弧长l,求出k的值。

A=1;  %设定的振幅
l=18; %设定的弧长
syms x k
y1=sqrt(1+A.^2.*k.^2.*cos(k.*x).^2);
uplim=2*pi/k;
y2=int(y1,0,uplim); %弧长公式,一个周期的弧长
y=subs(y2-l); %当弧长为l时的等式。
k=fsolve(@(k)y,4.0,optimset('Display','off'));%求k值。

问题如下:

Warning: Explicit integral could not be found.
Error using fsolve (line 257)
FSOLVE requires all values returned by user functions to be of data type double.

Error in Copy_of_sinek (line 9)
k=fsolve(@(k)y,4.0,optimset('Display','off'))%求k值。

Error in run (line 64)
evalin('caller', [script ';']);
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tgvictor99

木虫 (知名作家)

迷糊领域荣誉领主

【答案】应助回帖

目测楼主的k值在0.41左右。
每个人的人生都是时代的产物。每个人的血统、命运和梦想组成了现在这个时代。
3楼2014-05-01 12:13:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

tgvictor99

木虫 (知名作家)

迷糊领域荣誉领主

【答案】应助回帖

感谢参与,应助指数 +1
提示无法得到显示解,考虑用数值方法求解吧。
每个人的人生都是时代的产物。每个人的血统、命运和梦想组成了现在这个时代。
2楼2014-05-01 11:56:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hedge

银虫 (小有名气)

引用回帖:
2楼: Originally posted by tgvictor99 at 2014-05-01 11:56:06
提示无法得到显示解,考虑用数值方法求解吧。

朋友,FSOLVE就是算值求解!
4楼2014-05-03 15:07:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tgvictor99

木虫 (知名作家)

迷糊领域荣誉领主

引用回帖:
4楼: Originally posted by hedge at 2014-05-03 15:07:33
朋友,FSOLVE就是算值求解!...

。。。。。我的意思是你自己随便写个数值求解的。提示的意思就是无法得到显式解,导致fsolve得到的值不是双精度浮点数,从而fsolve无法计算下去。不信算了。
每个人的人生都是时代的产物。每个人的血统、命运和梦想组成了现在这个时代。
5楼2014-05-03 16:40:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见