24小时热门版块排行榜    

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

hym5701

木虫 (小有名气)

[求助] 怎么能加速,太慢了 已有1人参与

大家好,我有一个积分要计算,主要是积分区间是-inf到inf,算的太慢了,即使是把积分区间换成(-1,1)好像也很慢,怎么回事,有没有什么方法能加速提高运算速度呢?谢谢!要是把积分区间换成(-1,1)怎么结果还是一个表达式呢,不应该是一个数值吗?
clc;clear
syms x
a=0.5;
b=0.8;
c=1;
d=2;
e=0.1;
fxfz=(a-i*(x-b))*(c+i*(x-d))*x*exp(e*x);
fxfm=(a^2+(x-b)^2)*(c^2+(x-d)^2)*(exp(e*x)-1)^2;
fjf=int(fxfz/fxfm,-inf, inf)
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cob

木虫 (正式写手)

引用回帖:
7楼: Originally posted by hym5701 at 2015-09-24 12:36:13
谢谢,i表示是虚数,不需要定义,另外问下,公式里的每个乘除为什么都要用点乘.*和点除./又不是矩阵,要是矩阵还是用点乘和点除吗?...

正常的矩阵运算直接+ - * /
用"." 就对应数的计算
例如
A =
     1     2
     3     4
B =
     5     6
     7     8
A * B=
19    22
43    50
A.*B=
  5    12
  21    32
A./B =
    0.2000    0.3333
    0.4286    0.5000

» 本帖已获得的红花(最新10朵)

8楼2015-09-24 18:54:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

cob

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
hym5701: 金币+20, ★★★★★最佳答案, 感谢你的指导 2015-09-24 12:38:04
xzhdty: 谢谢参与 2015-09-24 19:01:19
不用 syms x, 会快很多
2楼2015-09-22 06:31:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hym5701

木虫 (小有名气)

引用回帖:
2楼: Originally posted by cob at 2015-09-22 06:31:19
不用 syms x, 会快很多

不syms x 那怎么行,它不是变量吗
3楼2015-09-22 20:22:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cob

木虫 (正式写手)

引用回帖:
3楼: Originally posted by hym5701 at 2015-09-22 20:22:52
不syms x 那怎么行,它不是变量吗...

在matlab网站上找的例子,我没有实验。你实验下。应该会快很多。我以前也用过syms,发现它很慢。换了,就快多了。


Create the function f(x) = 1/(x3 – 2x – c) with one parameter, c.

fun = @(x,c) 1./(x.^3-2*x-c);
Evaluate the integral from x=0 to x=2 at c=5.

q = integral(@(x)fun(x,5),0,2)
4楼2015-09-22 21:33:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见