?? 尤拉公式解初值問題.cpp
字號:
// 尤拉公式解初值問題.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
double f(double x, double y) //函數f
{
return -y;
}
int main(int argc, char* argv[])
{
cout << " **************************************" << endl;
cout << " ** **" << endl;
cout << " ** 尤拉公式解初值問題 **" << endl;
cout << " ** **" << endl;
cout << " **************************************" << endl << endl;
int n; //等分數
cout << "以步長h=0.1將區間(0,0.2)等分" << endl;
double a=0,b=0.2;
double h=0.1;
n=(b-a)/h;
double *X; //存放x序列
X=new double[n];
double *Y; //存放y序列
Y=new double[n];
Y[0]=1; //初值
int k;
for (k=0;k<n;k++)
{
X[k]=a+k*h;
Y[k+1]=Y[k]+h*f(X[k], Y[k]);
}
cout << "X=[ "; //顯示x序列
for (k=0;k<n;k++)
cout << X[k] << ", ";
cout << b << " ]" <<endl;
cout << "Y=[ "; //顯示y序列
for (k=0;k<n;k++)
cout << Y[k] << ", ";
cout << Y[n] << " ]" <<endl;
//-------------------------------------------------------
cout <<endl << "----------------------------------------" << endl;
cout << "改進的歐拉公式:" << endl << endl;
for (k=0;k<n;k++)
{
double yp,yc;
yp=Y[k]+h*f(X[k], Y[k]);
yc=Y[k]+h*f(X[k+1], yp);
Y[k+1]=(yp+yc)/2;
}
cout << "Y=[ "; //顯示y序列
for (k=0;k<n;k++)
cout << Y[k] << ", ";
cout << Y[n] << " ]" <<endl;
return 0;
delete [n] X;
delete [n] Y;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -