Судя по формулировке вашего вопроса, у вас больше уравнений, чем неизвестных, и вы хотите минимизировать несоответствия Обычно это делается с помощью линейной регрессии, которая минимизирует сумму квадратов несоответствий. В зависимости от размера данных вы можете сделать это в электронной таблице или в статистическом пакете. R - это высококачественный бесплатный пакет, который выполняет линейную регрессию и многое другое. Существует много линейной регрессии (и много ошибок), но, как это легко сделать для простых случаев. Вот пример R с использованием ваших данных. Обратите внимание, что «tx» - это перехват вашей модели.
> y <- c(-44.394, -45.3049, -44.9594)
> a <- c(50.0, 43.0, 52.0)
> b <- c(37.0, 39.0, 41.0)
> regression = lm(y ~ a + b)
> regression
Call:
lm(formula = y ~ a + b)
Coefficients:
(Intercept) a b
-41.63759 0.07852 -0.18061
No, there's no such thing as extension operators (or properties etc) - only extension methods.
The C# team have considered it - there are various interesting things one could do (imagine extension constructors) - but it's not in C# 3.0 or 4.0. See Eric Lippert's blog for more information (as always).
Unfortunately C# does not allow you to add operators to any types that you don't own. Your extension method is about as close as you are going to get.
То, что вы пытаетесь сделать в своем примере (определение неявной операции из строки в int), недопустимо.
Поскольку операция (неявное ИЛИ явное) может быть определена только в определение класса целевого или целевого класса, вы не можете определять свои собственные операции между типами каркаса.
I am thinking your best bet is something like this:
public static Int32 ToInt32(this string value)
{
return Int32.Parse(value);
}