24小时热门版块排行榜    

查看: 1038  |  回复: 7

柱子234

新虫 (小有名气)

[求助] 5点差分格式解边值问题。。。求大神帮忙 已有1人参与

有没有类似的程序,哪位大神给我发一下,或者帮我写以下程序。
5点差分格式解边值问题。。。求大神帮忙
IMG_20151229_193059.jpg
回复此楼

» 猜你喜欢

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

米米米BO

金虫 (初入文坛)

把差分方程写出来,直接可以在Excel里面算

发自小木虫Android客户端
2楼2015-12-29 19:55:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

柱子234

新虫 (小有名气)

引用回帖:
2楼: Originally posted by 米米米BO at 2015-12-29 19:55:20
把差分方程写出来,直接可以在Excel里面算

下面别人的程序,我该如何利用我的问题里面的边值条件呢?

function [ u x y k]=wudianchafenfa1(h,m,n,kmax,ep)
% g-s迭代法解五点差分法问题
%kmax为最大迭代次数
%m,n为x,y方向的网格数,例如(2-0)/0.01=200;aa
syms temp;
u=zeros(n+1,m+1);
x=-1+(0:m)*h;
y=-1+(0:n)*h;
for(i=1:n+1)
    u(i,1)=sin(3*pi/4+pi*y(i)/4);
    u(i,m+1)=sin(3*pi/4+pi*y(i)/4);
end
for(i=1:n)
    for(j=1:m)
        f(i,j)=32*u(i,j);
    end
end
t=zeros(n-1,m-1);
for(k=1:kmax)
    for(i=2:n)
        for(j=2:m)
            temp=h*h*f(i,j)/4+(u(i,j+1)+u(i,j-1)+u(i+1,j)+u(i-1,j))/4;
            t(i,j)=(temp-u(i,j))*(temp-u(i,j));
            u(i,j)=temp;
        end
    end
    t(i,j)=sqrt(t(i,j));
    if(k>kmax)
        break;
    end
    if(max(max(t))<ep)
        break;      
    end
end
3楼2015-12-29 21:42:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

米米米BO

金虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
这是matlab写的啊,可以套在你的问题上,但改起来麻烦,我明天重新帮你写一个吧
4楼2015-12-30 00:13:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

柱子234

新虫 (小有名气)

引用回帖:
4楼: Originally posted by 米米米BO at 2015-12-30 00:13:43
这是matlab写的啊,可以套在你的问题上,但改起来麻烦,我明天重新帮你写一个吧

感谢大神啊!方便加你Qq?

[ 发自手机版 http://muchong.com/3g ]
5楼2015-12-30 07:36:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

米米米BO

金虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
柱子234: 金币+20, ★★★★★最佳答案 2015-12-31 08:57:13
clear,clc;
n=9;            % grid number
h=0.25;         % step length
u=zeros(n,n);  
u(:,1)=1;       % top boundary
u(:,n)=0;       % bottom boundary
for k=1:1000    % maximum iteration
    u0=u;   
    % left boundary
    u(2,2:n-1)=(u(3,2:n-1)+u(2,1:n-2)+u(2,3:n)-0.5*h)/5.0;
    u(1,2:n-1)=u(2,2:n-1)-0.5*h;
    % right boundary
    u(n-1,2:n-1)=(u(n-2,2:n-1)+u(n-1,1:n-2)+u(n-1,3:n)-0.5*h)/5.0;
    u(n,2:n-1)=u(n-1,2:n-1)-0.5*h;
    % middle grid
    u(3:n-2,2:n-1)=(u(2:n-3,2:n-1)+u(4:n-1,2:n-1)+u(3:n-2,1:n-2)+u(3:n-2,3:n))/6.0;
    delta=max(max(abs(u-u0)));
    if(delta<1e-8)  % precision
        disp(['Number of iteration: ',num2str(k)]);
        disp(u');
        break;
    end
end
运行下这个试试
6楼2015-12-30 10:13:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

米米米BO

金虫 (初入文坛)

引用回帖:
6楼: Originally posted by 米米米BO at 2015-12-30 10:13:51
clear,clc;
n=9;            % grid number
h=0.25;         % step length
u=zeros(n,n);  
u(:,1)=1;       % top boundary
u(:,n)=0;       % bottom boundary
for k=1:1000    % maximum iteration
    ...

上下边界那个标注反了
7楼2015-12-30 10:16:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

柱子234

新虫 (小有名气)

引用回帖:
7楼: Originally posted by 米米米BO at 2015-12-30 10:16:32
上下边界那个标注反了...

这个就是我的那个问题吗?大神。。。感谢啊!
8楼2015-12-31 08:56:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 柱子234 的主题更新
信息提示
请填处理意见