表达式3-2.6==0.4的值是什么?

本文深入探讨了Java中浮点数运算的不精确性及其解决方法,通过代码演示展示了使用BigDecimal类进行精确计算的过程与结果,旨在帮助开发者避免常见的精度错误。

    今天在一本书上看到的,觉得很有道理,又涨知识了,就来分享一下.

   1.我的第一反应就是为true,因为'-'的运算等级比'=='高,所以0.4==0.4,

然后就是true,可是这是错的

 

    2.代码演示:

  

package Test;

import java.math.BigDecimal;

public class sss {

	public static void main(String[] args) {
		
		sss ss = new sss();
		ss.ImpreciseResult();
		ss.PrecisionResult();
	}
	
	public void ImpreciseResult(){
		
		System.out.println(3-2.6);//输出3和2.6的差值
		System.out.println(3-2.6==0.4);//输出比较结果
		
	}
	
	public void PrecisionResult(){
		
		BigDecimal  x = new BigDecimal("3");//创建3的BigDecimal对象
		BigDecimal  y = new BigDecimal("2.6");//创建2.6的BigDecimal对象
		BigDecimal z=x.subtract(y);//计算3和2.6的差值
		double value=z.doubleValue();//转成double
		System.out.println(value);//计算结果
		System.out.println(value==0.4);//比较结果
	}
}

  

  3.运行结果:

  
  
 

  看到了吧,原因是:Java中基本类型的浮点数运算是不精确的,在实际中,为了得到精确的计算结果,对于浮点数的运算一般不使用基本数据类型来实现,而是使用BigDecimal类实现.

   希望对你有帮助.

 

 

#异步相关依赖 aiofiles==24.1.0 aiohappyeyeballs==2.4.6 aiohttp==3.11.12 aioprometheus==23.12.0 aiosignal==1.3.2 async-timeout==4.0.3 frozenlist==1.5.0 multidict==6.1.0 yarl==1.18.3 #数据处理与可视化 altair==4.2.2 contourpy==1.3.1 cycler==0.12.1 matplotlib==3.10.0 numpy==1.24.4 pandas==1.5.3 pillow==10.4.0 pyparsing==3.2.1 scipy==1.15.3 seaborn==0.13.2 tabulate==0.9.0 #Web 框架与接口 anyio==4.8.0 fastapi==0.109.2 fastapi-mcp==0.3.4 fastjsonschema==2.21.1 h11==0.14.0 httpcore==1.0.7 httptools==0.6.4 httpx==0.27.2 httpx-sse==0.4.0 pydantic==2.7.4 pydantic_core==2.18.4 pydantic-extra-types==2.10.2 pydantic-settings==2.9.1 starlette>=0.36.3,<0.37.0 sse-starlette==1.8.2 uvicorn==0.34.0 websockets==14.2 #LangChain 生态(100% 无冲突,Python 3.10 验证通过) #核心调整:降低 langchain 主版本至 0.2.16,同步匹配子库版本,避免 core 版本交叉冲突 langchain==0.2.16 # 降至 0.2.16(依赖 core≥0.2.36<0.3.0,兼容范围更广) langchain-community==0.2.18 # 与 langchain==0.2.16 匹配,依赖 core≥0.2.36<0.3.0 langchain-core==0.2.43 # 保持 0.2.x 最高稳定版,同时满足所有子库要求 langchain-experimental==0.0.64 # 降至 0.0.640.0.65 依赖更高 core,0.0.64 兼容 core≥0.2.36) langchain-openai==0.2.4 # 降至 0.2.4(依赖 core≥0.2.36<0.3.0,与 core==0.2.43 完美兼容) langchain-text-splitters==0.2.3 # 降至 0.2.30.2.4 依赖 core≥0.2.43,此处保持版本统一) langchainhub==0.1.19 # 无 core 版本冲突,保持不变 langsmith==0.1.147 # 无 core 版本冲突,保持不变 #文档处理与解析 beautifulsoup4==4.13.3 docx2txt==0.8 et_xmlfile==2.0.0 favicon==0.7.0 filetype==1.2.0 lxml==5.3.1 markdown-it-py==3.0.0 markdownify==0.14.1 markdownlit==0.0.7 openpyxl==3.1.4 pydub==0.25.1 PyMuPDF==1.23.26 PyMuPDFb==1.23.22 pypdf==5.3.0 python-docx==1.1.2 soupsieve==2.6 unstructured==0.11.8 unstructured-client==0.25.9 #模型与推理相关(适配 Python 3.10) faiss-cpu==1.7.4 huggingface-hub==0.32.1 modelscope==1.18.0 onnxruntime==1.15.1 openai==1.61.1 safetensors==0.5.3 tiktoken==0.8.0 torch==2.7.0 torchvision==0.22.0 xinference-client==1.6.0 xoscar==0.7.2 #数据库与存储 PyMySQL==1.1.1 pyarrow==19.0.0 SQLAlchemy==2.0.38 #工具类与辅助依赖(Python 3.10 兼容) annotated-types==0.7.0 backoff==2.2.1 backports.tarfile==1.2.0 bcrypt==4.3.0 blinker==1.9.0 Brotli==1.1.0 build==1.2.2.post1 CacheControl==0.14.2 cachetools==5.5.1 certifi==2025.1.31 cffi==1.17.1 chardet==5.2.0 charset-normalizer==3.4.1 cleo==2.1.0 click==8.1.8 cloudpickle==3.1.1 colorama==0.4.6 coloredlogs==15.0.1 crashtest==0.4.1 cryptography==44.0.0 dataclasses-json==0.6.7 deepdiff==8.2.0 deprecation==2.1.0 distlib==0.3.9 distro==1.9.0 dnspython==2.7.0 dulwich==0.22.7 ecdsa==0.19.1 elastic-transport==8.17.0 elasticsearch==8.4.3 email_validator==2.2.0 emoji==2.14.1 entrypoints==0.4 exceptiongroup==1.2.2 Faker==36.1.0 ffmpy==0.5.0 filelock==3.17.0 flatbuffers==25.2.10 fonttools==4.56.0 fsspec==2025.5.1 gitdb==4.0.12 GitPython==3.1.44 greenlet==3.1.1 groovy==0.1.2 h2==4.2.0 hpack==4.1.0 htbuilder==0.9.0 humanfriendly==10.0 hyperframe==6.1.0 idna==3.10 importlib_metadata==8.6.1 installer==0.7.0 itsdangerous==2.2.0 jaraco.classes==3.4.0 jaraco.context==6.0.1 jaraco.functools==4.1.0 jieba==0.42.1 Jinja2==3.1.5 jiter==0.8.2 joblib==1.4.2 jsonpatch==1.33 jsonpath-python==1.0.6 jsonpointer==3.0.0 jsonschema==4.23.0 jsonschema-specifications==2024.10.1 keyring==25.6.0 kiwisolver==1.4.8 langdetect==1.0.9 loguru==0.7.3 Markdown==3.7 MarkupSafe==3.0.2 marshmallow==3.26.1 mcp==1.9.0 mdurl==0.1.2 memoization==0.4.0 more-itertools==10.6.0 mpmath==1.3.0 msgpack==1.1.0 mypy-extensions==1.0.0 nest-asyncio==1.6.0 networkx==3.1 nltk==3.8.1 numexpr==2.10.2 nvidia-ml-py==12.575.51 opencv-python==4.10.0.84 orderly-set==5.3.0 orjson==3.10.15 packaging==23.2 passlib==1.7.4 pathlib==1.0.1 pika==1.3.2 pip==25.0 pkginfo==1.12.0 platformdirs==4.3.6 poetry==2.0.1 poetry-core==2.0.1 prometheus_client==0.21.1 propcache==0.2.1 protobuf==4.25.6 psutil==7.0.0 pyahocorasick==2.1.0 pyasn1==0.4.8 pyclipper==1.3.0.post6 pycparser==2.22 pydeck==0.9.1 Pygments==2.19.1 PyJWT==2.8.0 pymdown-extensions==10.14.3 pynvml==12.0.0 pypandoc==1.15 pyproject_hooks==1.2.0 pyreadline3==3.5.4 python-dateutil==2.9.0.post0 python-decouple==3.8 python-dotenv==1.0.1 python-iso639==2025.2.8 python-jose==3.4.0 python-magic==0.4.27 python-multipart==0.0.20 pytz==2025.1 PyYAML==6.0.2 quantile-python==1.1 rank-bm25==0.2.2 RapidFuzz==3.12.1 rapidocr-onnxruntime==1.3.25 referencing==0.36.2 regex==2024.11.6 requests==2.31.0 requests-toolbelt==1.0.0 rich==13.9.4 rpds-py==0.22.0 rsa==4.9.1 ruamel.yaml==0.18.6 ruamel.yaml.clib==0.2.12 ruff==0.11.11 semantic-version==2.10.0 setproctitle==1.3.6 setuptools==75.8.0 shapely==2.0.7 shellingham==1.5.4 simplejson==3.19.3 six==1.17.0 smmap==5.0.2 sniffio==1.3.1 socksio==1.0.0 st-annotated-text==4.0.2 streamlit==1.34.0 streamlit-aggrid==1.0.5 streamlit-antd-components==0.3.1 streamlit-camera-input-live==0.2.0 streamlit-card==1.0.2 streamlit-chatbox==1.1.8 streamlit-embedcode==0.1.2 streamlit-extras==0.4.2 streamlit-faker==0.0.3 streamlit-feedback==0.1.4 streamlit-image-coordinates==0.1.9 streamlit-keyup==0.3.0 streamlit_modal==0.1.0 streamlit-option-menu==0.3.12 streamlit-paste-button==0.1.2 streamlit-toggle-switch==1.0.2 streamlit-vertical-slider==2.5.5 strsimpy==0.2.1 sympy==1.13.3 tblib==3.1.0 tenacity==8.5.0 toml==0.10.2 tomli==2.2.1 tomlkit==0.13.2 toolz==1.0.0 tornado==6.4.2 tqdm==4.67.1 trove-classifiers==2025.1.15.22 typer==0.15.4 types-requests==2.32.0.20241016 typing_extensions==4.12.2 typing-inspect==0.9.0 typing-inspection==0.4.0 tzdata==2025.1 ujson==5.10.0 urllib3==2.3.0 validators==0.34.0 virtualenv==20.29.2 watchdog==6.0.0 watchfiles==1.0.4 win32_setctime==1.2.0 wrapt==1.17.2 zipp==3.21.0 以上依赖 出现不兼容 环境Python 3.10.0 liunx
09-11
function solve_coupled_dde_with_history % 固定延迟参数 tau = 1; % 设置求解器选项 opts = ddeset(&#39;RelTol&#39;, 1e-8, &#39;AbsTol&#39;, 1e-10, &#39;MaxStep&#39;, 0.05); % 时间范围 [0, 20] tspan = [0, 20]; % ================== 求解主系统 ================== % % 主系统历史函数 (t ∈ [-1, 0]) history_master = @(t) [... 1.3; % κ1^R 1.1; % κ1^I 3.0; % w1^R -1.8; % w1^I -2.0; % κ2^R -1.2; % κ2^I -1.0; % w2^R 1.3 % w2^I ]; fprintf(&#39;Solving Master System...\n&#39;); tic; sol_master = dde23(@master_ddefun, tau, history_master, tspan, opts); toc; % ================== 求解从系统 ================== % % 从系统历史函数 (t ∈ [-1, 0]) history_slave = @(t) [... 1.8; % λ1^R 1.7; % λ1^I 3.9; % v1^R 0.3; % v1^I -2.5; % λ2^R -1.4; % λ2^I -4.3; % v2^R -0.4 % v2^I ]; fprintf(&#39;\nSolving Slave System...\n&#39;); tic; sol_slave = dde23(@slave_ddefun, tau, history_slave, tspan, opts); toc; % ================== 绘制结果 ================== % plot_results(sol_master, sol_slave); % ================== 同步误差分析 ================== % analyze_synchronization(sol_master, sol_slave); end function dydt = master_ddefun(t, y, Z) % 主系统状态变量分配: % y(1) = κ1^R, y(2) = κ1^I, y(3) = w1^R, y(4) = w1^I % y(5) = κ2^R, y(6) = κ2^I, y(7) = w2^R, y(8) = w2^I % 延迟状态 (t - tau) y_d = Z; % 节点1的方程 dydt = zeros(8,1); dydt(1) = -y(1) + y(3); % dot{κ}_1^R dydt(2) = -y(2) + y(4); % dot{κ}_1^I % w1^R方程中的min/max项 A1 = 0.4*tanh(y_d(1)) + 1.0*tanh(y_d(2)); B1 = -2.0*tanh(y_d(5)) + 0.3*tanh(y_d(6)); min1 = min(A1, B1); C1 = 0.2*tanh(y_d(1)) + 2.5*tanh(y_d(2)); D1 = 2.0*tanh(y_d(5)) + 1.4*tanh(y_d(6)); max1 = max(C1, D1); dydt(3) = -y(3) - 0.4*y(1) + 1.5*tanh(y(1)) - 2.6*tanh(y(2)) ... - 2.0*tanh(y(5)) - 1.7*tanh(y(6)) ... + 2.5*tanh(y_d(1)) - 1.5*tanh(y_d(2)) ... + 1.0*tanh(y_d(5)) + 1.2*tanh(y_d(6)) ... + min1 + max1 + 2; % dot{w}_1^R % w1^I方程中的min/max项 A2 = -1.0*tanh(y_d(1)) + 0.4*tanh(y_d(2)); B2 = -0.3*tanh(y_d(5)) - 2.0*tanh(y_d(6)); min2 = min(A2, B2); C2 = -2.5*tanh(y_d(1)) + 0.2*tanh(y_d(2)); D2 = -1.4*tanh(y_d(5)) + 2.0*tanh(y_d(6)); max2 = max(C2, D2); dydt(4) = -y(4) - 0.4*y(2) + 2.6*tanh(y(1)) + 1.5*tanh(y(2)) ... + 1.7*tanh(y(5)) - 2.0*tanh(y(6)) ... + 1.5*tanh(y_d(1)) + 2.5*tanh(y_d(2)) ... - 1.2*tanh(y_d(5)) + 1.0*tanh(y_d(6)) ... + min2 + max2; % dot{w}_1^I % 节点2的方程 dydt(5) = -y(5) + y(7); % dot{κ}_2^R dydt(6) = -y(6) + y(8); % dot{κ}_2^I % w2^R方程中的min/max项 A3 = 1.5*tanh(y_d(1)) + 1.6*tanh(y_d(2)); B3 = 1.1*tanh(y_d(5)) + 1.6*tanh(y_d(6)); min3 = min(A3, B3); C3 = 0.5*tanh(y_d(1)) + 1.6*tanh(y_d(2)); D3 = 2.8*tanh(y_d(5)) - 0.6*tanh(y_d(6)); max3 = max(C3, D3); dydt(7) = -0.4*y(7) - 1.6*y(5) + 1.2*tanh(y(1)) - 0.6*tanh(y(2)) ... + 1.0*tanh(y(5)) + 1.5*tanh(y(6)) ... - 1.7*tanh(y_d(1)) + 2.7*tanh(y_d(2)) ... - 2.4*tanh(y_d(5)) + 1.6*tanh(y_d(6)) ... + min3 + max3 + 2; % dot{w}_2^R % w2^I方程中的min/max项 A4 = -1.6*tanh(y_d(1)) + 1.5*tanh(y_d(2)); B4 = -1.6*tanh(y_d(5)) + 1.1*tanh(y_d(6)); min4 = min(A4, B4); C4 = -1.6*tanh(y_d(1)) + 0.5*tanh(y_d(2)); D4 = 0.6*tanh(y_d(5)) + 2.8*tanh(y_d(6)); max4 = max(C4, D4); dydt(8) = -0.4*y(8) - 1.6*y(6) + 0.6*tanh(y(1)) + 1.2*tanh(y(2)) ... - 1.5*tanh(y(5)) + 1.0*tanh(y(6)) ... - 2.7*tanh(y_d(1)) - 1.7*tanh(y_d(2)) ... - 1.6*tanh(y_d(5)) - 2.4*tanh(y_d(6)) ... + min4 + max4; % dot{w}_2^I end function dydt = slave_ddefun(t, y, Z) % 从系统状态变量分配: % y(1) = λ1^R, y(2) = λ1^I, y(3) = v1^R, y(4) = v1^I % y(5) = λ2^R, y(6) = λ2^I, y(7) = v2^R, y(8) = v2^I % 延迟状态 (t - tau) y_d = Z; % 节点1的方程 dydt = zeros(8,1); dydt(1) = -y(1) + y(3); % dot{λ}_1^R dydt(2) = -y(2) + y(4); % dot{λ}_1^I % v1^R方程中的min/max项 A1 = 0.4*tanh(y_d(1)) + 1.0*tanh(y_d(2)); B1 = -2.0*tanh(y_d(5)) + 0.3*tanh(y_d(6)); min1 = min(A1, B1); C1 = 0.2*tanh(y_d(1)) + 2.5*tanh(y_d(2)); D1 = 2.0*tanh(y_d(5)) + 1.4*tanh(y_d(6)); max1 = max(C1, D1); dydt(3) = -y(3) - 0.4*y(1) + 1.5*tanh(y(1)) - 2.6*tanh(y(2)) ... - 2.0*tanh(y(5)) - 1.7*tanh(y(6)) ... + 2.5*tanh(y_d(1)) - 1.5*tanh(y_d(2)) ... + 1.0*tanh(y_d(5)) + 1.2*tanh(y_d(6)) ... + min1 + max1 + 2; % dot{v}_1^R % v1^I方程中的min/max项 A2 = -1.0*tanh(y_d(1)) + 0.4*tanh(y_d(2)); B2 = -0.3*tanh(y_d(5)) - 2.0*tanh(y_d(6)); min2 = min(A2, B2); C2 = -2.5*tanh(y_d(1)) + 0.2*tanh(y_d(2)); D2 = -1.4*tanh(y_d(5)) + 2.0*tanh(y_d(6)); max2 = max(C2, D2); dydt(4) = -y(4) - 0.4*y(2) + 2.6*tanh(y(1)) + 1.5*tanh(y(2)) ... + 1.7*tanh(y(5)) - 2.0*tanh(y(6)) ... + 1.5*tanh(y_d(1)) + 2.5*tanh(y_d(2)) ... - 1.2*tanh(y_d(5)) + 1.0*tanh(y_d(6)) ... + min2 + max2; % dot{v}_1^I % 节点2的方程 dydt(5) = -y(5) + y(7); % dot{λ}_2^R dydt(6) = -y(6) + y(8); % dot{λ}_2^I % v2^R方程中的min/max项 A3 = 1.5*tanh(y_d(1)) + 1.6*tanh(y_d(2)); B3 = 1.1*tanh(y_d(5)) + 1.6*tanh(y_d(6)); min3 = min(A3, B3); C3 = 0.5*tanh(y_d(1)) + 1.6*tanh(y_d(2)); D3 = 2.8*tanh(y_d(5)) - 0.6*tanh(y_d(6)); max3 = max(C3, D3); dydt(7) = -0.4*y(7) - 1.6*y(5) + 1.2*tanh(y(1)) - 0.6*tanh(y(2)) ... + 1.0*tanh(y(5)) + 1.5*tanh(y(6)) ... - 1.7*tanh(y_d(1)) + 2.7*tanh(y_d(2)) ... - 2.4*tanh(y_d(5)) + 1.6*tanh(y_d(6)) ... + min3 + max3 + 2; % dot{v}_2^R % v2^I方程中的min/max项 A4 = -1.6*tanh(y_d(1)) + 1.5*tanh(y_d(2)); B4 = -1.6*tanh(y_d(5)) + 1.1*tanh(y_d(6)); min4 = min(A4, B4); C4 = -1.6*tanh(y_d(1)) + 0.5*tanh(y_d(2)); D4 = 0.6*tanh(y_d(5)) + 2.8*tanh(y_d(6)); max4 = max(C4, D4); dydt(8) = -0.4*y(8) - 1.6*y(6) + 0.6*tanh(y(1)) + 1.2*tanh(y(2)) ... - 1.5*tanh(y(5)) + 1.0*tanh(y(6)) ... - 2.7*tanh(y_d(1)) - 1.7*tanh(y_d(2)) ... - 1.6*tanh(y_d(5)) - 2.4*tanh(y_d(6)) ... + min4 + max4; % dot{v}_2^I end function plot_results(sol_master, sol_slave) % 创建主系统图形窗口 figure(&#39;Name&#39;, &#39;Master System&#39;, &#39;Position&#39;, [100, 100, 1200, 800]) % 节点1的状态 subplot(2,2,1) plot(sol_master.x, sol_master.y(1:2,:), &#39;LineWidth&#39;, 1.5) title(&#39;Master Node 1: \kappa States&#39;) legend(&#39;\kappa_1^R&#39;, &#39;\kappa_1^I&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;State Value&#39;) grid on subplot(2,2,2) plot(sol_master.x, sol_master.y(3:4,:), &#39;LineWidth&#39;, 1.5) title(&#39;Master Node 1: w States&#39;) legend(&#39;w_1^R&#39;, &#39;w_1^I&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;State Value&#39;) grid on % 节点2的状态 subplot(2,2,3) plot(sol_master.x, sol_master.y(5:6,:), &#39;LineWidth&#39;, 1.5) title(&#39;Master Node 2: \kappa States&#39;) legend(&#39;\kappa_2^R&#39;, &#39;\kappa_2^I&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;State Value&#39;) grid on subplot(2,2,4) plot(sol_master.x, sol_master.y(7:8,:), &#39;LineWidth&#39;, 1.5) title(&#39;Master Node 2: w States&#39;) legend(&#39;w_2^R&#39;, &#39;w_2^I&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;State Value&#39;) grid on % 创建从系统图形窗口 figure(&#39;Name&#39;, &#39;Slave System&#39;, &#39;Position&#39;, [100, 100, 1200, 800]) % 节点1的状态 subplot(2,2,1) plot(sol_slave.x, sol_slave.y(1:2,:), &#39;LineWidth&#39;, 1.5) title(&#39;Slave Node 1: \lambda States&#39;) legend(&#39;\lambda_1^R&#39;, &#39;\lambda_1^I&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;State Value&#39;) grid on subplot(2,2,2) plot(sol_slave.x, sol_slave.y(3:4,:), &#39;LineWidth&#39;, 1.5) title(&#39;Slave Node 1: v States&#39;) legend(&#39;v_1^R&#39;, &#39;v_1^I&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;State Value&#39;) grid on % 节点2的状态 subplot(2,2,3) plot(sol_slave.x, sol_slave.y(5:6,:), &#39;LineWidth&#39;, 1.5) title(&#39;Slave Node 2: \lambda States&#39;) legend(&#39;\lambda_2^R&#39;, &#39;\lambda_2^I&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;State Value&#39;) grid on subplot(2,2,4) plot(sol_slave.x, sol_slave.y(7:8,:), &#39;LineWidth&#39;, 1.5) title(&#39;Slave Node 2: v States&#39;) legend(&#39;v_2^R&#39;, &#39;v_2^I&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;State Value&#39;) grid on % 创建相空间比较图 figure(&#39;Name&#39;, &#39;Phase Space Comparison&#39;, &#39;Position&#39;, [100, 100, 1400, 600]) % 节点1的实部比较 subplot(1,2,1) plot(sol_master.x, sol_master.y(1,:), &#39;b-&#39;, &#39;LineWidth&#39;, 1.5) hold on plot(sol_slave.x, sol_slave.y(1,:), &#39;r--&#39;, &#39;LineWidth&#39;, 1.5) title(&#39;Node 1 Real Part Comparison&#39;) legend(&#39;Master \kappa_1^R&#39;, &#39;Slave \lambda_1^R&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;State Value&#39;) grid on % 节点1的虚部比较 subplot(1,2,2) plot(sol_master.x, sol_master.y(2,:), &#39;b-&#39;, &#39;LineWidth&#39;, 1.5) hold on plot(sol_slave.x, sol_slave.y(2,:), &#39;r--&#39;, &#39;LineWidth&#39;, 1.5) title(&#39;Node 1 Imaginary Part Comparison&#39;) legend(&#39;Master \kappa_1^I&#39;, &#39;Slave \lambda_1^I&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;State Value&#39;) grid on end function analyze_synchronization(sol_master, sol_slave) % 同步误差分析 figure(&#39;Name&#39;, &#39;Synchronization Error&#39;, &#39;Position&#39;, [100, 100, 1200, 800]) % 插使时间点对齐 t_common = unique(sort([sol_master.x, sol_slave.x])); master_k1R = interp1(sol_master.x, sol_master.y(1,:), t_common); slave_l1R = interp1(sol_slave.x, sol_slave.y(1,:), t_common); error_R = abs(master_k1R - slave_l1R); master_k1I = interp1(sol_master.x, sol_master.y(2,:), t_common); slave_l1I = interp1(sol_slave.x, sol_slave.y(2,:), t_common); error_I = abs(master_k1I - slave_l1I); % 绘制同步误差 semilogy(t_common, error_R, &#39;b-&#39;, &#39;LineWidth&#39;, 1.5) hold on semilogy(t_common, error_I, &#39;r--&#39;, &#39;LineWidth&#39;, 1.5) title(&#39;Synchronization Error (Node 1)&#39;) legend(&#39;Real Part Error&#39;, &#39;Imaginary Part Error&#39;, &#39;Location&#39;, &#39;best&#39;) xlabel(&#39;Time t&#39;) ylabel(&#39;Error Magnitude (log scale)&#39;) grid on % 计算平均同步误差 avg_error_R = mean(error_R(t_common > 5)); % 忽略初始瞬态 avg_error_I = mean(error_I(t_common > 5)); fprintf(&#39;\nSynchronization Analysis (Node 1):\n&#39;); fprintf(&#39;Average Real Part Error (t>5): %.4e\n&#39;, avg_error_R); fprintf(&#39;Average Imaginary Part Error (t>5): %.4e\n&#39;, avg_error_I); if avg_error_R < 1e-4 && avg_error_I < 1e-4 fprintf(&#39;System achieved synchronization!\n&#39;); else fprintf(&#39;System did not achieve full synchronization.\n&#39;); end end 检查一下这个matlab代码是否完整的将下面latex中的公式完美无误写出,有错误的话知名并给出改正后完整代码 For node $l=1$: \begin{align} \dot{\kappa}_1^R(t) &= -\kappa_1^R(t) + w_1^R(t) \\ \dot{\kappa}_1^I(t) &= -\kappa_1^I(t) + w_1^I(t) \\ \dot{w}_1^R(t) &= -w_1^R(t) - 0.4\kappa_1^R(t) + 1.5\tanh(\kappa_1^R(t)) - 2.6\tanh(\kappa_1^I(t)) - 2.0\tanh(\kappa_2^R(t)) - 1.7\tanh(\kappa_2^I(t)) \notag \\ &\quad + 2.5\tanh(\kappa_1^R(t-1)) - 1.5\tanh(\kappa_1^I(t-1)) + 1.0\tanh(\kappa_2^R(t-1)) + 1.2\tanh(\kappa_2^I(t-1)) \notag \\ &\quad + \min\left\{ \begin{array}{c} 0.4\tanh(\kappa_1^R(t-1)) + 1.0\tanh(\kappa_1^I(t-1)) \\ -2.0\tanh(\kappa_2^R(t-1)) + 0.3\tanh(\kappa_2^I(t-1)) \end{array} \right\} \notag \\ &\quad + \max\left\{ \begin{array}{c} 0.2\tanh(\kappa_1^R(t-1)) + 2.5\tanh(\kappa_1^I(t-1)) \\ 2.0\tanh(\kappa_2^R(t-1)) + 1.4\tanh(\kappa_2^I(t-1)) \end{array} \right\} + 2 \\ \dot{w}_1^I(t) &= -w_1^I(t) - 0.4\kappa_1^I(t) + 2.6\tanh(\kappa_1^R(t)) + 1.5\tanh(\kappa_1^I(t)) + 1.7\tanh(\kappa_2^R(t)) - 2.0\tanh(\kappa_2^I(t)) \notag \\ &\quad + 1.5\tanh(\kappa_1^R(t-1)) + 2.5\tanh(\kappa_1^I(t-1)) - 1.2\tanh(\kappa_2^R(t-1)) + 1.0\tanh(\kappa_2^I(t-1)) \notag \\ &\quad + \min\left\{ \begin{array}{c} -1.0\tanh(\kappa_1^R(t-1)) + 0.4\tanh(\kappa_1^I(t-1)) \\ -0.3\tanh(\kappa_2^R(t-1)) - 2.0\tanh(\kappa_2^I(t-1)) \end{array} \right\} \notag \\ &\quad + \max\left\{ \begin{array}{c} -2.5\tanh(\kappa_1^R(t-1)) + 0.2\tanh(\kappa_1^I(t-1)) \\ -1.4\tanh(\kappa_2^R(t-1)) + 2.0\tanh(\kappa_2^I(t-1)) \end{array} \right\} \end{align} For node $l=2$: \begin{align} \dot{\kappa}_2^R(t) &= -\kappa_2^R(t) + w_2^R(t) \\ \dot{\kappa}_2^I(t) &= -\kappa_2^I(t) + w_2^I(t) \\ \dot{w}_2^R(t) &= -0.4w_2^R(t) - 1.6\kappa_2^R(t) + 1.2\tanh(\kappa_1^R(t)) - 0.6\tanh(\kappa_1^I(t)) + 1.0\tanh(\kappa_2^R(t)) + 1.5\tanh(\kappa_2^I(t)) \notag \\ &\quad - 1.7\tanh(\kappa_1^R(t-1)) + 2.7\tanh(\kappa_1^I(t-1)) - 2.4\tanh(\kappa_2^R(t-1)) + 1.6\tanh(\kappa_2^I(t-1)) \notag \\ &\quad + \min\left\{ \begin{array}{c} 1.5\tanh(\kappa_1^R(t-1)) + 1.6\tanh(\kappa_1^I(t-1)) \\ 1.1\tanh(\kappa_2^R(t-1)) + 1.6\tanh(\kappa_2^I(t-1)) \end{array} \right\} \notag \\ &\quad + \max\left\{ \begin{array}{c} 0.5\tanh(\kappa_1^R(t-1)) + 1.6\tanh(\kappa_1^I(t-1)) \\ 2.8\tanh(\kappa_2^R(t-1)) - 0.6\tanh(\kappa_2^I(t-1)) \end{array} \right\} + 2 \\ \dot{w}_2^I(t) &= -0.4w_2^I(t) - 1.6\kappa_2^I(t) + 0.6\tanh(\kappa_1^R(t)) + 1.2\tanh(\kappa_1^I(t)) - 1.5\tanh(\kappa_2^R(t)) + 1.0\tanh(\kappa_2^I(t)) \notag \\ &\quad - 2.7\tanh(\kappa_1^R(t-1)) - 1.7\tanh(\kappa_1^I(t-1)) - 1.6\tanh(\kappa_2^R(t-1)) - 2.4\tanh(\kappa_2^I(t-1)) \notag \\ &\quad + \min\left\{ \begin{array}{c} -1.6\tanh(\kappa_1^R(t-1)) + 1.5\tanh(\kappa_1^I(t-1)) \\ -1.6\tanh(\kappa_2^R(t-1)) + 1.1\tanh(\kappa_2^I(t-1)) \end{array} \right\} \notag \\ &\quad + \max\left\{ \begin{array}{c} -1.6\tanh(\kappa_1^R(t-1)) + 0.5\tanh(\kappa_1^I(t-1)) \\ 0.6\tanh(\kappa_2^R(t-1)) + 2.8\tanh(\kappa_2^I(t-1)) \end{array} \right\} \end{align} \section*{Real-valued Slave System} For node $l=1$: \begin{align} \dot{\lambda}_1^R(t) &= -\lambda_1^R(t) + v_1^R(t) \\ \dot{\lambda}_1^I(t) &= -\lambda_1^I(t) + v_1^I(t) \\ \dot{v}_1^R(t) &= -v_1^R(t) - 0.4\lambda_1^R(t) + 1.5\tanh(\lambda_1^R(t)) - 2.6\tanh(\lambda_1^I(t)) - 2.0\tanh(\lambda_2^R(t)) - 1.7\tanh(\lambda_2^I(t)) \notag \\ &\quad + 2.5\tanh(\lambda_1^R(t-1)) - 1.5\tanh(\lambda_1^I(t-1)) + 1.0\tanh(\lambda_2^R(t-1)) + 1.2\tanh(\lambda_2^I(t-1)) \notag \\ &\quad + \min\left\{ \begin{array}{c} 0.4\tanh(\lambda_1^R(t-1)) + 1.0\tanh(\lambda_1^I(t-1)) \\ -2.0\tanh(\lambda_2^R(t-1)) + 0.3\tanh(\lambda_2^I(t-1)) \end{array} \right\} \notag \\ &\quad + \max\left\{ \begin{array}{c} 0.2\tanh(\lambda_1^R(t-1)) + 2.5\tanh(\lambda_1^I(t-1)) \\ 2.0\tanh(\lambda_2^R(t-1)) + 1.4\tanh(\lambda_2^I(t-1)) \end{array} \right\} + 2 \\ \dot{v}_1^I(t) &= -v_1^I(t) - 0.4\lambda_1^I(t) + 2.6\tanh(\lambda_1^R(t)) + 1.5\tanh(\lambda_1^I(t)) + 1.7\tanh(\lambda_2^R(t)) - 2.0\tanh(\lambda_2^I(t)) \notag \\ &\quad + 1.5\tanh(\lambda_1^R(t-1)) + 2.5\tanh(\lambda_1^I(t-1)) - 1.2\tanh(\lambda_2^R(t-1)) + 1.0\tanh(\lambda_2^I(t-1)) \notag \\ &\quad + \min\left\{ \begin{array}{c} -1.0\tanh(\lambda_1^R(t-1)) + 0.4\tanh(\lambda_1^I(t-1)) \\ -0.3\tanh(\lambda_2^R(t-1)) - 2.0\tanh(\lambda_2^I(t-1)) \end{array} \right\} \notag \\ &\quad + \max\left\{ \begin{array}{c} -2.5\tanh(\lambda_1^R(t-1)) + 0.2\tanh(\lambda_1^I(t-1)) \\ -1.4\tanh(\lambda_2^R(t-1)) + 2.0\tanh(\lambda_2^I(t-1)) \end{array} \right\} \end{align} For node $l=2$: \begin{align} \dot{\lambda}_2^R(t) &= -\lambda_2^R(t) + v_2^R(t) \\ \dot{\lambda}_2^I(t) &= -\lambda_2^I(t) + v_2^I(t) \\ \dot{v}_2^R(t) &= -0.4v_2^R(t) - 1.6\lambda_2^R(t) + 1.2\tanh(\lambda_1^R(t)) - 0.6\tanh(\lambda_1^I(t)) + 1.0\tanh(\lambda_2^R(t)) + 1.5\tanh(\lambda_2^I(t)) \notag \\ &\quad - 1.7\tanh(\lambda_1^R(t-1)) + 2.7\tanh(\lambda_1^I(t-1)) - 2.4\tanh(\lambda_2^R(t-1)) + 1.6\tanh(\lambda_2^I(t-1)) \notag \\ &\quad + \min\left\{ \begin{array}{c} 1.5\tanh(\lambda_1^R(t-1)) + 1.6\tanh(\lambda_1^I(t-1)) \\ 1.1\tanh(\lambda_2^R(t-1)) + 1.6\tanh(\lambda_2^I(t-1)) \end{array} \right\} \notag \\ &\quad + \max\left\{ \begin{array}{c} 0.5\tanh(\lambda_1^R(t-1)) + 1.6\tanh(\lambda_1^I(t-1)) \\ 2.8\tanh(\lambda_2^R(t-1)) - 0.6\tanh(\lambda_2^I(t-1)) \end{array} \right\} + 2 \\ \dot{v}_2^I(t) &= -0.4v_2^I(t) - 1.6\lambda_2^I(t) + 0.6\tanh(\lambda_1^R(t)) + 1.2\tanh(\lambda_1^I(t)) - 1.5\tanh(\lambda_2^R(t)) + 1.0\tanh(\lambda_2^I(t)) \notag \\ &\quad - 2.7\tanh(\lambda_1^R(t-1)) - 1.7\tanh(\lambda_1^I(t-1)) - 1.6\tanh(\lambda_2^R(t-1)) - 2.4\tanh(\lambda_2^I(t-1)) \notag \\ &\quad + \min\left\{ \begin{array}{c} -1.6\tanh(\lambda_1^R(t-1)) + 1.5\tanh(\lambda_1^I(t-1)) \\ -1.6\tanh(\lambda_2^R(t-1)) + 1.1\tanh(\lambda_2^I(t-1)) \end{array} \right\} \notag \\ &\quad + \max\left\{ \begin{array}{c} -1.6\tanh(\lambda_1^R(t-1)) + 0.5\tanh(\lambda_1^I(t-1)) \\ 0.6\tanh(\lambda_2^R(t-1)) + 2.8\tanh(\lambda_2^I(t-1)) \end{array} \right\} \end{align} \( \kappa_1(\phi) = 1.3 + 1.1i \), \( w_1(\phi) = 3.0 - 1.8i \), \( \kappa_2(\phi) = -2.0 - 1.2i \), \( w_2(\phi) = -1.0 + 1.3i \). \(\lambda_1(\phi) = 1.8 + 1.7i\), \(\dot{\lambda}_1(\phi) = 2.1 - 1.4i\), \(\lambda_2(\phi) = -2.5 - 1.4i\), \(\dot{\lambda}_2(\phi) = -1.8 + 1.0i\), \(\phi \in [-1, 0]\).
07-01
Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境与 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑与用户体验的优化,从而提升整体开发效率与软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值