24小时热门版块排行榜    

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

星——星

新虫 (初入文坛)

[求助] matlab中已知积分结果,求变量的值

积分函数如图所示,已知函数F的值,如何用matlab求出t的值,还请各位大侠帮帮忙~

matlab中已知积分结果,求变量的值
1852167079.jpg
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

星——星

新虫 (初入文坛)

引用回帖:
11楼: Originally posted by yz457694 at 2016-08-20 00:37:51
代码没缩进了,重发一下
函数代码:

function F=myfun(t)     
  ubound=10000;     
  x=0:0.1:ubound;     
  y=sqrt(x)./(1+exp(x-t));     
  F=trapz(x,y);%梯形积分

求解代码:

clear,clc
F= ...

嗯嗯,非常感谢~我还有一个问题想请教下您,那要是正常的从0到无穷这个范围内对x进行积分,是不是也要用这种梯形积分的方法?
12楼2016-08-20 12:30:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

月只蓝

主管区长 (职业作家)

代入高精度的辛普森积分公式,将原式化成只包含t的代数式,解该代数方程即可。
或者,根据F值,试算t值,可得到t的大概范围,将t范围缩小到足够小,然后将该范围区间等分100份(或者更多),逐个扫描取F值误差左偏差和右偏差最小的两个t值,再以此两者为范围扫描100次,即可获得精度很高的t值。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2016-08-18 22:13:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yz457694

铁杆木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
如下:
syms x;
F=      ;%给定F的值
myfun=@(t) F-int(sqrt(x)/(1+exp(x-t)),x,0,inf);
t0=     ;%给一个t的初值,最好取接近真实值,收敛会快些
t=eval(fzero(myfun,t0))   %也可以用fsolve
3楼2016-08-18 23:13:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

星——星

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 月只蓝 at 2016-08-18 22:13:33
代入高精度的辛普森积分公式,将原式化成只包含t的代数式,解该代数方程即可。
或者,根据F值,试算t值,可得到t的大概范围,将t范围缩小到足够小,然后将该范围区间等分100份(或者更多),逐个扫描取F值误差左偏 ...

可以附上相应的代码吗?本人也是最近才开始接触Matlab,对于积分的计算还是第一次,望大侠不吝赐教
4楼2016-08-19 11:46:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见