24小时热门版块排行榜    

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

大海的声音

新虫 (小有名气)

[求助] MATLAB求某一式子怎么求不出结果 已有1人参与

如图,
每个x对应一个w,x有一列数,求其对应的w;
x=[    ];  //数据输入
c=[662.3012161 1.235047160711485 0.003402653539486 -0.421886852153956];
syms n;
u=symsum((-1)^n.*x.^(n*c(4)+2)/((c(4)*n+2)*c(3)^(n*c(4))*prod(n)),n,1,300);
w=c(1).*x.^2*(1-c(2))/2+c(1)*c(2).*x.^2/2+c(1)*c(2).*u-c(1).*x.^2.*(1-c(2)*(1-exp(-(x/c(3)).^c(4)))).^2/2;
plot(x,y,'*');
一直Busy,怎么没有反应,求各位指点迷津!

MATLAB求某一式子怎么求不出结果
chuan.jpg
回复此楼

» 猜你喜欢

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

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

kabaisun

专家顾问 (正式写手)

引用回帖:
3楼: Originally posted by 大海的声音 at 2015-01-16 19:35:37
谢谢,我这个x=由小到大无规律排列的一列数,有14000多个数,看来只能把n缩小点了,虽然这样是有误差的。...

x数据太多可以试试把u的计算式换成矩阵乘法,把syms符号计算去掉。
严实诚勇
4楼2015-01-16 20:28:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

kabaisun

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
大海的声音: 金币+4, ★★★很有帮助 2015-01-16 20:28:03
你这个式子求u时很费时,所以一直出不来结果,你要看怎么把计算u的时间缩短。如果x个数给的比较少的话,像取十个x就比较快;提升速度还可以把n调小些。

以下是修改的代码,
CODE:
c=[662.3012161 1.235047160711485 0.003402653539486 -0.421886852153956];
x=1:10;
syms n ;
u=single(symsum((-1)^n.*x.^(n*c(4)+2)/((c(4)*n+2)*c(3)^(n*c(4))*prod(n)),n,1,100));
w=c(1).*x.^2*(1-c(2))/2+c(1)*c(2).*x.^2/2+c(1)*c(2).*u-c(1).*x.^2.*(1-c(2)*(1-exp(-(x/c(3)).^c(4)))).^2/2;
plot(x,w,'*');

严实诚勇
2楼2015-01-16 19:28:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

大海的声音

新虫 (小有名气)

引用回帖:
2楼: Originally posted by kabaisun at 2015-01-16 19:28:31
你这个式子求u时很费时,所以一直出不来结果,你要看怎么把计算u的时间缩短。如果x个数给的比较少的话,像取十个x就比较快;提升速度还可以把n调小些。

以下是修改的代码,

c=;
x=1:10;
syms n ;
u=single ...

谢谢,我这个x=[0.000006 0.000008 0.00001 0.000012 0.000014 0.00003 .....]由小到大无规律排列的一列数,有14000多个数,看来只能把n缩小点了,虽然这样是有误差的。
3楼2015-01-16 19:35:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

大海的声音

新虫 (小有名气)

引用回帖:
4楼: Originally posted by kabaisun at 2015-01-16 20:28:37
x数据太多可以试试把u的计算式换成矩阵乘法,把syms符号计算去掉。...

这个不好换吧?我这里面u表示的是无穷级数求和。
5楼2015-01-16 20:31:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见