6年前u=u(x,t)とします。[0,N])とします。この時、差分解を求めるのですが自分で作ったプログラムでは答えが初期値と同じまんまである上に100*100のデータが欲しいのに100個のデータしか出て来ません。どこを直せばいいのかご教授下さい。ちなみに前進差分を使っています。printf("\n");}よーく見てみよう。u[i][j];}}のように変えたのですが、値はおかしいままでした。6年前えーとC言語は変数をただ宣言しただけではどういう値が入っているか分かりません。u[N+1][T+1]={0};というふうに明記する必要があります。6年前へにっくすさん返信ありがとうございます={0}を付け足したところ先ほどのような明らかにおかしい結果は出なくなりましたありがとうございます!ただこの偏微分方程式を解いていない(解けない)ので、正確なことは言えませんがところどころ値が急激に小さくなったり、かと思えば初期値の値と変わらなかったりと凄いブレがあるのですがどこかプログラムがおかしいのでしょうか?それともプログラムではなく計算式自体がおかしいのでしょうか?何度も申し訳ありませんが宜しくお願いします。それともプログラムではなく計算式自体がおかしいのでしょうか?エー私は数値解析に詳しいわけではありません。C言語についてアドバイスしているだけです。オフトピックC言語の観点からみるともう無いです。偏微分方程式?なにそれおいしいの?状態なので、私に聞かれても答えられません。別の識者のコメントをお待ちくださいね。変化しないと思います。6年前へにっくすさん、かずまさん遅くなりましたが返信ありがとうございます。C言語の観点からみるともう無いです。言うことはプログラム的には特におかしい部分はないと言うことですね。ありがとうございました。問題が間違っていませんか?自分もそれは思ったのですが、初期条件と境界条件を一致させてないと例えば初期条件0.1、境界条件0.5のようにするとコード:for(i=0;i<N+1;i++){u[i][0]=0.1;}コード:for(j=0;j<T+1;j++){u[0][j]=u[N][j]=0.5;}から初期条件ではu[0][0]=0.1と言ってるのに、境界条件ではu[0][0]=0.5と矛盾してしまうなぁと思って揃えました。上のように矛盾が出ても問題ないのでしょうか...?宜しくお願いします。私も、偏微分方程式なんてさっぱりわかりません。なくて、初期条件の方だっけ?u[0]の列のことです。別物ですが、u[0][0],u[N][0]は両方の条件に影響される場所なのではないですか?たとえば、uが流体の問題だとすると初期条件は流体の速度で、境界条件は壁による流体の拘束と考えることができますこの場合、どんな初期条件でも壁によって速度が制限されます。問題にも、条件は曖昧に記述されていないとは思うので、u[0][0],u[N][0]はどうなっているか明確になっていると思います。偏微分方程式は常微分方程式とは違い初期条件に関数を入れてもいいんです。ないとこの問題のように全く変化しない自明な解になってしまうんじゃ?最初は自分が解ける偏微分方程式を設定した方がいいと思います。プログラムと関係ない話題で申し訳ありません。っくすさん、かずまさん遅くなりましたが返信ありがとうございます。C言語の観点からみるともう無いです。言うことはプログラム的には特におかしい部分はないと言うことですね。ありがとうございました。問題が間違っていませんか?自分もそれは思ったのですが、初期条件と境界条件を一致させてないと例えば初期条件0.1、境界条件0.5のようにするとコード:for(i=0;i<N+1;i++){u[i][0]=0.1;}コード:for(j=0;j<T+1;j++){u[0][j]=u[N][j]=0.5;}から初期条件ではu[0][0]=0.1と言ってるのに、境界条件ではu[0][0]=0.5と矛盾してしまうなぁと思って揃えました。上のように矛盾が出ても問題ないのでしょうか...?宜しくお願いします。6年前timさん返信ありがとうございます。初期条件をコード:for(i=1;i<N;i++){u[i][0]=i/N;の様に関数に変えて見ました。結果はどうもやはり値が途中で大きく変わるのでそう言う方程式なのだろうと思います。timさんの言うとおり一度自分で簡単に解析出来るものからやってみます。皆様ありがとうございました。ミクプラは自由にリンクできます。