24小时热门版块排行榜    

查看: 2104  |  回复: 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

木虫 (正式写手)

引用回帖:
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的回帖
查看全部 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的回帖

hym5701

木虫 (小有名气)

引用回帖:
4楼: Originally posted by cob at 2015-09-22 21:33:23
在matlab网站上找的例子,我没有实验。你实验下。应该会快很多。我以前也用过syms,发现它很慢。换了,就快多了。


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

fun = @(x,c) 1. ...

谢谢你的提示,我用一个简单的例子,提示Inner matrix dimensions must agree.,,帮忙看看哪里不对,而且结果怎么还是一个表达式呢,不应该是一个数值吗
clc;clear
% syms x
a=0.5;
b=0.8;
c=1;
d=2;
e=0.1;
fun=@(x)x.^2*exp(e*x)*((x-a)+i*b)/(((x-a).^2+b.^2)*(exp(e*x)-1).^2);
q=integral(@(x)fun(x),-1,1)
5楼2015-09-23 10:16:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见