「プログラムソース」 8−1、------------------------------------------------------------- /* とりあえずは、 df/dt=d^2f/dx^2 - d^2f/dy^2 の左辺が0の場合の偏微分方程式を考える */ #include void disp(void); #define N 10 /* 格子数 */ double x1[N]; main(){ double x2[N],a1[N-2][N-2],a2[N-2][N-2],a3[N-2][N-2]; double d; int i,j,t,k; for(i=0;iinkaihou 3.00 -1.00 0.00 0.00 0.00 0.00 0.00 0.00 -1.00 3.00 -1.00 0.00 0.00 0.00 0.00 0.00 0.00 -1.00 3.00 -1.00 0.00 0.00 0.00 0.00 0.00 0.00 -1.00 3.00 -1.00 0.00 0.00 0.00 0.00 0.00 0.00 -1.00 3.00 -1.00 0.00 0.00 0.00 0.00 0.00 0.00 -1.00 3.00 -1.00 0.00 0.00 0.00 0.00 0.00 0.00 -1.00 3.00 -1.00 0.00 0.00 0.00 0.00 0.00 0.00 -1.00 3.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.01 0.00 0.00 0.00 1.00 0.00 0.00 0.01 0.02 0.00 0.00 0.00 0.00 1.00 0.01 0.02 0.05 0.00 0.00 0.00 0.00 0.01 1.02 0.05 0.12 0.00 0.00 0.00 0.01 0.02 0.05 1.12 0.33 0.00 0.00 0.01 0.02 0.05 0.12 0.33 0.85 5.00 5.00 5.00 5.00 5.00 0.00 0.00 0.00 0.00 0.00 5.00 10.00 5.00 5.00 5.00 0.01 0.02 0.06 0.15 0.00 5.00 15.00 5.00 5.00 5.01 0.02 0.06 0.17 0.29 0.00 5.00 20.00 5.00 5.01 5.02 0.05 0.13 0.34 0.46 0.00 5.00 25.00 5.00 5.01 5.03 0.09 0.23 0.60 0.68 0.00 5.00 30.00 5.01 5.02 5.05 0.14 0.37 0.97 0.96 0.00 5.00 35.00 5.01 5.03 5.08 0.22 0.57 1.48 1.35 0.00 5.00 40.01 5.02 5.05 5.12 0.32 0.84 2.20 1.87 0.00 5.00 45.01 5.03 5.07 5.18 0.47 1.22 3.19 2.60 0.00 5.00 50.01 5.04 5.10 5.25 0.67 1.74 4.57 3.60 0.00 5.00 55.02 5.05 5.14 5.36 0.94 2.47 6.47 4.98 0.00 5.00 60.02 5.07 5.19 5.51 1.33 3.48 9.10 6.89 0.00 5.00 65.03 5.10 5.27 5.71 1.86 4.87 12.74 9.53 0.00 5.00 70.05 5.14 5.38 5.99 2.59 6.79 17.77 13.17 0.00 5.00 75.07 5.20 5.52 6.38 3.61 9.44 24.72 18.21 0.00 5.00 80.09 5.27 5.73 6.91 5.01 13.12 34.34 25.17 0.00 5.00 85.13 5.38 6.01 7.65 6.95 18.19 47.62 34.78 0.00 5.00 90.18 5.53 6.40 8.68 9.63 25.20 65.99 48.08 0.00 5.00 95.24 5.73 6.94 10.09 13.33 34.90 91.36 66.44 0.00 5.00 100.34 6.01 7.68 12.04 18.45 48.30 126.44 91.83 0.00 5.00 105.46 6.39 8.71 14.74 25.52 66.81 174.91 126.91 0.00 5.00 110.64 6.92 10.13 18.47 35.29 92.40 241.91 175.39 0.00 5.00 115.89 7.66 12.10 23.63 48.80 127.76 334.49 242.39 0.00 5.00 121.23 8.68 14.81 30.76 67.46 176.63 462.44 334.97 0.00 5.00 126.70 10.09 18.57 40.61 93.26 244.17 639.26 462.93 0.00 5.00 132.34 12.03 23.75 54.22 128.91 337.51 883.62 639.75 0.00 5.00 138.24 14.72 30.92 73.03 178.18 466.50 1221.33 884.12 0.00 5.00 144.48 18.43 40.82 99.03 246.26 644.76 1688.03 1221.84 0.00 5.00 151.19 23.56 54.51 134.95 340.36 891.12 2332.99 1688.54 0.00 5.00 158.55 30.66 73.42 184.60 470.39 1231.57 3224.32 2333.51 0.00 5.00 166.82 40.46 99.56 253.22 650.09 1702.06 4456.09 3224.84 0.00 5.00 176.34 54.01 135.68 348.04 898.44 2352.27 6158.37 4456.63 0.00 5.00 187.58 72.73 185.60 479.08 1241.64 3250.83 8510.87 6158.92 0.00 5.00 201.20 98.60 254.59 660.17 1715.93 4492.62 11761.93 8511.42 0.00 5.00 218.12 134.35 349.93 910.44 2371.39 6208.73 16254.81 11762.50 0.00 5.00 239.59 183.76 481.69 1256.30 3277.21 8580.34 22463.80 16255.39 0.00 5.00 267.35 252.04 663.77 1734.27 4529.03 11857.82 31044.43 22464.41 0.00 5.00 303.80 346.40 915.40 2394.80 6259.00 16387.19 42902.58 31045.06 0.00 5.00 352.27 476.80 1263.15 3307.63 8649.75 22646.63 59290.14 42903.24 0.00 5.00 417.34 657.02 1743.72 4569.14 11953.70 31296.97 81937.19 59290.84 0.00 5.00 505.36 906.07 2407.86 6312.50 16519.65 43251.44 113234.67 81937.96 0.00 5.00 625.08 1250.25 3325.67 8721.77 22829.63 59772.12 156486.74 113235.51 0.00 5.00 788.63 1725.90 4594.06 12051.29 31549.82 82603.15 216259.64 156487.69 0.00 5.00 1012.74 2383.23 6346.94 16652.59 43600.82 114154.87 298863.79 216260.74 0.0 0 5.00 1320.54 3291.63 8769.35 23011.42 60254.90 157758.29 413019.96 298865.09 0.0 0 5.00 1744.01 4547.02 12117.04 31799.11 83270.29 218016.75 570779.96 413021.54 0. 00 5.00 2327.31 6281.92 16743.44 43943.41 115076.78 301291.92 788798.99 570781.92 0 .00 5.00 3131.50 8679.49 23136.97 60726.42 159032.28 416375.42 1090093.98 788801.47 0.00 5.00 4240.95 11992.85 31972.61 83919.97 219777.31 575416.95 1506473.55 1090097.1 8 0.00 5.00 5772.27 16571.81 44183.17 115972.69 303724.90 795207.02 2081896.16 1506477. 74 0.00 5.00 7886.59 22899.78 61057.75 160268.47 419737.66 1098949.52 2877110.89 2081901 .71 0.00 5.00 10806.61 31644.82 84377.86 221483.76 580063.41 1518711.46 3976070.99 287711 8.34 0.00 5.00 14840.06 43730.17 116605.47 306081.22 801628.21 2098808.39 5494796.98 39760 81.04 0.00 5.00 20412.24 60431.73 161142.94 422992.09 1107823.33 2900482.89 7593625.35 5494 810.63 0.00 5.00 28110.90 83512.71 222692.23 584558.98 1530974.72 4008370.16 10494135.77 759 3643.99 0.00 5.00 38748.29 115409.86 307751.29 807839.01 2115755.74 5539433.21 14502543.89 10 494161.29 0.00 5.00 53446.88 159490.65 425300.05 1116404.52 2923903.50 7655310.98 20042029.45 1 4502578.91 0.00 5.00 73757.94 220408.81 587748.51 1542831.70 4040736.60 10579383.10 27697412.69 20042077.61 0.00 5.00 101825.23 304595.68 812246.82 2132139.77 5584162.48 14620352.68 38276895.55 27697479.00 0.00 5.00 140611.37 420939.11 1122495.95 2946543.74 7717125.28 20204837.09 52897386.0 0 38276986.94 0.00 -------------------------------------------------------------------------------- 「考察」 陰解法による偏微分方程式の解を求めるプログラムを作成した。 もともと課題で与えられた式は、 df/dt = d^2f/dx^2 + d^2f/dy^2 であるが、これをいきなり作成するのは難しいと思ったので、3次数から2次数にして考えた。 つまり、左辺を0として、 0 = d^2f/dx^2 + d^2f/dy^2 でまず考えた。 しかし、作成しているうちにこの方程式を陰解法で作成しようとすると、コンパイルは通っても不明のエラーが起こるために、 さらに式を少し変えて、熱方程式のような、 0 = d^2f/dx^2 - d^2f/dy^2 つまり、 d^2f/dx^2 = d^2f/dy^2 で考えた。 これだと、うまくいき上記のようなソースと実行結果となった。 しかし、ーを+に変更するとやはりエラーがでるため、ここで行き詰ってしまった。 格子数の変更による安定性を一応調べてみたのだが、「格子数」=3の時は、安定したが他の場合は安定しなかった。 --------------------------------------------------------------------------------