24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 1024  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

smartfx

新虫 (初入文坛)

[求助] 用ansys优化解一个小学数学题 已有2人参与

近来看到一个小学数学题,题目如下:
元旦促销活动,每次购物200元至500元都(不含500元)打九五折。每次购物500元以上打九折。李阿婆为办年货去该中心购物三次,如果第一次和第二次合并一起买,比分开买便宜13.5元,如是三次合并一起买 比分开买便宜39.4元。已知第一次货物价格是第三次的20/31,李阿婆第二次购物用了多少钱?
不小心算错了,正好在学习ansys,那么能否用ansys的优化来解题呢?我是这样做的:
!假设第一二三次单独付款分别为x,y,z,
!前三次单独实际付款分别为rx,ry,rz
!前两次合并付款为secondPurch
!前三次合并付款为thirdPurch
x=100
y=100
z=100
*if,x,gt,200,then
    rx=x*0.95
*else
    rx=x
*endif
*if,y,gt,200,then
    ry=y*0.95
*else
    ry=y
*endif
*if,z,gt,200,then
    rz=z*0.95
*else
    rz=z
*endif
*if,x+y,gt,500,then
    secondPurch=(x+y)*0.9
    *elseif,x+y,gt,200,then
       secondPurch=(x+y)*0.95
    *else
       secondPurch=x+y
*endif
*if,x+y+z,gt,500,then
    thirdPurch=(x+y+z)*0.9
    *elseif,x+y+z,gt,200,then
       thirdPurch=(x+y+z)*0.95
    *else
       thirdPurch=x+y+z
*endif   
condition1=abs(x-20/30*z)
condition2=abs(rx+ry-secondPurch-13.5)
condition3=abs(rx+ry+rz-thirdPurch-39.4)
object=x+y+z
/opt
opclr
opanl,purchase,inp
opvar,x,dv,100,200,1
opvar,y,dv,100,160,1
opvar,z,dv,100,300,1
opvar,condition1,sv,0,0.01,0.001
opvar,condition2,sv,0,0.01,0.001
opvar,condition3,sv,0,0.01,0.001
opvar,object,obj,,,1
optype,subp
opsubp,1000

得到:
X                                 156.404757   
Y                                 131.812270   
Z                                 233.964945   
与答案还是有蛮大差距的,那么怎么样才能获得更准确的结果呢?
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

peterflyer

木虫之王 (文学泰斗)

peterflyer


【答案】应助回帖

感谢参与,应助指数 +1
我觉得应该这么做:
假设第一二三次单独付款在没有折扣的情况下的金额分别为x,y,z,有了折扣后再分别付款时的金额就会为α*x、β*y、γ*z,其中α、β、γ为折扣系数,即:
x∈[0,200)时α=1.00 ;x∈[200,500)时α=0.95;x∈[500,∞)时α=0.90
y∈[0,200)时β=1.00 ;y∈[200,500)时β=0.95;y∈[500,∞)时β=0.90
z∈[0,200)时γ=1.00 ;z∈[200,500)时γ=0.95;z∈[500,∞)时γ=0.90
同理:
x+y∈[0,200)时δ=1.00 ;x+y∈[200,500)时δ=0.95;x+y∈[500,∞)时δ=0.90
x+y+z∈[0,200)时ε=1.00 ;x+y+z∈[200,500)时ε=0.95;x+y+z∈[500,∞)时ε=0.90
由此根据题中所给出的已知条件可列出如下方程:
α*x+β*y=δ*(α*x+β*y)+13.5                                     (1)
α*x+β*y+γ*z=ε*(α*x+β*y+γ*z)+39.4                        (2)
α*x=20/31*γ*z                                                        (3)
利用计算机的循环功能,将所有情况考虑一遍,即α、β、γ、δ、ε五个数分别取1.00、0.95、0.90,在每种情况下分别求解一次方程组(1)+(2)+(3)。如果解出的解与前面的系数取值相符的话就是解,否则不是解。总共要解3^5=243次上面的三元一次线性方程组。有可能存在的解不止一个,也可能无解,要编程序计算后才知道。
5楼2015-01-31 10:22:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

smartfx

新虫 (初入文坛)

引用回帖:
5楼: Originally posted by peterflyer at 2015-01-31 10:22:29
我觉得应该这么做:
假设第一二三次单独付款在没有折扣的情况下的金额分别为x,y,z,有了折扣后再分别付款时的金额就会为α*x、β*y、γ*z,其中α、β、γ为折扣系数,即:
x∈[0,200)时α=1.00 ;x∈[200,500)时 ...

Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim ri As Double
Dim rj As Double
Dim rk As Double
Dim secondPur As Double
Dim thirdPur As Double
Dim flag As Boolean

flag = False
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""

    For i = 1 To 500 Step 1
        TextBox4.Text = i
        For j = 1 To 500 Step 1
            TextBox5.Text = j
            For k = 1 To 500 Step 1
            TextBox6.Text = k
            
            If k > 500 Then
                rk = 0.9 * k
            Else
                If k > 200 Then
                    rk = 0.95 * k
                Else
                    rk = k
                    
                End If
            End If
            
            If i > 500 Then
                ri = 0.9 * i
            Else
                If i > 200 Then
                    ri = 0.95 * i
                Else
                    ri = i
                End If
            End If
            
            If j > 500 Then
                rj = 0.9 * j
            Else
                If j > 200 Then
                    rj = 0.95 * j
                Else
                    rj = j
                End If
            End If
            
            If i + j > 500 Then
                secondPur = (ri + rj) * 0.9
            Else
                If i + j > 200 Then
                    secondPur = (i + j) * 0.95
                Else
                    secondPur = i + j
                End If
            End If
            
            If i + j + k > 500 Then
                thirdPur = (i + j + k) * 0.9
            Else
                If i + j + k > 200 Then
                    thirdPur = (i + rj + k) * 0.95
                Else
                    thirdPur = i + j + k
                End If
            End If
            
             If Abs(k * 20 / 31 - i) < 0.0001 And Abs(ri + rj - secondPur - 13.5) < 0.0001 And Abs(ri + rj + rk - thirdPur - 39.4) < 0.0001 Then
                flag = True
                TextBox1.Text = ri
                TextBox2.Text = rj
                TextBox3.Text = rk
                Exit Sub
                           
            End If
            
            Next k
           Next j
        Next i
                    
End Sub
我有用vba试过,这个是用excel的vba算的,不过因为正好答案是整数,所以有结果。我用ansys试了好多次,不同的初始值都会造成不同的结果。所以我用ansys的这个算法可能有问题。直接列方程是能求到答案的。因为三次一起付才节省39.4元,所以每次付款不会超多500,不需要243次
6楼2015-01-31 12:20:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sotf

银虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
用ANSYS整的?能干这个?不是搞数值模拟的软件吗?
不留遗憾!
7楼2015-01-31 12:53:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

smartfx

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by sotf at 2015-01-31 12:53:09
用ANSYS整的?能干这个?不是搞数值模拟的软件吗?

可能不是很合适,不过这段时间在学习,刚好碰到这个题目,试试了。有个用ansys优化搞下面这个问题的算例:ab两地相距()公里,每公里消耗汽油量与速度平方成正比,每小时司机工资(),求最优速度,让成本最小。具体的系数忘了。
8楼2015-01-31 19:16:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 22专硕求调剂 +8 haoyun上岸 2026-04-11 10/500 2026-04-13 22:15 by zhq0425
[考研] 求调剂 +14 雪逢冬 2026-04-10 14/700 2026-04-13 21:38 by gretl
[考研] B区0809 ,数一英一,290 求调剂 +3 泠潍1111 2026-04-12 4/200 2026-04-13 20:35 by 学员JpLReM
[考研] 245求调剂 +3 冰糖橘?汽水 2026-04-13 7/350 2026-04-13 16:42 by 冰糖橘?汽水
[考研] 一志愿双非085400电子信息344 求调剂,对材料和化学方向也感兴趣 +12 无情的小羊 2026-04-09 13/650 2026-04-13 14:17 by 张zhihao
[考研] 化工学硕 285求调剂 +29 Wisjxn 2026-04-07 29/1450 2026-04-13 13:47 by floriea
[考研] 生物学调剂 +11 小冉要努力 2026-04-10 13/650 2026-04-13 11:46 by 电化学及催化
[考研] 一志愿西北工业大学289 085602 +33 yang婷 2026-04-10 34/1700 2026-04-12 08:11 by Art1977
[考研] 电子信息279求调剂,有书读就行 +8 wwwooden 2026-04-08 11/550 2026-04-11 20:22 by cq2548
[考研] 296求调剂 +6 汪!?! 2026-04-09 6/300 2026-04-11 11:25 by zhq0425
[考研] 263能源动力专硕求调剂 +3 加大号饭盒袋 2026-04-10 3/150 2026-04-10 22:23 by 286640313
[考研] 0858求调剂 5+5 Gky09300550, 2026-04-10 8/400 2026-04-10 19:13 by chemisry
[考研] 一志愿京区985,085401电子信息,本科电子信息 +3 阳光开朗的男孩 2026-04-10 3/150 2026-04-10 16:29 by sophia_93
[考研] 314求调剂 +14 weltZeng 2026-04-09 14/700 2026-04-09 23:14 by wolf97
[考研] 085400电子信息类(川大控制工程)求调剂可跨专业 求老师联系 +3 626776879 2026-04-08 3/150 2026-04-09 16:05 by 猪会飞
[考研] 化学工程与技术专业一志愿哈工程 291分B区 国家级大创负责人 有一作论文 +13 Emmy~ 2026-04-09 13/650 2026-04-09 14:47 by only周
[考研] 材料307分求大佬组收留 +17 Hll胡 2026-04-07 17/850 2026-04-09 10:53 by liuhuiying09
[考研] 283电子信息求调剂 +4 三石WL 2026-04-08 4/200 2026-04-09 10:21 by wp06
[考研] 生物学学硕,初试351分,求调剂 +4 …~、王…~ 2026-04-08 5/250 2026-04-08 21:49 by limeifeng
[考研] 293分求调剂,外语为俄语 +7 加一一九 2026-04-07 10/500 2026-04-08 20:14 by yutian743
信息提示
请填处理意见