Построить Графиу у(х). - C#
Формулировка задачи:
Найти наименьшее значение функции: y=sin(x)/1+x и значение аргумента,
при котором оно получено, если X изменяется от 0 до 10 с шагом 0,1.
Для найденного x подсчитать сумму членов ряда:z=1+x+(x^2/2!)+...(x^10/10!). Построить график y(x).
ПРОГРАММА НАПИСАНА, РАБОТАЕТ, РЕБЯТ, КАК ГРАФИК построить у(х).:?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { /*Найти наименьшее значение функции: y=sin(x)/1+x и значение аргумента, при котором оно получено, если X изменяется от 0 до 10 с шагом 0,1. Для найденного x подсчитать сумму членов ряда:z=1+x+(x^2/2!)+...(x^10/10!).*/ //считаем факториал static double fact(double x) { double rezult = 1; if (x == 0 || x == 1) return rezult; while (x > 1) { rezult *= x; x--; } return rezult; } //функция для вычисления формулы static double func(double x) //задаю имя функции { return Math.Sin(x) / (1 + x); } static void Main(string[] args) { double minElement = 0, tmp, z, minElementIndex = 0; for (double i = 0; i <= 10; i += 0.1) // x if ((tmp = func(i)) < minElement) // нахождения минимального элемента значения функции { minElement = tmp; // минимальное(наименьшее) знач Функции = минимальному элементу функции minElementIndex = i; //позиция, на которой стоит минимальный элемент } Console.WriteLine("Минимальное значение функци = {0} при x {1}", minElement, minElementIndex); // добавление по формуле еденицы z = 1 + minElement; for (int i = 2; i <= 10; i++)//сумма членов ряда { z = z + Math.Pow(minElement, i) / fact(i); //сумма ряда z } Console.WriteLine("Сумма ряда: " + z); } } }
Решение задачи: «Построить Графиу у(х).»
textual
Листинг программы
using System; using System.Collections.Specialized; using System.Globalization; public class Tuple<T1, T2> { public T1 Item1 { get; set; } public T2 Item2 { get; set; } } public Tuple { public static Tuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2) { return new Tuple<T1, T2> { Item1 = item1, Item2 = item2 }; } } class Program { delegate float f(float x); static Tuple<float, float> yMinMax(f func, float xmin, float xmax, float step) { float min = func(xmin), max = func(xmin); for (float x = xmin; x < xmax; x += step) { float cy = func(x); if (cy < min) min = cy; if (cy > max) max = cy; } return Tuple.Create(min, max); } static void SwapNumbers(ref float first, ref float second) { float tmp = first; first = second; second = tmp; } static float Distance(float v1, float v2) { return (float)Math.Abs(v1 - v2); } static bool IsOwned(float x, float min, float max) { return x >= min && x <= max; } static float Display(float x, float minA, float maxA, float minB, float maxB) { if (minA > maxA) SwapNumbers(ref minA, ref maxA); if (minB > maxB) SwapNumbers(ref minB, ref maxB); if (!IsOwned(x, minA, maxA)) return 0f; //throw new ArgumentOutOfRangeException(); float lenA = Distance(minA, maxA); float lenB = Distance(minB, maxB); float y = lenB * (x - minA) / lenA + minB; return y; } static void build(f func, float xmin, float xmax, float step) { Tuple<float, float> ymm = yMinMax(func, xmin, xmax, step); for (float x = xmin; x < xmax; x += step) { int cx = (int)Display(x, xmin, xmax, 1, 80); float y = ymm.Item2 - func(x); int cy = (int)Display(y, ymm.Item1, ymm.Item2, 1, 25); Console.SetCursorPosition(cx, cy); Console.Write('*'); } } static float f1(float x) { return (float)Math.Pow(2f, x); } static float f2(float x) { return (float)Math.Pow(0.5f, x); } static float f3(float x) { return (float)Math.Pow(4f, x); } static void Main(string[] args) { Console.WriteLine("Select function"); Console.WriteLine("1. y = 2^x"); Console.WriteLine("2. y = 0.5^x"); Console.WriteLine("3. y = 4^x"); Console.Write("Your choise: "); string s = Console.ReadLine(); f function; switch (s.Trim()) { case "1": function = f1; break; case "2": function = f2; break; case "3": function = f3; break; default: Console.WriteLine("Error: Wrong input!"); return; } Console.Write("Enter function step: "); s = Console.ReadLine(); float step = 0f; while (!float.TryParse(s, NumberStyles.Any, CultureInfo.CurrentCulture, out step)) { Console.WriteLine("Error: Wrong input!"); Console.Write("Try again: "); s = Console.ReadLine(); } Console.Clear(); build(function, -3f, 3f, step); Console.ReadKey(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д