24小时热门版块排行榜    

查看: 1649  |  回复: 5

zyxzyh921

禁虫 (初入文坛)

本帖内容被屏蔽

» 猜你喜欢

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

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

tgvictor99

木虫 (知名作家)

迷糊领域荣誉领主

【答案】应助回帖

感谢参与,应助指数 +1
妹纸,程序里的k2你写错了,应该是除以p0.,你怎么写成了k2=sqrt(r1*Ec*E0/x);应该是:
k2=sqrt(r1*Ec*E0/p0);
每个人的人生都是时代的产物。每个人的血统、命运和梦想组成了现在这个时代。
2楼2013-07-10 17:11:53
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zyxzyh921: 金币+20, ★★★很有帮助, 灰常感谢~ 问题解决了~~~ 2013-07-11 10:03:59
1.解x有虚数问题
解答:把x的初值取一点,取0.01,就不会出现虚数了:

function zyxzy
clear all;clc
format long
x0=0.01;
options=optimset('Display','iter');    %创建options结构变量,其中display的值为iter,
[x,fval]=fsolve(@myfun,x0,options)


function f=myfun(x)
r1=0.001;
rn=0.02;
Ec=4653000;
E0=8.85e-12;
U=25000;
k1=sqrt(r1*Ec*x/E0);
k2=sqrt(r1*Ec*E0/x);
k3=sqrt(k2^2-r1^2);
f1=sqrt(rn^2+k2^2-r1^2);
f=U-k1*(f1-k2+k3*(log(rn/r1)+log(k2+k3)-log(k3+f1)));


结果:

                                         Norm of      First-order   Trust-region
Iteration  Func-count     f(x)          step         optimality    radius
     0          2    4.59128e+008                     4.26e+010               1
     1          3    4.59128e+008      0.0107764      4.26e+010               1
     2          5      2.462e+008      0.0026941       3.6e+010         0.00269
     3          7     4.3381e+007     0.00673525      4.09e+010         0.00674
     4          9    1.46051e+006     0.00106182       5.2e+009         0.00674
     5         11         1394.16    0.000280992      1.51e+008         0.00674
     6         13      0.00124421   9.23407e-006      1.42e+005         0.00674
     7         15    4.93763e-016   8.73987e-009         0.0897         0.00674
     8         17               0   5.50577e-015              0         0.00674

Equation solved.

fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.

<stopping criteria details>


x =

   0.001922707332546


fval =

     0

2.把p0=0.0019,代回原方程,phi=91.8586的问题
解答:请注意你构建的myfun函数中出现了1e-12级别的极小数E0,如果p0取0.0019,仅有0.0001的精度,这样的精度与E0想乘除以后,误差会被剧烈放大,所以phi=91.8586
如果你代入x =

   0.001922707332546
就会发现结果为:1.469743438065052e-009,已经非常接近于0了。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2013-07-10 17:26:43
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

zyxzyh921

禁虫 (初入文坛)

本帖内容被屏蔽

4楼2013-07-10 20:43:33
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

tgvictor99

木虫 (知名作家)

迷糊领域荣誉领主

引用回帖:
4楼: Originally posted by zyxzyh921 at 2013-07-10 20:43:33
呵呵== 你看清楚。。程序是为了解p0 。。。。 所以把p0看做x啊。。。...

额,好吧,没看清楚。
每个人的人生都是时代的产物。每个人的血统、命运和梦想组成了现在这个时代。
5楼2013-07-11 09:56:30
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

zyxzyh921

禁虫 (初入文坛)

本帖内容被屏蔽

6楼2013-07-12 09:11:57
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zyxzyh921 的主题更新
信息提示
请填处理意见