精易论坛

标题: 数学问题,这个问题问AI都没问明白 [打印本页]

作者: 神女软件定制    时间: 2025-3-21 20:57
标题: 数学问题,这个问题问AI都没问明白
解方程:t^3 - 1.826087 t^2 + 0.391304 t + 0.033826 = 0

应该有一个根是 0.33

用js代码,或者易语言代码,求解这个固定方程的所有根,其中红色部分是已知的但是不固定的变量,可以修改的

卡尔丹方法 可以解这种方法,aX^3 + bX^2 + cX + d = 0
即使我知道这样,问ai给出来的代码,算出来结果都没对上


补充内容 (2025-3-21 21:31):
哦,对了,我是要用卡尔丹方法过程来算,不想用牛顿法

补充内容 (2025-3-21 21:31):
因为牛顿法会多次循环,我认为会影响效率,虽然看起来这个卡尔丹方法,全是浮点运算,搞不好效率更慢了
作者: aipca    时间: 2025-3-21 20:57
  
子程序名返回值类型公开备 注
_按钮_求解_被单击  
变量名类 型静态数组备 注
t双精度小数型 
迭代次数整数型 
最大迭代次数整数型 
精度要求双精度小数型 
f双精度小数型 
f导双精度小数型 
delta双精度小数型 
' 初始化参数
t = 0.3  ' 初始猜测值(根据图像分析选择)
最大迭代次数 = 100  ' 防止无限循环
精度要求 = 1e-007  ' 1e-7精度
' 牛顿迭代过程
计次循环首 (最大迭代次数, 迭代次数)
' 计算函数值 f(t) = t^3 -1.826087t^2 +0.391304t +0.033826
f = t × t × t - 1.826087 × t × t + 0.391304 × t + 0.033826
' 计算导数值 f'(t) = 3t^2 -3.652174t +0.391304
f导 = 3 × t × t - 3.652174 × t + 0.391304
' 检查导数是否为0(避免除以零)
如果真 (取绝对值 (f导) < 1e-007)
信息框 (“导数为零,无法继续迭代!”, 0, , )
返回 ()

' 计算增量并更新t值
delta = f ÷ f导
t = t - delta
' 显示当前迭代信息(调试用)
调试输出 (“第”到文本 (迭代次数)“次迭代:t=”, t, “误差=”, 取绝对值 (delta))
' 检查收敛条件
如果真 (取绝对值 (delta) < 精度要求)
跳出循环 ()

计次循环尾 ()
' 显示最终结果
如果真 (迭代次数 > 最大迭代次数)
信息框 (“未能在”到文本 (最大迭代次数)“次内收敛!”, 0, , )
信息框 (“方程实根为:”到文本 (四舍五入 (t, 5)) + #换行符“迭代次数:”到文本 (迭代次数), 0, , )


i支持库列表   支持库注释   
spec特殊功能支持库


DEEPSEEK给的计算结果 这个t值猜测,我都没看明白它是咋猜的。结果到是对上了


作者: 神女软件定制    时间: 2025-3-21 21:14
好像搞定了
作者: liwei321gogo    时间: 2025-3-21 21:15


作者: 神女软件定制    时间: 2025-3-21 21:32
liwei321gogo 发表于 2025-3-21 21:15

我是想要卡尔丹方法来计算,你问下给出代码,看看算出来有没有0.33呢
牛顿法要循环,我不喜欢这个方法
作者: 神女软件定制    时间: 2025-3-21 21:33
aipca 发表于 2025-3-21 21:15
[e=1].版本 2
.支持库 spec

这个是牛顿法,我想要卡尔丹方法,你帮我问问ai给出代码,看看能不能出来0.33




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4