求解初值问题
2017-05-23 17:10:04 0 举报
求解初值问题
作者其他创作
大纲/内容
令ans[2][i + 1] = temp_y[1 - j]
是
结束
调用子函数,根据公式的具体形式计算各个方法对应的ans[][i + 1]
输出计算结果
令temp_y[j] = ans[2][i] + 0.5 * h * (ans[2][i] - 2 * x / ans[2][i] + temp_y[1 - j] - 2 * (x + h) / temp_y[1 - j])
令j = 0
开始
初始化:令x = 0,ans[0:7][0] = 1,i = 0,h = 0.2
用二维数组ans记录四种方法的计算结果和精确值。其中ans[0][i]记录当n=i时的精确值;ans[1][i]记录当n=i时由欧拉法所得的计算结果;ans[2][i]记录当n=i时由改进欧拉法所得的计算结果;ans[3][i]记录当n=i时由2阶R-K方法所得的计算结果;ans[4][i]记录当n=i时由4阶经典R-K方法所得的计算结果;
令temp_y[0] = ans[2][i] + h * (ans[2][i] - 2 * x / ans[2][i])
否
读取i和x
|temp_y[0] - temp_y[1]| = 0.00001?
令i = i + 1, x = x + h
用数组temp_y[2]记录分别记录迭代到第k次和第k+1次的值
x 1.1?
主程序
令j = 1 - j
令temp_y[1] = ans[2][i] + 0.5 * h * (ans[2][i] - 2 * x / ans[2][i] + temp_y[0] - 2 * (x + h) / temp_y[0])
根据公式计算精确值ans[0][i]
子程序:改进的欧拉法
0 条评论
下一页