求助,我是超级外行。
毕业设计的题目。有1个很复杂的数学函数f(x,y).就是2个变量的函数
要求函数最小值时候的x,y
数学函数实在太复杂 我想请问各位大神。
我要怎么做 我想问问有没有例子可以让我看看呢?? --------------------编程问答-------------------- 计算机导数值噻 --------------------编程问答-------------------- 我以为,你不能提出一个解决方法,怎么可能用计算机解决这个问题呢……
首先你要从数学上想个办法求解,比如什么微积分什么的,然后计算机上肯定有这种经典方法的优化算法,这不就能用了么…… --------------------编程问答-------------------- .......哎,该去数学专区啊。。。上错论坛了吧 --------------------编程问答-------------------- 这个都毕业设计了,导数应该学过的,即使不知道怎么算,至少应该知道有这么一个求极值的章节吧,如果你是计算机专业的,好像做这个毕业设计有点奇怪,难道是数学专业的?还是这个函数非常非常复杂,无法求导数?
如果知道定义域,倒是可以两层循环,根据精度要求一个个的去把它算出来,或许还可以分布式计算,云计算等等,这样毕业论文也好写了 --------------------编程问答-------------------- 不是的。我的意思是 我想要把一个函数写成C#
就是一个数学式子。里面有cos sin 根号 平方 累加 加权
这个数学算式是又2个变量 m 和 r
每次产生2个不同的m和r 就会得出一个函数值。
我的问题就是我不懂得怎么把这个数学式子写成c#
有了这个式子 我才能继续用优化算法来求解这个式子的最小值。 --------------------编程问答-------------------- 你确定把公式写成c#,就能优化了?这可是需要导数的,导数是要将你的公式降次的,要变化你的公式的,你会变化吗?
数学函数都是.net的math类库里
名称
说明
Abs(Decimal)
返回 Decimal 数字的绝对值。
Abs(Double)
返回双精度浮点数字的绝对值。
Abs(Int16)
返回 16 位有符号整数的绝对值。
Abs(Int32)
返回 32 位有符号整数的绝对值。
Abs(Int64)
返回 64 位有符号整数的绝对值。
Abs(SByte)
返回 8 位有符号整数的绝对值。
Abs(Single)
返回单精度浮点数字的绝对值。
Acos
返回余弦值为指定数字的角度。
Asin
返回正弦值为指定数字的角度。
Atan
返回正切值为指定数字的角度。
Atan2
返回正切值为两个指定数字的商的角度。
BigMul
生成两个 32 位数字的完整乘积。
Ceiling(Decimal)
返回大于或等于指定的十进制数的最小整数值。
Ceiling(Double)
返回大于或等于指定的双精度浮点数的最小整数值。
Cos
返回指定角度的余弦值。
Cosh
返回指定角度的双曲余弦值。
DivRem(Int32, Int32, Int32)
计算两个 32 位有符号整数的商,并通过输出参数返回余数。
DivRem(Int64, Int64, Int64)
计算两个 64 位有符号整数的商,并通过输出参数返回余数。
Exp
返回 e 的指定次幂。
Floor(Decimal)
返回小于或等于指定小数的最大整数。
Floor(Double)
返回小于或等于指定双精度浮点数的最大整数。
IEEERemainder
返回一指定数字被另一指定数字相除的余数。
Log(Double)
返回指定数字的自然对数(底为 e)。
Log(Double, Double)
返回指定数字在使用指定底时的对数。
Log10
返回指定数字以 10 为底的对数。
Max(Byte, Byte)
返回两个 8 位无符号整数中较大的一个。
Max(Decimal, Decimal)
返回两个十进制数中较大的一个。
Max(Double, Double)
返回两个双精度浮点数字中较大的一个。
Max(Int16, Int16)
返回两个 16 位有符号的整数中较大的一个。
Max(Int32, Int32)
返回两个 32 位有符号的整数中较大的一个。
Max(Int64, Int64)
返回两个 64 位有符号的整数中较大的一个。
Max(SByte, SByte)
返回两个 8 位有符号的整数中较大的一个。
Max(Single, Single)
返回两个单精度浮点数字中较大的一个。
Max(UInt16, UInt16)
返回两个 16 位无符号整数中较大的一个。
Max(UInt32, UInt32)
返回两个 32 位无符号整数中较大的一个。
Max(UInt64, UInt64)
返回两个 64 位无符号整数中较大的一个。
Min(Byte, Byte)
返回两个 8 位无符号整数中较小的一个。
Min(Decimal, Decimal)
返回两个十进制数中较小的一个。
Min(Double, Double)
返回两个双精度浮点数字中较小的一个。
Min(Int16, Int16)
返回两个 16 位有符号整数中较小的一个。
Min(Int32, Int32)
返回两个 32 位有符号整数中较小的一个。
Min(Int64, Int64)
返回两个 64 位有符号整数中较小的一个。
Min(SByte, SByte)
返回两个 8 位有符号整数中较小的一个。
Min(Single, Single)
返回两个单精度浮点数字中较小的一个。
Min(UInt16, UInt16)
返回两个 16 位无符号整数中较小的一个。
Min(UInt32, UInt32)
返回两个 32 位无符号整数中较小的一个。
Min(UInt64, UInt64)
返回两个 64 位无符号整数中较小的一个。
Pow
返回指定数字的指定次幂。
Round(Decimal)
将小数值舍入到最接近的整数值。
Round(Double)
将双精度浮点值舍入为最接近的整数值。
Round(Decimal, Int32)
将小数值按指定的小数位数舍入。
Round(Decimal, MidpointRounding)
将小数值舍入到最接近的整数。一个参数,指定当一个值正好处于另两个数中间时如何舍入这个值。
Round(Double, Int32)
将双精度浮点值按指定的小数位数舍入。
Round(Double, MidpointRounding)
将双精度浮点值舍入为最接近的整数。一个参数,指定当一个值正好处于另两个数中间时如何舍入这个值。
Round(Decimal, Int32, MidpointRounding)
将小数值按指定的小数位数舍入。一个参数,指定当一个值正好处于另两个数中间时如何舍入这个值。
Round(Double, Int32, MidpointRounding)
将双精度浮点值按指定的小数位数舍入。一个参数,指定当一个值正好处于另两个数中间时如何舍入这个值。
Sign(Decimal)
返回表示数字符号的值。
Sign(Double)
返回表示双精度浮点数字的符号的值。
Sign(Int16)
返回一个值,该值表示 16 位有符号整数的符号。
Sign(Int32)
返回一个值,该值表示 32 位有符号整数的符号。
Sign(Int64)
返回一个值,表示 64 位有符号整数的符号。
Sign(SByte)
返回表示 8 位有符号整数的符号的值。
Sign(Single)
返回表示单精度浮点数字的符号的值。
Sin
返回指定角度的正弦值。
Sinh
返回指定角度的双曲正弦值。
Sqrt
返回指定数字的平方根。
Tan
返回指定角度的正切值。
Tanh
返回指定角度的双曲正切值。
Truncate(Decimal)
计算指定小数的整数部分。
Truncate(Double)
计算指定双精度浮点数的整数部分。
页首
字段
--------------------------------------------------------------------------------
名称
说明
E
表示自然对数的底,它由常数 e 指定。
PI
表示圆的周长与其直径的比值,它通过常数 n 指定。
--------------------编程问答--------------------
C#里有数学函数的,另外做算法的话用matlab比较好点 --------------------编程问答-------------------- 复合形算法 不需要求导 只要一直迭代
我的题目是基于WEB 要做一个网页出来 无法用MATLAB。
就是
首先 我应该吧函数写出来
然后 我再算法中随机给函数赋值 可以求出函数 然后再迭代 优化
这样。
谢谢大家啊啊啊啊!!! --------------------编程问答-------------------- 迭代也要改公式呀,难道你的函数已经是 z=f(x,y,z)了? --------------------编程问答-------------------- 不用改公式啊 公式是确定的 只是公式里面的变量数值改变了。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 , C#