- 积分
- 1
- 注册时间
- 2007-10-13
- 仿真币
-
- 最后登录
- 1970-1-1
|
本帖最后由 goldbridge 于 2009-3-26 18:57 编辑
一个比较简单的五元方程
用matlab解,a=b=c=0,d=z1,e=z,居然解中包含字母……;
用mathematica解结果为空的括号,没有提示信息。
只要解出即可,数值解,近似解也没关系,望大虾帮忙看看
附:
matlab代码:
syms a b c d e;
[a,b,c,d,e]=solve('c*0.5086/(a+b*0.5086^2)+0.5086*d+e=0.4871','c*0.5512/(a+b*0.5512^2)+0.5512*d+e=0.5032','c*0.6872/(a+b*0.6872^2)+0.6872*d+e=0.5176','c*0.7006/(a+b*0.7006^2)+0.7006*d+e=0.5158','c*0.8532/(a+b*0.8532^2)+0.8532*d+e=1.0199');
mathematica代码:
Solve[{c*0.5086/(a + b*0.2587) + 0.5086*d + e == 0.4871,
c*0.5512/(a + b*0.3038) + 0.5512*d + e == 0.5032,
c*0.6872/(a + b*0.4722) + 0.6872*d + e == 0.5176,
c*0.7006/(a + b*0.4908) + 0.7006*d + e == 0.5158,
c*0.8532/(a + b*0.7280) + 0.8532*d + e == 1.0199}, {a, b, c, d, e}]
已验证,这是相对误差
4.51598082018556e-06 1.49970687376433e-05 0.00753303114838677 5.55410227337516e-05 0.000206738200644985
非常精准
两天来在论坛上解决了我2个问题,非常感谢,好的论坛。
凡是解决了的问题我都会在帖子中表明的,并附上代码,以便后来者之需
附matlab验证代码:
clear;
x=[0.5086 0.5512 0.6872 0.7006 0.8532];
y=[0.4871 0.5032 0.5176 0.5158 1.0199];
a=2.48790687030621;
b=-3.79322585999422;
c=-0.0990590826327185;
d=0.552541146091743;
e=0.239518089966946;
y1=c.*x./(a+b.*x.^2)+d.*x+e;
error1=abs(1-y1./y);
|
|