Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using static System.Math;
- namespace ConsoleApplication2
- {
- class Program
- {
- public static double fun(double x, double y, double n,double T)
- {
- double tau = (T) / (n - 1);
- return (Cos(0.8 * tau * y) - x);
- }
- static void Main(string[] args)
- {
- //задача о вынужденных колебаниях
- //метод эйлера
- int n = 1000;
- double w0 = 1;
- double lam = 0.8;
- double t0 = 0;
- double T = 10*PI;
- double x0 = 0; double v0 = 0;//начальные условия
- double[] vn = new double[n + 1];
- vn[0] = v0;
- double[] xn = new double[n + 1];
- xn[0] = x0;
- double tau = (T - t0) / (n-1);
- System.IO.StreamWriter textFile1 =
- new System.IO.StreamWriter(@"E:\8_euler.txt");
- double t=0;
- for (int i = 1; i <= n; i++)
- {
- t = i;
- vn[i] = vn[i - 1] + tau * (- w0 * w0 * xn[i - 1]+Cos(lam*tau*t));
- xn[i] = xn[i - 1] + tau * vn[i - 1];
- Console.Write(xn[i] + " ");
- textFile1.WriteLine(xn[i]);
- }
- textFile1.Close();
- //метод эйлера-кромера
- System.IO.StreamWriter textFile2 =
- new System.IO.StreamWriter(@"E:\8_eulerkromer.txt");
- for (int i = 1; i <= n; i++)
- {
- vn[i] = vn[i - 1] + tau * (-w0 * w0 * xn[i - 1] + Cos(lam * tau * t));
- xn[i] = xn[i - 1] + tau * vn[i];
- Console.Write(xn[i] + " ");
- textFile2.WriteLine(xn[i]);
- }
- textFile2.Close();
- //метод рунге кутта
- System.IO.StreamWriter textFile3 =
- new System.IO.StreamWriter(@"E:\8_rungekutt.txt");
- for (int i = 1; i <= n; i++)
- {
- t = i;
- double k0 = fun(xn[i - 1],t,n, T) ;
- double k1 = fun(xn[i - 1]+tau/2, t, n, T);
- double k2 = fun(xn[i - 1]+tau/2, t, n, T);
- double k3 = fun(xn[i - 1] + tau, t, n, T);
- vn[i] = vn[i - 1] + tau / 6 * (k0 + 2 * k1 + 2 * k2 + k3);
- xn[i] = xn[i - 1] + tau * vn[i];
- Console.Write(xn[i] + " ");
- textFile3.WriteLine(xn[i]);
- }
- textFile3.Close();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement