1) Нахождение частного решения системы.
2) План решения системы методом Эйлера.
3) Общее решение системы методом Эйлера.
4) Решение задачи Коши.
5) Решение системы методом исключения.
6) Решение системы методом интегрируемых комбинаций.
Прикладная математика, информатика
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using ZedGraph;//подключаем ZedGraph namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Dictionary<double, double> coordinats = new Dictionary<double, double>();// coordinats-хранит координаты точек функции for (double x = -9; x <= 9; x += 0.1)//x от -9 до 9 { coordinats.Add(x, x * x);//расчитываем координаты } GraphPane myPane = new GraphPane(); zedGraphControl1.GraphPane = myPane; myPane.XAxis.Title.Text = "Координата X";//подпись оси X myPane.YAxis.Title.Text = "Координата Y";//подпись оси Y myPane.Title.Text = "График функции y=x^2";//подпись графика myPane.Fill = new Fill(Color.White, Color.LightSkyBlue, 45.0f);//фон графика заливаем градиентом myPane.Chart.Fill.Type = FillType.None; myPane.Legend.Position = LegendPos.Float; myPane.Legend.IsHStack = false; LineItem myCurve = myPane.AddCurve("y=x^2",coordinats.Keys.ToArray(), coordinats.Values.ToArray(), Color.Blue,SymbolType.None);//строим график, цвет линии синий myCurve.Symbol.Fill = new Fill(Color.White); zedGraphControl1.AxisChange(); zedGraphControl1.Refresh(); zedGraphControl1.Visible = true; } } }В результате получим следующую программу:
Определители. Основные определения. Вычисление определителей третьего порядка.
Свойства определителей.
Минор.
Алгебраическое дополнение.
Вычисление определителей любого порядка. Понятие определителя n-ого порядка.
Матрицы. Основные определения.
Операции над матрицами.
Понятие обратной матрицы и алгоритм её вычисления. Ранг матрицы. Элементарные преобразования.
Системы линейных алгебраических уравнений. Основные определения. Матричная форма записи.
Правило Крамера.
Теорема Кронекера-Капелли.
Решение систем линейных алгебраических уравненийий методом Гаусса.
Матричный метод решения системы линейных алгебраических уравнений.
Однородная система линейных алгебраических уравнений.
Скалярные и векторные величины. Основные определения.
Линейные операции над векторами. Свойства линейных операций.
Векторное пространство, его размерность. Понятие Базиса.
Базис на плоскости. Разложение вектора по базису R.
Базис в пространстве. Разложение вектора по базису R.
Скалярное произведение векторов. Свойства скалярного произведения.
Определение угла между двумя векторами.
Условия параллельности(коллинеарности) и перпендикулярности(ортогональности) двух векторов.
Векторное произведение.
Свойства векторного произведения.
Векторное произведение ортов.
Смешанное произведение векторов. Свойства смешанного произведения. Геометрический смысл смешанного произведения.
Координаты на прямой. Деление отрезка в данном отношении.
Общее уравнение прямой и его исследование.
Уравнение прямой, проходящей через две точки М 1(x1, y1) М2 (x2, y2).
Уравнение прямой в отрезках.
Уравнение прямой с угловым коэффициентом.
Нормальное уравнение плоскости.
Условие параллельности и перпендикулярности прямых.
Угол между прямыми.
Плоскость в пространстве. Виды уравнений плоскости.
Прямая в пространстве. Виды уравнений прямой в пространстве.
Взаимное расположение прямой и плоскости.
Кривые второго порядка. Окружность.
Кривые второго порядка. Эллипс.
Кривые второго порядка. Гипербола.
Кривые второго порядка. Парабола.
Вход: КА .Программная реализация на языке C++
Выход: КА без недостижимых состояний.
1. Поместить начальное состояние КА в список достижимых состояний.
2. Для новых элементов списка достижимых состояний пополнить список группой их состояний-преемников, отсутствующих в списке.
3. Повторять п.2, пока список достижимых состояний не перестанет меняться.
4. Исключить из множества состояний КА все состояния, отсутствующие в списке достижимых состояний.
5. Исключить недостижимые заключительные состояния и функции переходов, содержащие недостижимые состояния.
#include <cstdlib> #include <iostream> #include <fstream> using namespace std; int main(int argc, char *argv[]) { fstream read,write;//поток для чтения/записи из файла read.open("avtomat.txt",ios::in);//открываем файл avtomat.txt write.open("avtomat_.txt",ios::out);//открываем файл avtomat_.txt if(!read||!write){cout<<"File read Error!"<<endl;system("PAUSE");return EXIT_SUCCESS;};//если возникла ошибка при чтении char sostoanie[128],start,end[128],dost[128],nedost[128]={}; //sostoanie-состояния,start - начальное состояние, end - конечные состояния, stroka - строка для распознавания//dost - достижимые состояния int razmer,c=1,flag; //razmer - количество правил read.getline(sostoanie,128,'\n');cout<<sostoanie<<endl;//считали множество состояний read>>start;read.get();cout<<"Start "<<start<<endl; read.getline(end,128,'\n');cout<<"Finish "<<end<<endl;//считали конечные состояния read>>razmer;read.get(); //считали количество правил char pravila[3][razmer],temp[4];//pravila массив с правилами, temp промежуточный массив для чтения правил dost[0]=start;//начальное состояние всегда достижимо *1 ШАГ АЛГОРИТМА* for(int i=0;i<razmer;i++)//считываем правила { read.getline(temp,4,'\n');cout<<temp<<endl; for(int j=0;j<3;j++) pravila[j][i]=temp[j]; }; //ищем достижимые состояния for(int i=0;i<strlen(sostoanie);i++) { for(int k=0;k<razmer;k++) if(sostoanie[i]==pravila[2][k]&&pravila[0][k]!=pravila[2][k]&&sostoanie[i]!=start) { dost[c]=sostoanie[i];c++;break; } } //находим недостижимые состояния c=0; for(int i=0;i<strlen(sostoanie);i++) { flag=0; for(int k=0;k<strlen(dost);k++) if(sostoanie[i]!=dost[k]) { flag++; } if(flag==strlen(dost)) { nedost[c]=sostoanie[i];c++; } } cout<<endl<<"=========="<<endl<<"Nedostigimue sostoania "<<nedost<<endl<<"=========="<<endl; write<<dost<<endl<<start<<endl;//записываем в новый файл новые состояния и начальное состояние cout<<dost<<endl<<"Start "<<start<<endl; for(int i=0;i<strlen(end);i++)//исключаем из конечных состояний недостижимые for(int j=0;j<strlen(nedost);j++) if(end[i]!=nedost[j]) { cout<<"Finish "<<end[i]<<endl; write<<end[i];//записываем конечные состояния в новый файл } for(int i=0;i<razmer;i++)//исключаем из правил правила с недостижимыми состояниями for(int j=0;j<strlen(nedost);j++) if(pravila[0][i]!=nedost[j]&&pravila[2][i]!=nedost[j]) { cout<<pravila[0][i]<<pravila[1][i]<<pravila[2][i]<<endl; write<<endl<<pravila[0][i]<<pravila[1][i]<<pravila[2][i];//записываем новые правила в файл } system("PAUSE");return EXIT_SUCCESS; }
#include <windows.h> #include <iostream> #include <stdio.h> #include <conio.h> using namespace std; //indir - откуда копировать //outdir - куда копировать BOOL Copy(char indir[128],char outdir[128]) { WIN32_FIND_DATA FindFileData; HANDLE hFind; CreateDirectory(outdir, NULL);//создаём директорию куда всё будем копировать char maska[128] = {0}; strcat(maska,indir);strcat(maska,"/*");//Где какие файлы ищем hFind = FindFirstFile(maska, &FindFileData);//Поиск файлов if(hFind == NULL) return FALSE; do { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)// нашли папку { if(strcmp(FindFileData.cFileName,".")&&strcmp(FindFileData.cFileName,"..")) { printf ("Copy Directory %s\n", FindFileData.cFileName); char indir2[128]={0};char outdir2[128]={0}; strcat(indir2,indir);strcat(indir2,"/");strcat(indir2,FindFileData.cFileName);strcat(indir2,"/"); strcat(outdir2,outdir);strcat(outdir2,"/");strcat(outdir2,FindFileData.cFileName); Copy(indir2,outdir2);//рекурсивный вызов функции } } else//нашли файл { printf ("Copy File %s\n", FindFileData.cFileName); char indir2[128]={0};char outdir2[128]={0}; strcat(indir2,indir);strcat(indir2,"/");strcat(indir2,FindFileData.cFileName); strcat(outdir2,outdir);strcat(outdir2,"/");strcat(outdir2,FindFileData.cFileName); CopyFile (indir2,outdir2, TRUE);//копируем файл } } while(FindNextFile(hFind, &FindFileData));//пока есть что копировать FindClose(hFind); return TRUE; } int main(int argc, char *argv[]) { Copy(argv[1],argv[2]); getch(); return 0; }