编程,求这些求绝对值式子的最小值值

λ演算简介
定义:Expression -& Constant | Variable | Expression Expression | λ Variable. Expression
α替换:λx.λy.x + y ≡ λa.λy.a + y (不出现命名冲突的情况下的重命名)
β化简:(λx.M) N -& [x / N] M (应用时“实参”到“形参”的替换过程)
η化简:(λx.M) x -& M
(似乎只是文本意义上的一种简化)
⊥(Bottom)
⊥用于表示计算没有结果(没有β-nf)的表达式的语义,下面用Haskell中的unedfined作为一个⊥的实例。
每一个ADT都有一个额外的值:“⊥”,但newtype类型不会追加“⊥”
有类型定义:
newtype N = N Int
data D = D Int
函数定义:
n (N i) = 42
d (D i) = 42
有如下应用:
n undefined
d undefined
可以认为newtype定义的类型(N)和它的第一个值构造子所容纳的类型(Int)的是同构的,newtype不追加“⊥”的原因也是为了这种同构,但是一个接受N类型的函数也可能有“⊥”作为输入,这时参考根据上面同构的想法,可以很自然的理解newtype会把“⊥”“转嫁”给自己包裹的类型,于是undefined被“转嫁”给i,而i不必被求值,于是第一个函数返回42。
(对newtype的解释主要来自)
而d因为模式匹配要对传入参数进行计算,即使i的值无所谓,但还是要计算D值构造子,于是会对undefined进行计算,结果就undefined了。
当函数参数为⊥时,如果函数结果为⊥(⊥在语法上是有类型的,但在语义上我们不区分),称函数严格,否则非严格。E.g. n是非严格的,d是严格的。
d (D undefined) --undefined为Int类型的一个值,故函数返回42(没有对D值构造子计算内容)。
d' (D !i) = 42 --如果想要求值构造子的参数,类型前加“!”。
seq 以及 $!
seq : : a -& b -& b --会直接返回第二个参数,但会对第一个参数严格计算。
($!) :: (a -& b) -& a -& b --同($)但会严格计算第二个参数。
表达式形态和thunk
形如F M1 M2 M3 的表达式
F为常量(值,内置函数,值构造子)
F为λ表达式,但后跟M1到Mn不能使其完全应用而导致不能化简。
表达式可以写成树状结构,此处的F为顶层,由于它参数不够,内部子树不必计算。
总结为表达式树的顶层无法化简时,表达式为WHNF。
HNF:为WHNF真子集
形如λx1.λx2. ... λxn.(v M1 M2 ... Mm)
(v M1 M2 ... Mm) :同WHNF1.
当λ部分退化时,即为(v M1 M2 ... Mm).
否则, 要求完全β化简,即不允许WHNF中的外围(F后的)M1到Mn,并且F的参数嵌套层同样要求如此
λx.(λy.y + x) 3 :此处(λy.y + x) 3可以继续化简。不为HNF。
λx.x ((λy.y) 5) :此处处于λ的内部表达式(v M1 M2 ... Mm),不作要求,为HNF。
NF:为HNF的真子集
表达式的任意部分都完全化简。
相对于上面两个,主要是(v M1 ... Mn)部分,NF要求Mx本身是最简的。
没搞清的地方
内置函数何时求值?
以上三者都是定义在lambda操作上的化简,内置函数何时求值?
作者说seq会将表达式求值到HNF,(+) 1 1 应为HNF(甚至NF),但是seq会将其求值为2。
本文目前还没有评论……首先根据题意知"运算中心式子"(,,是常数,且,),故假定该运算式子为,那么假设,且满足,那么就无限循环下去.解得该的值即可.
由题意设该该方程为,因而只要满足,解得.故答案为,.(注:本题的答案不确定,只要满足条件即可).
本题考查一元二次方程的解.解决本题的关键是首先要读懂题目中流程图所表示的含义,才能写出一个符合条件的运算中心式子以及算出相应的能使它一直循环运行的的值.
3738@@3@@@@一元二次方程的解@@@@@@248@@Math@@Junior@@$248@@2@@@@一元二次方程@@@@@@50@@Math@@Junior@@$50@@1@@@@方程与不等式@@@@@@7@@Math@@Junior@@$7@@0@@@@初中数学@@@@@@-1@@Math@@Junior@@
第二大题,第6小题
第二大题,第6小题
第二大题,第6小题
求解答 学习搜索引擎 | 如图是某种计算机的程序示意图,初始端输入x后经"运算中心式子"a{{x}^{2}}+bx+c(a,b,c是常数,且a>0,bc不等于0)处理后得到一个结果.若这个结果大于0,则输出此结果; 否则就将第一次得到的结果作为输入的x再次运行程序...直到输出结果为止.若该程序满足条件:"存在实数t,当输入x的值等于t时,该程序的运算无法停止(即会一直循环运行)",请写出一个符合条件的运算中心式子以及相应的能使它一直循环运行的x的值 ___,___.08-2208-2208-2208-22
09-2309-2409-2309-22
◇本站云标签函数响应式编程(Functional Reactive Programming:FRP)是一种和事件流有关的编程方式,其角度类似EventSoucing,关注导致状态值改变的行为事件,一系列事件组成了事件流。FRP是更加有效率地处理事件流,而无需显式去管理状态。具体来说,FRP包括两个核心观点:1.事件流,离散事件序列2.属性properties, 代表模型连续的值。一系列事件是导致属性值发生变化的原因。FRP非常类似于GOF的观察者模式。为什么需要FRP?FRP的需求来源于对于多个值发生改变,以javascript为例子,如下: var a = function (b,c) { return b + c } // a = b + c其中a实际代表b与c之和,如果b或c持续不断在被改变,如何触发a值也跟着变化呢?也就是说,上述代码只是一种表达式,并没有指定a值的变化依赖b和c。使用Reactive.js可以达到指定这种依赖关系,代码如下://A = B + C
var reactiveA = $R(function (b, c) { return b + c });
var reactiveB = $R.state(2);
var reactiveC = $R.state(1);
reactiveA.bindTo(reactiveB, reactiveC);
reactiveA();
//-> 3
reactiveB(5);
//Set reactiveB to 5
reactiveC(10); //Set reactiveC to 10
reactiveA();
//-> 15我们将b和c可以看成是被观察者,而a作为观察者,如果随着时间推移,b和c的值不断变化,如何将这种变化传导到a呢?我们将导致b和c被观察者发生变化的一系列事件组成事件流,可以用集合来表达事件流,那么FRP框架所要做的就是,遍历这个事件流集合,将导致b和c的变化的事件重新播放,获得a的一系列值结果。事件流被称为被观察者序列(observable sequences),其实被观察者是一种Monads。当存在重复的事件流怎么办?只能选取一个,事件流如果很多,需要进行压缩,所有这些针对事件流(被观察者序列)的额外加工处理需要专门框架实现,RxJava和RxJS分别这样的框架,RxJava是视频巨头Netflix推出的Functional reactive框架。支持java 8的lambda,支持 Groovy, Clojure, Scala 和 JRuby语言。根据云视频巨头Netflix的一文:RxJava作为一个Functional reactive框架,可以提供了如下对被观察者的集合(事件流)处理能力:进行filtering, selecting, transforming, combining 和composing 。在对被观察的数据类型进行遍历中,消费者(consumer也就是被观察者自身)从生产者(producer观察者)那里拉取poll数值,然后,线程会堵塞等待直到这些数值真正到达获取。反过来说,生产者(producer观察者)在数值可用时,则是将数值推送push给消费者。这样的方式更加灵活,因为数值的获取可以是同步或异步。以RxJava/groovy代码为例子:/** * Asynchronously calls 'customObservableNonBlocking' and defines
* a chain of operators to apply to the callback sequence. */def simpleComposition() {
// fetch an asynchronous Observable<String>
// that emits 75 Strings of 'anotherValue_#'
customObservableNonBlocking()
// skip the first 10
// take the next 5
// transform each String with the provided function
.map({ stringValue -> return stringValue + "_transformed"})
// subscribe to the sequence and print each transformed String
.subscribe({ println "onNext => " + it})}上述代码是对事件流集合中从第10个开始5个 事件进行订阅。// outputonNext => anotherValue_10_transformedonNext => anotherValue_11_transformedonNext => anotherValue_12_transformedonNext => anotherValue_13_transformedonNext => anotherValue_14_transformed使用Clojure 实现如下:(defn simpleComposition []
"Asynchronously calls 'customObservableNonBlocking' and defines a
chain of operators to apply to the callback sequence."
fetch an asynchronous Observable<String>
that emits 75 Strings of 'anotherValue_#'
(customObservableNonBlocking) skip the first 10
(.skip 10) take the next 5
(.take 5) transform each String with the provided function
(.map #(str % "_transformed")) subscribe to the sequence and print each transformed String
(.subscribe #(println "onNext =>" %)))) ; outputonNext => anotherValue_10_transformedonNext => anotherValue_11_transformedonNext => anotherValue_12_transformedonNext => anotherValue_13_transformedonNext => anotherValue_14_transformed值得注意的是,Java JDK提供的Futures并不能很好完成FRP,因为进行嵌套组合时带来了复杂性。FRP的Javascript框架RxJS:还有:FRP的Java框架RxJava:
最佳分辨率
OpenSource
Code & 2002-15苹果/安卓/wp
苹果/安卓/wp
积分 829, 距离下一级还需 546 积分
权限: 自定义头衔, 签名中使用图片, 隐身
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡, 抢沙发下一级可获得
权限: 设置帖子权限道具: 提升卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
尴尬签到天数: 1 天连续签到: 1 天[LV.1]初来乍到
本帖最后由 沙漠狂鹰 于
22:44 编辑
我想用MATLAB求这个公式的极值跟判断是极大值还是极小值?P定义为常量,完整的程序是?
22:37:26 上传
用函数 fminserach之类的 从区间中间(a+b)/2开始搜索 -f(x),然后再比较两个区间端点a,b,再比较三个点的值就得到最大最小值
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
本帖被以下文库推荐
& |主题: 207, 订阅: 4
本帖最后由 凸集分离定理 于
00:23 编辑 沙漠狂鹰 发表于
算得出极值,但是要判断是极大值还是极小值就太难算了& &二阶导很复杂 我怕出错&&所以想用软件判断& &区间 ...用函数 fminserach之类的 从区间中间(a+b)/2开始搜索 -f(x),然后再比较两个区间端点a,b,再比较三个点的值就得到最大最小值
matlab 是数值算法 也就是说 需要有一个区间 泛泛而谈是不行的
凸集分离定理 发表于
matlab 是数值算法 也就是说 需要有一个区间 泛泛而谈是不行的就是说这样类型的式子只能自己动手算?????有没有其他软件可以做到?
沙漠狂鹰 发表于
就是说这样类型的式子只能自己动手算?????有没有其他软件可以做到?意思是你提的问题需要一个区间,不然没法算
凸集分离定理 发表于
意思是你提的问题需要一个区间,不然没法算你说的区间是指常数??1 2 3 4这种????& &不是可以用syms 定义常量吗?
区间 就是定义域 你这个是二次函数所以是很容易得到最大最小值的
凸集分离定理 发表于
区间 就是定义域 你这个是二次函数所以是很容易得到最大最小值的算得出极值,但是要判断是极大值还是极小值就太难算了& &二阶导很复杂 我怕出错&&所以想用软件判断& &区间你的意思是不是比如【1&&10】之类的 但是这没有办法判断 因为P是未知的
RE: 我想用MATLAB求这个公式的极值跟判断是大极值还是极小值?完整的程序是?
凸集分离定理 发表于
用函数 fminserach之类的 从区间中间(a+b)/2开始搜索 -f(x),然后再比较两个区间端点a,b,再比较三个点 ...内容能不能写个完整的程序给我,算的出来分数就给你
论坛好贴推荐
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
为做大做强论坛,本站接受风险投资商咨询,请联系(010-)
邮箱:service@pinggu.org
合作咨询电话:(010)
广告合作电话:(刘老师)
投诉电话:(010)
不良信息处理电话:(010)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师

我要回帖

更多关于 编程求绝对值 的文章

 

随机推荐