Вычислить значения функции по формулам - C#
Формулировка задачи:
Задание на фото. Как видно, x нач. = 0, x конечн. = 3, шаг = 0.1, y = 12. Найти q для каждого x.
Вот моя программа, но она работает некорректно. Например, при x = 1 очевидно, что q = 11, а не -0.5. Мне кажется, что дело в типе данных double. Помогите исправить код, пожалуйста.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication6
{
public class Tabel
{
public double a { get; set; }
public double b { get; set; }
public override string ToString()
{
return String.Format("{0:0.00}\t\t|\t {1:0.00}", a, b);
}
}
class Program
{
static void Main(string[] args)
{
double x;
Console.WriteLine("\n\n x\t\t\t q \n");
x = 0;
double q;
for (x = 0.1; x <= 3; x=x+0.1) {
if (x < 1)
q = Math.Pow(x, (12.0 / x)) - Math.Pow(Math.Sqrt(12.0/ x), 1.0/3);
else if (x > 1) q = (1.0 / 12) - x;
else q = 12.0 - x;
List<Tabel> Tabl = new List<Tabel>() {
new Tabel(){a = x, b = q},
};
foreach (Tabel c in Tabl)
Console.WriteLine(c);
}
Console.ReadKey();
}
}
}Решение задачи: «Вычислить значения функции по формулам»
textual
Листинг программы
Math.Pow(Math.Sqrt(12.0/ x), 1.0/3)