24小时热门版块排行榜    

查看: 470  |  回复: 3

chuzhenhui

金虫 (小有名气)

[交流] 【求助】一个方程,怎么解??已有3人参与

方程如下:

已知X ̅ 和t,求Deff,其他都是常数。
n好像到8项以后值很小了,误差就可以忽略
想请教下各位,这个方程怎么解的?用循环语句+solve()可以吗
非常感谢!

[ Last edited by chuzhenhui on 2010-5-10 at 11:05 ]
回复此楼
找到自己。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ray78787878

新虫 (初入文坛)


robert2020(金币+1):鼓励交流~~ 2010-05-10 18:03:17
用mathemathica试试
2楼2010-05-10 13:04:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjliu1265

至尊木虫 (正式写手)

★ ★ ★
robert2020(金币+2):谢谢提供解决问题程序,欢迎常来仿真模拟版交流。 2010-05-14 22:37:45
zzuwangshilei(金币+1):帮助他人解决问题 2010-05-15 11:52:17
chuzhenhui(金币+6):非常感谢,程序代码我回去好好研究研究,努力学习! 2010-05-16 12:52:03
我觉得用2分法就可以了,我不知道方程已知系数取值。这里随便给出
作为例子,程序和结果如下:
clc;clear;close all;
Xp=0.5; % Xp是X ̅
Xe=1;
Xo=8;
L=1;
t=1;
Deff=linspace(-8,0); % Deff的区间可能与已知系数有关,原则是该区间内包含一个零点
F=(Xp-Xe)/(Xo-Xe);
for n=0:10;
    F=F+8*exp([2*n+1]^2*pi^2*Deff*t/[4*L^2])/[pi*(2*n+1)^2];
end
plot(Deff,F);
% 作图法确定Deff两个端点值,使之F(Deff1)*F(Deff2)<0;
Deff1=-8;
Deff2=0;
F1=(Xp-Xe)/(Xo-Xe);
for n=0:10;
    F1=F1+8*exp([2*n+1]^2*pi^2*Deff1*t/[4*L^2])/[pi*(2*n+1)^2];
end
F2=(Xp-Xe)/(Xo-Xe);
for n=0:10;
    F2=F2+8*exp([2*n+1]^2*pi^2*Deff2*t/[4*L^2])/[pi*(2*n+1)^2];
end
while abs(F1*F2)>1e-10; % 二分法
    Deffm=[Deff1+Deff2]/2;
    Fm=(Xp-Xe)/(Xo-Xe);
    for n=0:10;
        Fm=Fm+8*exp([2*n+1]^2*pi^2*Deffm*t/[4*L^2])/[pi*(2*n+1)^2];
    end
    if Fm*F2>=0;
        Deff2=Deffm;
        F2=Fm;
    else
        Deff1=Deffm;
        F1=Fm;
    end
end
Deffr=[Deff1+Deff2]/2;
Fr=[F1+F2]/2;
hold on;plot(Deffr,Fr,'ro'); % 画出解所在点
plot(xlim,[0,0],'r');
运行上述程序可得到下图:
3楼2010-05-14 19:02:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chuzhenhui

金虫 (小有名气)

感谢楼上的!给你评分了~
找到自己。
4楼2010-05-16 12:53:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 chuzhenhui 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见